IE11: Положение абсолютного DIV внутри контейнера Flex не допускается - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть дисплей: гибкий контейнер, который содержит изображение и div, изображение имеет ширину 100%, а div должен быть центрирован по горизонтали и вертикали в контейнере (со свойствами flex). Чтобы изображение отображалось поверх изображения, я использую position: absolute. Проблема в том, что в IE11 позиционированный абсолютный div продолжает показываться из потока.

Вот как это выглядит на IE11: enter image description here

Вот как это должно выглядеть (Chrome): enter image description here

Это мой HTML:

<div class="container shop-service">
    <img class="img-container" src="/_ui/responsive/theme-lambda/services/image-services.jpg">
    <div class="shop-service-content">
        <div class="shop-service-img">
        <img alt="ecommerce" src="/_ui/responsive/theme-lambda/services/ecommerce.svg"></div>
        <h2>E-commerce</h2>
        <p class="col-md-12">Poderá fazer os seus pedidos a qualquer hora do dia, 365 días por ano, de forma
        segura, ágil e confidencial.</p> <a class="btn btn-primary" href="/Open-Catalogue/c/1">Comprar agora</a>
    </div>
</div>

Это мой CSS:

.shop-service {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 35px;
    padding-bottom: 35px;
    position: relative;
}

.shop-service img {
    width: 100%;
    height: auto;
}

.shop-service .shop-service-content {
    position: absolute;
    width: 100%;
    max-width: 400px;
    padding: 0 15px;
}

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Попробуйте указать высоту для родительского контейнера .shop-service

0 голосов
/ 08 ноября 2018

Нормально встретить проблему с flexbox и абсолютной позицией в IE.

Более рекомендуемый метод - использовать transform: translate () свойство.

Вы можете комбинировать Flexbox и transform: translate, так как последний не влияет на первый.

Я сделал образец на моей стороне, и, может быть, вы могли бы обратиться.

HTML.

    <div class="container shop-service">
    <img class="img-container" src="Images/test7.jpg" />
    <div class="shop-service-content">
        <div class="shop-service-img">
            <img alt="ecommerce" src="Images/test6.jpg" />
        </div>
        <h2>E-commerce</h2>
        <p class="col-md-12">
            Poderá fazer os seus pedidos a qualquer hora do dia, 365 días por ano, de forma
            segura, ágil e confidencial.
        </p> <a class="btn btn-primary" href="#">Comprar agora</a>
    </div>
</div>

CSS.

   .shop-service {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding-top: 35px;
        padding-bottom: 35px;
        position: relative;
    }

        .shop-service .shop-service-content {
            position: absolute;
            width: 100%;
            max-width: 400px;
            padding: 0 15px;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
        }

        .shop-service img {
            width: 100%;
            height: auto;
        }

Результат скриншот: результат

0 голосов
/ 07 ноября 2018

Попробуйте добавить объявление top: 0; в ваш .shop-service .shop-service-content класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...