Html CSS Clearfix不工作,即使使用after元素

Html CSS Clearfix不工作,即使使用after元素,html,css,Html,Css,我有一个clearfix,它被添加到具有classname组的任何元素中 在下面的屏幕截图中,您可以看到两件事 在右下角,您可以看到clearfix成功地添加到FlashDiv中,因为创建了after元素。 你可以清楚地看到标题newpost移动到flash message div的右侧。为了更清楚,我用红色标出了flash div的边距 分区警报{ 宽度:10雷姆; 保证金:3rem; 浮动:左; 边框:2个实心444; 边界半径:4px; 填充:0.5雷姆1雷姆; } 编辑; 因为我没有明确

我有一个clearfix,它被添加到具有classname组的任何元素中 在下面的屏幕截图中,您可以看到两件事

在右下角,您可以看到clearfix成功地添加到FlashDiv中,因为创建了after元素。 你可以清楚地看到标题newpost移动到flash message div的右侧。为了更清楚,我用红色标出了flash div的边距 分区警报{ 宽度:10雷姆; 保证金:3rem; 浮动:左; 边框:2个实心444; 边界半径:4px; 填充:0.5雷姆1雷姆; } 编辑; 因为我没有明确说明,所以我希望理解为什么clearfix没有跨越父容器的整个宽度。
与此同时,Pete已经给了我一个满意的答案,那就是我应该将clearfix添加到父容器中,而不是添加到浮动flash元素本身。

我认为您没有领会:after的意思。它会将内容放在指定元素的末尾,而不是后面,因此使用:after清除浮动元素本身上的浮动将不会清除它,因为清除将放在该元素内部


要解决这个问题,可以将clear:left添加到新的post-div样式中,或者将flash-div包装在一个元素中,并对其进行clear-fix

您可以发布一个带有相关编码的jsfiddle吗?问题是什么?您可以创建一个示例吗?这很有意义,不过还有一个后续问题:为什么在我的flash div上添加clear:right不起作用?因为你的div是向左浮动的,所以你需要将浮动清除得非常清楚:向左还是清除:两者都是