html 内部浮动外部不,解决内部容器float浮动后不能撑开外部容器及CSS伪类:after的使用...

本文详细介绍了如何解决浮动元素导致的外部容器塌陷问题,包括两种常见方法:添加空容器和使用.clearfix类配合:after伪元素。同时,探讨了:after伪类在内容生成和垂直居中布局中的应用,以及针对IE6/7的兼容性解决方案。此外,还讨论了图片垂直居中在不同浏览器中的实现,特别提到了Chrome浏览器的特殊情况。
摘要由CSDN通过智能技术生成

解决内部容器float浮动后不能撑开外部容器,外部容器塌陷问题

方法一:

直接在内部添加一个空的容器

方法二:

.clearfix:after {

content:".";

display:block;

height:0;

clear:both;

visibility:hidden;

}

*html .clearfix {

height:1%;

}

*+html .clearfix {

height:1%;

}

有点意思,content:"."会在指定了.clearfix样式的容器内追加一个字符,一个英文句号。可想而知,如果样式是.clearfix:before{content:"我想加的内容";……},那么会在前面插入一个字符串“我想加的内容”。

IE8+ 和其他较新浏览器都支持:after和content,我们可以使用:after+content方法清除浮动造成的塌陷。但IE6和IE7不支 持:after伪类,*、*+是分别解决IE6和IE7下的浮动塌陷问题,当然你也可以使用IE私有的zoom属性,让div远离浮动塌陷问题。代码如 下:

.clearfix {

*zoom:1;

}

.clearfix:after {

display:block;

content:".";

height:0;

clear:both;

overflow:hidden;

visibility:hidden;

}

需要说明的是:overflow:hidden:的作用只是隐藏元素溢出,visibility:hidden;的作用是隐藏元素但仍然影响布局,元素占有的空间大小还在哦。

另 外,:after伪类+content 可以让大小不固定的图片垂直居中,与清除浮动影响类似,IE6/7不支持:after伪类,我们可以用另外的方法让图片垂直居中,例如font-size 方法,设一个比较大点的字体大小,IE6/7就可以实现图片垂直对齐了,至于其他浏览器,就用:after伪类+content内容生成一个 vertical-align:middle属性的元素就可以了。

CSS:

.pic_box {

width:300px;

height:300px;

background:#999;

font-size:0;

*font-size:200px;

text-align:center;

}

.pic_box img {

vertical-align:middle;

}

.pic_box:after {

display:inline-block;

width:0;

height:100%;

content:"center";

vertical-align:middle;

overflow:hidden;

}

HTML:

    example.jpg

目前图片居中的测试结果是所有浏览器都垂直居中,但Chrome浏览器的水平居中貌似左边偏移了点,这是因为Chrome浏览器font-size:0,不能消除空格产生的水平距离的原因。这或许是唯一点瑕疵吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值