#css #responsive-design
#css #адаптивный дизайн
Вопрос:
У меня есть сайт, который я хотел бы разместить, как это изображение:
Красный — настольная версия, а желтый — мобильная версия. Я могу легко переключаться между ними, используя медиа-запросы.
Моя проблема в том, как написать CSS для настольной версии — я включаю только мобильную версию, потому что макет исключает некоторые методы компоновки для настольной версии.
Содержимое внутри каждой пары (например, A и B) может быть разной высоты, но они достаточно похожи, поэтому я хотел бы расположить их как равные высоты, чтобы заголовки следующих пар выстраивались в линию.
Я думаю, самый простой способ — жестко задать высоты для каждой пары, но я бы предпочел избежать этого, если это возможно.
Комментарии:
1. Вы бы предпочли полагаться на Javascript или, скорее, добавить несемантические оболочки?
Ответ №1:
Для этих элементов следует использовать контейнер.
например, a <ul>
и сами элементы являются <li>
элементами.
пример html
<ul class="container">
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
<li>F</li>
</ul>
настольный CSS
ul.container li{
width:45%;
margin-right:5%;
float:left;
}
ul.container li:nth-child(odd){
clear:left;
}
мобильный CSS
ul.container li{
width:100%;
}
Демонстрация на http://jsfiddle.net/gaby/AgNjB/1
УВЕДОМЛЕНИЕ
Приведенный выше код работает, если вы хотите только выровнять их заголовки (левая и правая вершины находятся в одном и том же месте). Но это потребует изменений, если вы хотите, чтобы их фактическая высота также совпадала (например, для нижней границы)..
Комментарии:
1. @Omeid, подойдет любой тег.. Я просто подумал из макетов, что семантически a
ul
иli
s кажутся подходящими..2. Я не рассматривал возможность использования n-го дочернего элемента (нечетного) для их очистки. Приветствия!
3. @GabyakaG. Петриоли, да, я просто хотел упомянуть об этом для OP. : D
4. @ICR, не то, чтобы это
:nth-child
не работало для версий до IE9.. для предыдущих версий IE вам нужно будет присоединить класс к нечетным и использовать его для их очистки .. ( или использовать javascript для их таргетинга .. )5. однако семантически ul и li не подходят для макета, и вам лучше использовать divs.