Html 无法使用伪元素清除浮点

Html 无法使用伪元素清除浮点,html,css,Html,Css,我试图用css伪元素清除float,但它不起作用。我做错了什么 HTML: :元素中的pseudo类之后并不意味着“在该元素的结束标记之后”,它将放在元素中所有内部项之后。因此,您不能使用它进行清晰的修复。尝试使用- #afterfloat { clear: both; } 我可以问一下你想做什么吗?一个大胆的猜测是添加clear:两者都是或清除:左到#afterfloat+1我尝试了同样的方法。我的意思是用伪元素清除float。不起作用。@HamZa我正在尝试重复中显示的解决方案。您

我试图用css伪元素清除float,但它不起作用。我做错了什么

HTML:


:元素中的pseudo类之后并不意味着“在该元素的结束标记之后”,它将放在元素中所有内部项之后。因此,您不能使用它进行清晰的修复。尝试使用-

#afterfloat {
    clear: both;
}

我可以问一下你想做什么吗?一个大胆的猜测是添加
clear:两者都是
清除:左
#afterfloat
+1我尝试了同样的方法。我的意思是用伪元素清除float。不起作用。@HamZa我正在尝试重复中显示的解决方案。您可以检查此HamZa是否正确-您绝对不需要对此进行clearfix。那么,解决方案是什么?@Dimt似乎是这样的,我不知道。所以我想你必须。。。?或者像Iqbal根据和其他来源所说的那样,我应该能够使用伪元素来清除float,而不需要任何额外的标记或清除后续元素。那么这是无效的陈述吗?@Dimt否。该解决方案适用于另一种情况。如果父元素有float:none;子元素有float:左或右,在这种情况下,父元素不随子元素一起增长。在这种情况下,您可以使用“.clearfix:after”解决方案来增长带有子元素的父元素。
:after
是一个伪元素,而不是伪类。也不确定“在元素中的所有内部项之后”是什么意思。单个元素只能为自身生成一个
:after
伪元素。
#container{
    float:left;
    background: grey;
    border: 1px solid black;
}

#inner1{
    float: left;
    width: 100px;
    height: 100px;
    background: red;
    border: 1px solid black;
}

#container:after{
   content: "."; 
   visibility: hidden; 
   display: block; 
   height: 0; 
   clear: both;
}

#afterfloat{
    float: left;
    width: 100px;
    height: 100px;
    background: green;
    border: 1px solid black;
}
#afterfloat {
    clear: both;
}