html -::Before 元素未正确 float 在 float 元素上

标签 html css css-float pseudo-element

有一个基本的html和css如下,

* {
  margin: 0;
  padding: 0
}
.float {
  float: left
}
h1 {
  font-size: 2em
}
h2 {
  font-size: 1em
}
hgroup::before {
  float: left;
  font-size: 3em;
  padding: 0 .1em;
  content: ':)'
}
<hgroup>
  <h1>Hello</h1>
  <h2>World</h2>
</hgroup>
<hr />
<hgroup class="float">
  <h1>Hello</h1>
  <h2>World</h2>
</hgroup>

我希望::before float 到它自己的元素的左侧。

在元素本身也 float 之前,它会很好地工作。发生这种情况时,::before 不再 float 。

有没有办法让它在不添加容器元素的情况下工作?

最佳答案

将这个添加到你的 .float class width: 100%;

* {
  margin: 0;
  padding: 0
}
.float {
  float: left;
  width: 100%;
}
h1 {
  font-size: 2em
}
h2 {
  font-size: 1em
}
hgroup::before {
  float: left;
  font-size: 3em;
  padding: 0 .1em;
  content: ':)'
}
<hgroup>
  <h1>Hello</h1>
  <h2>World</h2>
</hgroup>
<hr />
<hgroup class="float">
  <h1>Hello</h1>
  <h2>World</h2>
</hgroup>

关于html -::Before 元素未正确 float 在 float 元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32045078/

相关文章:

html - 拒绝在帧中显示 'https://www.youtube.com/watch?v=oKZRsBjQJOs',因为它将 'X-Frame-Options' 设置为 'sameorigin'

html - 如何在带样式的复选框右侧排列标签

javascript - 使用javascript取消注释html代码

jquery - 使 JqGrid 宽度变得流畅

css - 如何对齐 float 元素,使其底部匹配

css - HTML 标题意外调用 CSS 类

html - 当使用 "vw"作为大小指标时容器停止​​缩小时字体大小继续缩小。为什么?

javascript - 隐藏滚动条并使用 CSS 向左向右滑动

html - 如何排列两个 HTML 列,其中一个具有固定部分,以便它们可以堆叠?

html - 如何将 div float 到标题 div 的右侧而不影响标题的内容?