Модальное окно - чистый CSS

Когда я создаю модальный режим, у меня возникают проблемы с пониманием того, почему тег тега article должен быть вложен в этот тег div для открытия модального элемента. Если бы кто-нибудь мог объяснить, почему это было бы необходимо, и, возможно, обойтись без решения, я был бы очень признателен!

<a href=#modal__open>More Info</a>
<div id="modal__open" class="modal">
    <article>
        <a href="#close" title="Close" class="modal__close">X</a>
        <h3>Lorem Ipsum Dolor</h3>
        <h4><time>2018-01-01</time></h4>
        <p>Consectetur adipisicing elit, sed do eiusmod elit ....</p>
    </article>
</div>

--CSS

.modal {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.8);
    opacity: 0;
    z-index: 99;
    transition: opacity 400ms ease-in;
    pointer-events: none;
}
.modal:target {
    opacity: 1;
    pointer-events: auto;
}

.modal > article {
    position: relative;
    width: 400px;
    margin: 10% auto;
    padding: 5px, 20px, 13px, 20px;
    background: #fff;
}

.modal__close {
    position: absolute;
    top: -10px;
    right: -12px;
    background: #797979;
    color: #ffffff;
    text-decoration: none;
    line-height: 25px;
    text-align: center;
    width: 24px;
}

2 ответа

Основная причина, которую я вижу, заключается в том, что .modal Класс имеет цвет фона, который необходимо растянуть, чтобы заполнить весь экран в качестве наложения, в то время как модальное содержимое ограничено в центре экрана.

Может быть возможно переписать, если вы не против потерять оверлей.

Вы все еще можете сделать это, не вкладывая их в разметку.

но в HTML такой div <div class="myDiv"></div> не имеет смысла, потому что HTML описывает структуру страницы, поэтому всегда лучше не иметь пустых элементов div или контейнеров.

Еще одна причина их вложения:
<article> расположен относительно его нормального положения внутри неподвижного контейнера, так что <article> прокрутить с .model дела.

если вы не вложили их в этот случай .model будет прокручивать но <article> не буду.

Другие вопросы по тегам