用clearfix:after消除(DIV块因内部浮动而高度收缩的问题)
来源:互联网 发布:复杂网络前景 编辑:程序博客网 时间:2024/05/20 01:33
遇到子元素浮动而引起父级元素不能完全撑开的状况;如下例
<div style="border:2px solid red;">
<div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">CSSBBS</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
</div>
内部的DIV因为float:left之后,就丧失了clear:both和display:block的样式,所以外部的DIV不会被撑开。
我们想让外部容器的DIV随着内部DIV增多而增加高度,
以前的处理方法是:
1.给父级元素用overflow:hidden简单粗暴的解决,但这种方式有弊端,一是在IE6下不能完美解决,二是假如在该模块有定位的层就有定位层显示不完整的可能。
2.在父级元素里最后添加一个<div style=”clear:both”></div>来解决这个问题,但这样我们的HTML代码里就多了些冗余的代码且从语义化角度来看这也是不合理的。
而正确的解决措施是:
首先设置这样的CSS:
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
让外部的容器DIV来应用这个CSS.
这个clearfix的CSS应用了after这个伪对象,它将在利用 clearfix的元素的结尾添加content中的内容。在这里添加了一个句号".",并且把它的display设置成block;高度设为0;clear设为both;visibility设为潜藏 。这样就达到 了撑开容器的目标啦
对于ie6和ie7
* html .clearfix {
zoom:1;
}这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素- 用clearfix:after消除(DIV块因内部浮动而高度收缩的问题)
- 用clearfix:after消除(DIV块因内部浮动而高度收缩的问题)
- 用clearfix:after消除(DIV块因内部浮动而高度收缩的问题)
- 用clearfix:after消除float:left的css浮动效果
- 用clearfix:after消除 css浮动
- 用clearfix:after消除 css浮动
- 用clearfix:after消除css浮动。
- clearfix:after 清除css浮动
- clearfix:after 清除css浮动
- clearfix:after 清除css浮动
- css清除浮动clearfix:after的用法详解(附完整代码)
- .clearfix:after 清楚浮动的详细说…
- 内层DIV块浮动时,外层DIV块自适应高度
- 关于层DIV自适应高度的问题总汇(加入clearfix方法)
- CSS 之 清除浮动.clearFix:after
- 清除浮动(clearfix)
- 清除浮动(clearfix)
- 解决子级用css float浮动,而父级div不能自适应高度问题
- Kubernetes Master High Availability 高级实践
- vim配置代码自动补全
- 机器学习极好的入门学习视频推荐
- 自定义圆形jin'du't
- unity WebCam 手机自适应 摄像头
- 用clearfix:after消除(DIV块因内部浮动而高度收缩的问题)
- <基于Java数据结构>线性表
- ListView中按钮监听器 设置 及 优化
- CentOS 6.8 安装git 及配置
- Codeforces 894C:Marco and GCD Sequence(构造)
- centos7—quota配额
- XR,下一代搜索
- 迷茫
- Microsoft Visual C++ 和 Borland C++ Builder 之比较