关于哪些标签的默认宽度的总结

Div标签的width在默认情况下默认都是100%,在有些情况下,如果设置了position:relative,static时,其width还是100%,如果设置的是absolute,fixed时,其width会变成适应子标签的宽度。这也是在做腾讯视频时在nav里遇到的问题。附上测试代码:

<!DOCTYPE html>

<html lang="en">

<head>

         <meta charset="UTF-8">

         <title>关于默认的标签的width是100%还是auto的测试</title>

         <style type="text/css">

                   body,div{margin:0px;padding: 0px;}

                   .content{height: 50px;background-color: #ff0000;margin: 0 auto;position: static;}

                   .top_content{width:500px;height:80px;background-color: #00fff0;margin: 0 auto;}

         </style>

</head>

<body>

         <div class="content"><div class="top_content"></div></div>

</body>

</html>

 

原因:relative(相对定位)与static(默认,静态的)是在文档流中,而absolute(绝对定位)与fixed(固定定位)是脱离了文档流的,实际上fixed是absolute的一种,差异是fixed的包含块是视口(即body),这使我们能够创建总是出现在窗口中相同位置的浮动元素。

摘:

position 属性值的含义:

static

元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

Relative

元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

Absolute

元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

Fixed

元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

 

 

提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

posted @ 2015-07-30 01:02  黑客PK  阅读(1007)  评论(0编辑  收藏  举报