html - 为什么:before element break layout?

标签 html css

我想显示一些背景图像和一些文本。一切都应该用 |(管道)分隔以分隔元素。

管道包含在 :before 选择器中,管道作为内容。 然而,这似乎打破了布局,因为背景图像现在不再与文本位于同一行。如果我完全删除内容,它会按预期工作。

这是什么原因,我该如何解决?

我创建了一个小的 Fiddle as example .

最佳答案

您的布局使用 float: left 所以 :before 应该遵循相同的规则。例如:

.list-piped:before {
    display: block; /* fix */
    float: left; /* fix */
    content: "|"; /* This breaks the layout */
}

https://jsfiddle.net/infous/1cbeyn84/4/

顺便说一句,下面的 Manoj Kumar 描述了真正的问题。我的回答是一个可能的解决方案,因为 float: leftposition: absolute 都有自己的流程。

关于html - 为什么:before element break layout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591541/

相关文章:

html - 我可以以未安装字体的用户身份查看我的网站吗?

javascript - 是否可以通过编程方式判断 webp 循环何时结束?

javascript - 一旦我删除了一个属性,我就无法添加它

html - 扩展名为scss如何申请

css - 为什么相同文件名时模块样式重叠

html - 子菜单项不断移动...如何使它们固定?

javascript - 隐藏和显示子菜单

html - 可以在列之间创建一个带有三 Angular 形的表头吗?

php - yii2: 在打印中水平对齐 div?

html - 如何在 HTML 页面中引入软分页符?