【问题标题】:Pseudo CSS element not displaying outside of parent div伪 CSS 元素不显示在父 div 之外
【发布时间】:2016-04-19 04:04:50
【问题描述】:

我有一个伪元素拒绝在其父 div 之外显示。我已经将它设置为一半,一半,所以你可以在下面的小提琴中看到问题。

Fiddle

为此尝试了一大堆不同的解决方案,但我无法让它发挥作用。

有什么建议吗?

代码:

.box {
display:block;
position: relative;
z-index: 10;
background: #FFF;
width: 350px;
height:140px;
box-shadow: 0 1px 3px #888;
padding:20px;
overflow: auto;
top: 30px;
left:50px;
text-align:center;
border-radius: 5px;
border: 1px solid #FFF;
}

.box::before {
position:absolute;
font-family:FontAwesome;
content:"\f0d8";
color:red;
z-index: 20;
font-size:80px;
left:50px;
top:-45px;
}

【问题讨论】:

    标签: css element pseudo-element


    【解决方案1】:

    cmets 后的确定答案:

    • 如果你需要position:absolute;而不能使用position:fixed;,只需从.box div中删除position:relative;并使用不同的边距来保持原来的定位。只要您不为伪元素设置leftright 值,就可以工作:https://jsfiddle.net/ug88rptL/10/

    【讨论】:

    • 这就是问题所在。我确实需要溢出:自动(该框包含垂直滚动的文本),我还需要将父级设置为位置:相对(因为它从另一个元素获取它的定位并且 .box 不能被包装在另一个 div 中。哪个几乎涵盖了我一直在寻找的所有其他解决方案。
    • No 不能用fixed。大声笑,我知道这是一场噩梦。因为我只需要垂直滚动,但我可以使用 overflow-y:scroll 吗?
    • 不,我可以看到我的最后一个建议不起作用。还有其他解决方法吗?
    • 其实我说得太早了。我以为你的意思是固定在主 div 上,因为它在伪类上,我认为它工作得很好。非常感谢兄弟;)
    • 实际上这不适用于我的实际代码。这是我最初使用的。使用固定时,调整屏幕大小时三角形会移动,这正是我想要避免的。
    【解决方案2】:

    ::before 伪元素被视为您附加它的元素的子元素,因此它将始终位于框内。你最好将盒子包裹在另一个元素中,然后给 那个元素 ::before child

    阅读更多here

    .box {
      display: block;
      background: #FFF;
      width: 350px;
      height: 140px;
      box-shadow: 0 1px 3px #888;
      padding: 20px;
      overflow: auto;
      text-align: center;
      border-radius: 5px;
      border: 1px solid #FFF;
      position: relative;
      top: 130px;
      left: 30px;
    }
    .wrapper {
      position: relative;
    }
    .wrapper::before {
      position: absolute;
      font-family: FontAwesome;
      content: "\f0d8";
      color: red;
      font-size: 80px;
      left: 50px;
      top: 0;
    }
    <div class="wrapper">
      <div class="box">
        BLAH BLAH BLAH BLAH BLAH
      </div>
    </div>

    【讨论】:

    • 是的,我认为你是对的,没有办法在单个 div 上完成这项工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多