#css #media-queries
#css #медиа-запросы
Вопрос:
У меня проблема с медиа-запросом. Используя следующие HTML и CSS, предполагается, что элемент b-класса сузится до 128 пикселей, когда окно сузится до такой степени, что в противном случае оно перекрывалось бы с элементом a-класса (примерно). Это работает на моем ноутбуке с разрешением экрана 3000×2000, но в Firefox на моем мобильном устройстве в альбомном режиме элементы перекрываются без включения правила медиа-запроса.
Пример кода: codepen.io/krainert/pen/KKzVQLP code below
<p class="a">Here is a headline</p>
<p class="b">Here is a nav element with several menu items</p>
body, p {
margin: 0;
font-family: 'calibri';
}
.a {
font-size: 50px;
background-color: blue;
}
.b {
position: absolute;
top: 0px;
right: 0px;
font-size: 24px;
background-color: red;
}
@media only screen and (max-width: 832px) {
.b {
width: 128px;
}
}
Я считаю, что это вызвано несоответствиями между различиями в ширине устройства и относительными размерами элементов экрана на разных устройствах — то есть разница между шириной устройства на мобильном устройстве и на моем ноутбуке больше, чем разница между шириной элементов на мобильном устройстве и на моем ноутбуке относительно размеров их экранов. Или, может быть, я сам себя путаю. Каков наилучший способ это исправить?
Комментарии:
1. Пожалуйста, разместите соответствующие фрагменты кода в самом вопросе.
2. Проблема связана с разницей в размере шрифта на устройствах? Красный текст находится поверх синего текста, и вы не можете прочитать синий текст? Возможно, добавьте 128px отступа справа от синего текста в медиа-запросе, чтобы он останавливался на тексте и не перекрывал его.
3. Код добавлен, спасибо!
Ответ №1:
Попробуйте ограничить ширину контейнера .a, чтобы они не перекрывались:
@media only screen and (max-width: 832px) {
.b {
width: 128px;
}
.a {
width: calc(100vw - 128px);
}
}
Комментарии:
1. Спасибо! Хотя это работает на моем ноутбуке, проблема не затронута в Firefox на Android.