absolute包裹性展现html
跟float
同样,absolute
也具备包裹性,二者的包裹性都相似于使元素inline-block
化.浏览器
相对于float
引发父元素塌陷,absolute
要更进一步,上面的例子就能够看出,absolute
元素彻底脱离文档流,而且被其它盒子以及盒子内的文本无视字体
因为absolute
滥用会下降扩展性和维护性,因此须要尽可能少使用absolute
spa
经过给span
标签设置一个div
,设置div
的margin
实现htm
这个案例有三个图标覆盖,第一个hot图标使用absolute
+margin
,设置margin
调整位置牢牢跟随header
导航最后一个导航连接字体;第二个使用元素脱离文档流,后面的图片直接无视absolute
的原理实现重叠;第三个vip图标设置absolute
属性后,位置跟原先的位置同样,也就是在图片的后面牢牢跟随,而后设置margin-left
图标宽度的负值就能够完成图标覆盖,这里须要注意的一点是为了保证图片和图标之间没有空隙,须要在它们之间设置注释<!-- -->
ip
这个案例咱们主要利用的是absolute
的跟随性,配合margin
使搜索结果定位到搜索框下边框
第一个例子是图片居中对齐,父元素设置text-align:center
,子元素因为是inline-block
元素,因此会居中,为了兼容IE浏览器,须要在图片前面设置 
,由于 
须要占据0.25em
因此咱们在父元素设置letter-spacing:-.25em
第二个例子是右下角边缘对齐,父元素设置text-align:right
,子元素设置position:fixed
固定定位,而且须要display:inline
为了防止错位
第一个例子是让星号绝对定位,而后它脱离文档流,不占用任何空间,因此后面的文字对齐就不受影响
第二个例子图标使用绝对定位,而后让小图标作偏移图表宽度,这就实现了图文对齐
第三个例子是文字溢出,使用无依赖绝对定位,文字不断行
这个例子使用绝对对位元素left: 0; top: 0; right: 0; bottom: 0;
能够实现宽高百分之百的拉伸特性,父元素设置inline-block
具备包裹性,咱们在这里设置的半透明遮罩层能够完美覆盖图片
通常状况下,父级容器设置height:auto
,子元素不能使用百分比高度,这时,子元素设置left: 0; top: 0; right: 0; bottom: 0;
利用绝对元素拉伸特性,也可使用百分比高度
同时设置left/right
与width
起做用的会是width
,这时候再使用margin-left/margin-right:auto
会使绝对定位水平居中,垂直居中同理,这也就是使用absolute
的水平垂直居中的原理
这个例子的实现思路是设置一个width:100%;height:999em
的空绝对定位元素,放在侧边栏,给侧边栏添加position:relative
限制,而后在绝对定位元素同级放置一个设置position:relative;z-index:1
元素包裹住图片,把图片都设置为display:block
,最后把容器设置overflow:hidden
实现原理是因为绝对定位元素无高度特性无宽度特性,咱们能够伪造一个高度足够高的绝对定位层,同时设置父元素溢出隐藏,那么其多出来的高度就不会显示了,也就实现了看上去的等高布局效果