К тому же логика БЭМ немного нарушается тогда
Я бы совместил советы из первого комента с нормальным БЭМ где он нужен.
боже, чел какой ты токсичный. Пишешь так, будто бы пытаешься меня чем то задеть))
При нормальной компоновке проекта, все элементы модальных окон вызываются из задницы мира.
position: fixed;left:0;top:0;width:100%;height:100%
чем уже перекрывает всю страницу, и все клики будут уже проходить по модальному окну.pointer-events
А про удалить ссылку и прочее, что ты там писал-cмешно конечно))
opacity: 0;
. И с чего вы взяли что при opacity: 0;
с окном нельзя взаимодействовать? Оно будет кликабельным. Что за бред вы сказали?
pointer-events применяют к видимому элементу,чтоб с ним не взаимодействовать.
.modal {
transition: $transition-duration opacity $transition-timing-function;
position: fixed;
top: 0;
right: 0;
bottom: 0;
height: 100%;
width: 100%;
opacity: 0; // Скрываем
pointer-events: none; // Предотвращает события мыши и щелчки по элементу.
&--open {
opacity: 1; // Показываем
pointer-events: unset; // Разрешаем работать с окном
}
}
Свойство pointer-events позволяет управлять тем, как элементы будут реагировать на события мыши или прикосновения к сенсорному экрану. Часто применяется для того, чтобы в сложной компоновке можно было взаимодействовать с нижележащими элементами, игнорируя вышележащие.
Например ,если не нужна ссылка в каком то элементе. В каком смысле не нужна ссылка? Так удалите ее, или выставите display: none; Или переделайте без ссылки.
но никак не в вашем случае- Скорее уже никак в вашем случае.
opacity: 0
и pointer-events: none
Но на ios/macos все браузеры это safari. Все другие это надстройки только