Display:在ie11中的弹性容器上的元素之前

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Display:在ie11中的弹性容器上的元素之前相关的知识,希望对你有一定的参考价值。

我有一个flex容器,其中有几个孩子,需要在其上添加一个before元素。如果父容器为display: block,则显示before元素,如果父容器为display: flex,则不显示元素。有没有解决方法?

:之前不起作用,但是子容器的样式很好:

<div class="parent">
  <div></div>
  <div></div>
</div>

<style lang="scss">
.parent {
  display: flex;
  justify-content: space-between;
  position: relative;

  &:before {
    content: '';
    position: absolute;
    top: -20px;
    height: 20px;
    width: 100%;
    background: linear-gradient(180deg, transparent, $gray);
  }
}
</style>

:在工作之前,但破坏了我的子元素样式:

<div class="parent">
  <div></div>
  <div></div>
</div>

<style lang="scss">
.parent {
  display: block;
  position: relative;

  &:before {
    content: '';
    position: absolute;
    top: -20px;
    height: 20px;
    width: 100%;
    background: linear-gradient(180deg, transparent, $gray);
  }
}
</style>
答案

尝试为父容器中的第一个div元素添加margin-right:auto; CSS样式。

代码如下(您可以将CSS样式更改为SCSS样式):

<div class="parent">
    <div style="background-color:coral;">content 1</div>
    <div style="background-color:pink;">content 2</div>
</div>

<style >
    .parent {
        display: flex;
        display: -ms-flexbox;
        justify-content: space-between;
        position: relative;
    }

        .parent::before {
            content: "";
            position: absolute;
            top: -20px;
            height: 20px;
            width: 100%; 
            background: linear-gradient(180deg , red, yellow);
            background-color: aqua;
        }

        .parent div:first-child { 
            margin-right:auto;
        } 
        .parent div {
            width: 70px;
            height: 70px;
            display: block;
        } 
</style> 

在IE11浏览器中的结果如下:

enter image description here

以上是关于Display:在ie11中的弹性容器上的元素之前的主要内容,如果未能解决你的问题,请参考以下文章

弹性布局

弹性布局

弹性容器中的文本不会在 IE11 中换行

弹性容器中的文本不会在 IE11 中换行

flex布局

Flex 弹性布局