Я работаю над своим первым настоящим сайтом и борюсь с медиа-запросами и позиционированием. Я хочу создать дизайн одной страницы с целевой страницей сверху, содержащей большое изображение и меню. Для небольших экранов я хочу скрыть это большое изображение и показать только меню.Ответные образы и медиа-запросы
Итак, мой план состоял в том, чтобы создать мобильную версию без изображения, которое должно быть расширено медиа-запросами. В моем Html я создал относительно расположенную DIV в том числе изображения и относительной позиционируется DIV для заголовка и навигации:
<div class="relative">
<img id="landingimg" class="bigimg" src="http://placekitten.com/g/1200/800">
<div id="header">
<h1 class="center headline">HEADLINE</h1>
<nav>
<a class="navigation" href="">Link</a>
<a class="navigation" href="">Link</a>
<a class="navigation" href="">Link</a>
<a class="navigation" href="">Link</a>
</nav>
</div>
</div>
Изображение было установлено значение display:none;
. С размером экрана более 400px Я хочу, чтобы отобразить изображение (#landingimg
) и переставить навигации DIV (#header
) внутри контейнера по этому запросу:
@media screen and (min-width: 470px) {
.headline {
font-size: 200% !important;
}
#landingimg {
display: inline !important;
}
#header {
position: absolute !important;
top: 30% !important;
}
}
Такой подход, к сожалению, не работал и привело к следующие проблемы:
- Медиа-запрос не вставляет изображение при изменении размера экрана.
- На очень маленьких экранах заголовок/меню накладывает содержимое или нижний колонтитул накладывает меню. Это происходит даже для обоих параметров:
position:relative, display:block/inline
и т. Д. Или на том же уровне z-индекса. Я пытался тысячу раз исправлять это разными подходами, но безуспешно. Я просто не знаю, как предотвратить этот эффект. - Мне пришлось использовать
!important
в моем запросе, чтобы заставить его работать, но не знаю почему. Я работаю с идентификатором элемента, чтобы предотвратить любые приоритетные конфликты, но это не работает ...
В следующей скрипке я использовал альтернативное решение с непрозрачностью (вместо display:none;
) для изображения, чтобы дать вам идея, как это должно работать, но это не решает проблему, что меню накладывает содержимое, если экран становится очень маленьким, а это также означает, что мобильные устройства все еще загружают изображение. Вы найдете здесь: https://jsfiddle.net/9pj5ux3L/
Первоначальный подход с дисплеем ни хранится по этой ссылке: https://jsfiddle.net/h56nx35g/2/
Надежда кто-то может показать мне более профессиональное решение. Благодаря!
Спасибо за советы, но я все еще немного смущен: – Til
1. Я знаю, что это нехорошо использовать! Важно, но я действительно не знаю, в чем проблема, которая мешает работе в сфере рекламы без работы ... Кто-нибудь видит проблему в моем коде? 2. И кто-нибудь знает, почему меню накладывает контент? Если ничего не работает, я попробую JS-подход, но предпочел бы, чтобы CSS-решение оставалось простым и потому, что я хочу знать, как это сделать в CSS :) – Til
Пытался установить фоновое изображение родительского десанта: '#landingdiv { \t \t background-image: url ("http://placekitten.com/200/200300")! Important; \t \t высота: 100%! Important; \t \t ширина: 100%! Important; \t} ' Но на самом деле ничего не произошло (ни в обычном css, ни в медиа-quiery). Любая идея почему? Благодаря! – Til