我有以下 HTML:
<div class="selfClear" style="float: left; border: 1px solid black;">
...floated stuff in here...
</div>
<span style="margin-top: 10px; border: 1px solid purple;">hello world</span>
我希望 div 和 span 之间有 10px 的间隙,每个 margin-top。但是,由于上面的 div 是浮动的,它不会以这种方式呈现。确保某些东西清晰的修复是 DIV。要通过纯 CSS 做到这一点,似乎应该使用 '::after' 插入内容的方法,然后将其设置为清除:
.selfClear::after {
content: ".";
display: block;
height: 0px;
clear: both;
visibility: hidden;
}
.selfClear {
display: inline-block;
}
但是,这并没有完全做到我认为应该做的事情。如果我不包括高度/可见性样式,以便在插入时实际上可以看到句点,我会看到它实际上是在 div 内呈现(黑色边框包围它),而不是在 div 之后(所以它介于div 和跨度)。我是否误解了这应该如何工作?
编辑:
这是一个更简单的例子:
CSS:
#theDiv {
border: 1px solid green;
}
#theDiv::after {
content: ".";
}
#theOtherDiv {
border: 1px solid orange;
}
HTML:
<div id="theDiv">
Hello
</div>
<div id="theOtherDiv">
World
</div>
这最终会在“Hello”之后而不是在 div 之后放置一个句点。
看起来::after
并且::before
实际上是附加到元素的 CONTENTS 中,而不是元素本身。那是对的吗?