Pseudo :: before :: after Chrome上的内联标题

时间:2018-08-03 07:16:41

标签: css google-chrome pseudo-element

下面我有一些带有以下伪样式的标题

h2 {
    position: relative;
    display: inline;
} 

h2::before {
    content: "";
    position: absolute;
    background-color: #000;
    width: 100vw;
    height: 1px;
    left: 100%;
    margin-left: 20px;
    top: 50%;
}

h2::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    top: 50%;
    transform: translate(-50%,-50%);
    left: 100%;
    border-radius: 50%;
    border: 1px solid #000;
    margin-left: 20px;
}

在Firefox中看起来不错,伪元素将保留在h1文本的第一行之后。

当我在低于500像素的小屏幕上以Chrome响应模式进行测试时,出现了问题。 display:inline似乎无效。

enter image description here

有什么解决方法可以使Chrome在Firefox中显示我的伪造品吗?

1 个答案:

答案 0 :(得分:1)

  

首先检查此代码,两者的工作原理完全相同   浏览器,

body {
  overflow-x: hidden;
}

h2 {
  position: relative;
  display: inline-block;
  clear: both;
  float: left;
}

h2::before {
  content: "";
  position: absolute;
  background-color: #000;
  width: 100vw;
  height: 1px;
  left: 100%;
  margin-left: 20px;
  top: 14px;
}

h2::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  top: 14px;
  transform: translate(-50%, -50%);
  left: 100%;
  border-radius: 50%;
  border: 1px solid #000;
  margin-left: 20px;
}
<h2>Lorem ipsum dolor sit amet, eiusmod tempor </h2>

<h2>Lorem ipsum dolor sit amet, <br> eiusmod tempor </h2>

<h2>Lorem ipsum dolor sit amet, <br> eiusmod tempor <br> eiusmod tempor</h2>

在两种浏览器中都以两种不同的方式检测到display: inline;错误。

Chrome浏览器示例图片: enter image description here

Firefox图像示例: enter image description here

这导致 ::before::after 在两个浏览器中都更改了位置。

我通过将display: inline;更改为display: inline-block;来解决此问题,希望对您有所帮助。