为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。
元素定位有四种,可以使用position样式来设置元素定位,所以此属性值有四种:
静态定位:默认。依据文档流定位。
特点:
1 2 3 4 5 6 7 8 |
<p>这是一个p标签</p> <a href="">跳转百度</a> <span>这是一个内联的span标签</span> <ul> <li>html</li> <li>css</li> <li>javascript</li> </ul> |
相对定位:以自身为基准,设置坐标(left、top、right、bottom),不脱离文档流。
特点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<style> .one{ width: 200px; height: 100px; background-color: red; position: relative; left: 100px; top:50px; } </style> <p>这是一个p标签</p> <p>这是一个p标签</p> <p>这是一个p标签</p> <div class="one"></div> |
绝对定位:以父元素为基准,设置坐标,脱离文档流。
特点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<style> .one{ width: 200px; height: 100px; background-color: red; position: absolute; left: 100px; top:50px; } </style> <p>这是一个p标签</p> <p>这是一个p标签</p> <p>这是一个p标签</p> <div class="one"></div> |
固定定位:以浏览器窗口为基准,设置坐标(left、top、right、bottom),脱离文档流。
特点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<style> .one{ width: 100%; height: 60px; background-color: red; position: fixed; left: 0; top:0; } </style> <div class="one">header</div> <p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p> <p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p> <p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p> <p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p> <p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p> <p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p><p>这是一个p标签</p> |
绝对定位元素与固定定位元素脱离了文档流,可以把它想象为:此元素漂浮在网页上方。 那么,当这些元素位置有重叠时,就会出现:元素之间如何覆盖的问题。此问题可以使用z-index样式来解决。
z-index样式的值是一个整形数,就表示元素所在的层级。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<style> .one{ width: 200px; height: 200px; background-color: red; position: absolute; left: 0; top:0; z-index: 2; } .two{ width: 200px; height: 200px; background-color: blue; position: absolute; left: 100px; top:100px; z-index: 1; } </style> <div class="one"></div> <div class="two"></div> |