HTML中的6种定位方式

YCRHL 2019-10-30 02:57:58
1,static(默认)
当你没有为一个元素(例如div)指定定位方式时,默认为static,也就是按照文档的流式(flow)定位,将元素放到一个合适的地方。所以在不同的分辨率下,采用流式定位能很好的自适合,取得相对较好的布局效果。

一般来说,我们不需要指明当前元素的定位方式是static——因为这是默认的定位方式。除非你想覆盖从父元素继承来的定位系统。



2,relative(相对定位)
在static的基础上,如果我想让一个元素在他本来的位置做一些调整(位移),我们可以将该元素定位设置为relative,同时指定相对位移(利用top,bottom,left,right)。

有一点需要注意的是,相对定位的元素仍然在文档流中,仍然占据着他本来占据的位置空间——虽然他现在已经不在本来的位置了。



3,absolute(绝对定位)
如果你想在一个文档(Document)中将一个元素放至指定位置,你可以使用absolute来定位,将该元素的position设置为absolute,同时使用top,bottom,left,right来定位。

绝对定位会使元素从文档流中被删除,结果就是该元素原本占据的空间被其它元素所填充。



4,mix relative and absolute(混合相对定位和绝对定位)
如果对一个父元素设置relative,而对它的一个子元素设置absolute,如:

1
2
3
4
<div id="parent" style="position:relative">
<div id="child" style="position:absolute">
</div>
</div>
则子元素的绝对定位的参照物为父元素。



利用混合定位,我们可以用类似下面的css来实现两列(Two Column)定位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#div-parent {
position:relative;
}
#div-child-right {
position:absolute;
top:0;
right:0;
width:200px;
}
#div-child-left {
position:absolute;
top:0;
left:0;
width:200px;
}


5, fixed(固定定位)
我们知道absolute定位的参照物是“上一个定位过的父元素(static不算)”,那么如果我想让一个元素定位的参照物总是整个文档(viewport),怎么办呢?

答案是使用fixed定位,fixed定位的参照物总是当前的文档。利用fixed定位,我们很容易让一个div定位在浏览器文档的左上,右上等方位。比如你想添加一个信息提示的div,并将该div固定在右上方,你可以使用以下css

1
.element { position:fixed; top:2%; right:2%; }


6,float(浮动)
对于浮动,需要了解的是:

*浮动会将元素从文档流中删除,他的空间会被其它元素补上。

*浮动的参数物是父元素,是在父元素这个容器中飘。

*为了清除浮动造成的对浮动元素之后元素的影响,我们在浮动元素之后加一个div,并将这个div的clear设置为both。

*如果两个元素都设置了浮动,则两个元素并不会重叠,第一个元素占据一定空间,第二个元素紧跟其后。如果不想让第二个元素紧跟其后,可以对第二个浮动的元素使用clear。
...全文
615 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
钟洋 2019-10-31
  • 打赏
  • 举报
回复
内容很好,很值得一看
ZY1802749080 2019-10-31
  • 打赏
  • 举报
回复
值得一看  对学电商的同学很有帮助  感谢楼主的分享
quan688045 2019-10-30
  • 打赏
  • 举报
回复
不错哦,给我们带来了很大的帮忙呢
YCRHL 2019-10-30
  • 打赏
  • 举报
回复
我希望以后都会帮到你,谢谢你
YCRHL 2019-10-30
  • 打赏
  • 举报
回复
引用 7 楼 YYhoney99的回复:
很有用,对自己和其它人也很有用
是的呢. 我希望以后都会帮到你
YCRHL 2019-10-30
  • 打赏
  • 举报
回复
引用 7 楼 YYhoney99的回复:
很有用,对自己和其它人也很有用
是的呢. 我希望以后都会帮到你
YYhoney99 2019-10-30
  • 打赏
  • 举报
回复
很有用,对自己和其它人也很有用
YCRHL 2019-10-30
  • 打赏
  • 举报
回复
引用 5 楼 吉普赛的歌的回复:
感谢分享! 笔记式的基础知识,建议发到个人博客
好的,我会采纳的,谢谢
吉普赛的歌 2019-10-30
  • 打赏
  • 举报
回复
感谢分享! 笔记式的基础知识,建议发到个人博客
adg12345678910 2019-10-30
  • 打赏
  • 举报
回复
这个好,期待你的更新
wuhuanH 2019-10-30
  • 打赏
  • 举报
回复
不错, 很棒
H1105 2019-10-30
  • 打赏
  • 举报
回复
值得一看 对学电商的同学很有帮助 感谢楼主的分享
Tu_Wen123 2019-10-30
  • 打赏
  • 举报
回复
不错 很有帮助

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧