使用:after后清除浮动元素

Tor*_*ben 103 html css

我有一个清单,李有一个float:left;.<ul>应该正确对齐后的内容.因此我可以构建以下内容:

http://jsfiddle.net/8unU8/

我想,我可以删除<div class="clear">使用伪选择器,如:after.

但是这个例子不起作用:

http://jsfiddle.net/EyNnk/

我是否总是要创建一个单独的div来清除浮动元素?

san*_*eep 257

像这样写:

.wrapper:after {
    content: '';
    display: block;
    clear: both;
}
Run Code Online (Sandbox Code Playgroud)

检查这个http://jsfiddle.net/EyNnk/1/

  • 每个支持双冒号(::) CSS3语法的浏览器也只支持(:)语法,但IE 8仅支持单冒号,因此目前,建议只使用单冒号以获得最佳浏览器支持.::是缩进的新格式,用于区分伪内容和伪选择器.如果您不需要IE 8支持,请随意使用双冒号.https://css-tricks.com/almanac/selectors/a/after-and-before/ (10认同)
  • 只是一个小信息:带有双冒号的`:: after`是推荐的伪元素定位方式. (2认同)

ker*_*nic 6

不,你不能做这样的事情:

<ul class="clearfix">
  <li>one</li>
  <li>two></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

以下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%;
}
Run Code Online (Sandbox Code Playgroud)


Mah*_*hdi 5

这也将起作用:

.clearfix:before,
.clearfix:after {
    content: "";
    display: table;
} 

.clearfix:after {
    clear: both;
}

/* IE 6 & 7 */
.clearfix {
    zoom: 1;
}
Run Code Online (Sandbox Code Playgroud)

将类提供clearfix元素,例如您的ul元素。

来源这里这里