【发布时间】:2012-05-28 18:50:57
【问题描述】:
我有一个列表,而李有一个float:left;。 <ul> 后面的内容应该正确对齐。因此我可以构建以下内容:
我想,我可以使用 :after 之类的伪选择器删除 <div class="clear">。
但是这个例子不起作用:
我是否总是需要创建一个单独的 div 来清除浮动元素?
【问题讨论】:
我有一个列表,而李有一个float:left;。 <ul> 后面的内容应该正确对齐。因此我可以构建以下内容:
我想,我可以使用 :after 之类的伪选择器删除 <div class="clear">。
但是这个例子不起作用:
我是否总是需要创建一个单独的 div 来清除浮动元素?
【问题讨论】:
【讨论】:
::after 带有双冒号是定位伪元素的推荐方式。
不,你这样做还不够:
<ul class="clearfix">
<li>one</li>
<li>two></li>
</ul>
还有以下 CSS:
ul li {float: left;}
.clearfix:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.clearfix {
display: inline-block;
}
html[xmlns] .clearfix {
display: block;
}
* html .clearfix {
height: 1%;
}
【讨论】:
文本“dasda”永远不会不在标签内,对吧?从语义上讲,要成为有效的 HTML,只需将 clear 类添加到其中:
【讨论】:
使用
.wrapper:after {
content : '\n';
}
很像 Roko 提供的解决方案。它允许使用 :after 和 :before psuedo 插入/更改内容。详情请查看 http://www.quirksmode.org/css/content.html
【讨论】: