【问题标题】:How to display pseudo element with 100% height in Firefox如何在 Firefox 中显示 100% 高度的伪元素
【发布时间】:2019-09-03 09:19:08
【问题描述】:

似乎只有 Firefox 忽略了底部:0;宣言。即使我尝试将 h1:before 元素的高度设置为 100%,它也不会改变 Firefox 中的任何内容。

对此行为有任何解释吗?是否有任何解决方法?

Chrome screenshot

Firefox screenshot

.title {
  position: absolute;
}
.title h1 {
  position: relative;
  display: inline;
  color: #fff;
  line-height: 0.8;
  white-space: pre-wrap;
  border-top: 0.3em solid #0089C0;
  border-bottom: 0.1em solid #0089C0;
  background-color: #0089C0;
}
.title h1:before {
  content: "";
  background-color: red;
  display: inline-block;
  width: 0.3em;
  height: 100%;
  padding-top: 0.1em;
  position: absolute;
  left: -0.3em;
  top: 0;
}
.title h1:after {
  background-color: #0089C0;
}
.title h1 span {
  position: relative;
  z-index: 1;
}
<div class="title">
    <h1><span>Almost before <br>we knew it, we had <br>left the ground. </span></h1>
</div>

【问题讨论】:

  • 从标题中删除 display:inline - 这不是必需的并解决了问题 - codepen.io/Paulie-D/pen/wZebNG
  • 感谢您的快速回复。在我的情况下,display:inline 是必需的。即使使用display:inline,有什么办法可以解决这个问题吗?
  • 请解释为什么它是必需的。从提供的代码来看,没有区别。
  • display: inline-block 如果你真的需要它应该可以工作 inline..
  • 也许使用其他类型的内联,例如inline-block

标签: html css firefox pseudo-element


【解决方案1】:

.title h1 设置为display: inline-block;,如下所示:

.title h1 {
  position: relative;
  display: inline-block;
}

或者...将position 设置为fixed,如下所示:

.title h1 {
  position: fixed;
  display: inline;
}

【讨论】:

  • 我更新了我的问题。在我的情况下,display:inline 是必需的。有没有办法解决这个问题?
  • 更新了我的答案,加入了另一种保留 display: inline; 的方法。
  • 不幸的是,它在我的情况下不起作用。当我将 position: fixed 更改为 position: fixed 时,&lt;h1&gt; 内容看起来不再像标记的文本了。
  • 确认一下,您已经设置了position: fixed;display: inline;,但您仍然遇到此问题?
  • Firefox 可以正确识别高度,但文本看起来不再像标记的文本。在我的问题下方的 cmets 中查看 Paulie_D 的方法。这非常接近。
猜你喜欢
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多