把clear:both替换为伪班级。

问题描述 投票:5回答:3

以前,当我有浮动块时,我会停止浮动,我使用了.NET技术。

<div style="clear:both"></div>

但现在,我用伪类来解决这个问题。

.last_floating_div:after {
 content: ""; 
 display: table;
 clear: both;
}

我一直都能完美地工作。但今天... 它不工作了... !!!看看这个清晰的例子。http:/jsfiddle.netYsueS2

我知道我的问题完全是一个初学者的问题。我已经把这个问题卖了很多次了......。我真的不明白为什么在这里不能工作!

非常感谢你们所有人 !

html css block
3个回答
3
投票

当然,你可以通过一个 :after clearfix,然而,最理想、最轻量级的解决方案只是将其设置为 overflow:hidden 的父类,用更少的代码达到预期的效果。

#mention {
    overflow: hidden;
}

jsFiddle在这里

不过要直接回答问题,你应该应用了 :after 清楚的fix到 #mentions - 父,而不是子。jsFiddle这里 它的工作原理。


1
投票

我认为你需要一个#mention:after来实现你所寻找的。

例如:

#mention:after {
     visibility: hidden;
     display: block;
     font-size: 0;
     content: " ";
     clear: both;
     height: 0;
     }
#mention { display: inline-block; }

* html #mention{ height: 1%; } /* for older ie */
#mention { display: block; }

工作演示

希望能帮到你。


1
投票

如果你只是添加 :after 同上 mention 你会得到想要的效果。

#mention:after {
  content: "";
  display: table;
  clear: both;
}

JSFIDDLE

© www.soinside.com 2019 - 2024. All rights reserved.