Резиновые макеты (разметка) для вашего сайта
Вам, должно быть, известно, как сложно порой подогнать ширину контента вебсайта таким образом, чтобы она устраивала все те устройства его, через которые сайт можно увидеть (от мобильных устройств с низким разрешением экранов до персональных компьютеров с высоким разрешением экранов). Решить эту проблему можно с помощью резиновых макетов (разметок). Вы можете выбирать из нескольких разметок, которые я подготовил для вас. Все эти разметки содержат в себе несколько колонок, внутри которых расположен контент. И, в качестве небольшого бонуса – можно менять разметки «на лету» (без перезагрузки страниц), используя CSS3.
Шаг 1. HTML
HTML
<div class="layout">
<h1>Варианты</h1>
<span id="var1"></span>
<span id="var2"></span>
<span id="var3"></span>
<span id="var4"></span>
<span id="var5"></span>
<div class="variants">
<a href="#var1" class="var1"></a>
<a href="#var2" class="var2"></a>
<a href="#var3" class="var3"></a>
<a href="#var4" class="var4"></a>
<a href="#var5" class="var5"></a>
</div>
<div class="columns">
<div class="column" id="left"><img src="post.png" alt="" />
Demo text content, nothing to read here.</div>
<div class="column" id="right"><img src="post.png" alt="" />
Demo text content, nothing to read here. </div>
<div class="column" id="center">
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<hr style="clear:both" />
Demo text content, nothing to read here. </div>
</div>
</div>
Здесь вы можете увидеть небольшую панель с переключателями (предназначены для выбора варианта разметки), за которыми следуют три колонки с контентом. Что касается контента – то он может быть представлен в виде изображений, текста или других элементов.
Шаг 2. CSS
Теперь поработаем над дизайном нашей страницы. Сперва подготовим базовые стили для нашего трехколончатого макета.
Применяется для изменения алгоритма расчета ширины и высоты элемента.
значения:
- content-box
- Стандартное CSS: свойства
width
иheight
задают ширину и высоту контента и не включают в себя значения отступов, полей и границ. - border-box
- Свойства
width
иheight
включают в себя значения отступов (padding
) и границ (border
), но не полей (margin
). - padding-box
- Свойства
width
иheight
включают в себя значения отступов (padding
), но не полей (margin
) и границ (border
).
CSS
.columns {
overflow: hidden;
width: 100%;
}
.column {
border: 1px dashed #CCCCCC;
min-height: 150px;
overflow: hidden;
padding: 10px;
position: relative;
/* CSS3 Box sizing property */
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
/* CSS3 transition */
-moz-transition: all 0.2s linear;
-ms-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
-webkit-transition: all 0.2s linear;
transition: all 0.2s linear;
}
.column img {
float: left;
margin: 0 10px 10px 0;
}
.column div {
background-color: #888888;
float: left;
height: 80px;
margin: 0 10px 10px 0;
width: 80px;
}
#left {
background-color: #C8FC98;
float: left;
width: 25%;
}
#right {
background-color: #FDE95E;
float: right;
width: 25%;
}
#center {
margin: 0 25%;
}
Как вы можете увидеть – левая и правые колонки имеют определенную ширину (которая выражена в процентах), центральная же определенной ширины не имеет. В этом случае все колонки являются резиновыми. Вскоре я опишу другие варианты, пока же займемся дизайном кнопок; кнопки предназначены для выбора варианта разметки.
CSS
.variants {
height: 32px;
margin: 20px auto;
width: 200px;
}
.variants a {
cursor: pointer;
float: left;
height: 30px;
margin: 0 5px;
width: 30px;
}
.variants .var1 {
background-color: red;
}
.variants .var2 {
background-color: orange;
}
.variants .var3 {
background-color: pink;
}
.variants .var4 {
background-color: green;
}
.variants .var5 {
background-color: blue;
}
Все предельно просто – простые цветные пиктограммы. И наконец – наши резиновые макеты:
:target
применяется к идентификатору (например,
#var1
), который указан в адресной строке браузера. Про Селектор X ~ Y
CSS
/* вариант 1 */
#var1:target ~ .columns #left {
width: 25%;
}
#var1:target ~ .columns #right {
width: 25%;
}
#var1:target ~ .columns #center {
margin: 0 25%;
}
/* вариант 2 */
#var2:target ~ .columns #left {
width: 50%;
}
#var2:target ~ .columns #right {
display: none;
}
#var2:target ~ .columns #center {
margin: 0 0 0 50%;
}
/* вариант 3 */
#var3:target ~ .columns #left {
width: 18em;
}
#var3:target ~ .columns #right {
width: 18em;
}
#var3:target ~ .columns #center {
margin: 0 18em;
}
/* вариант 4 */
#var4:target ~ .columns #left {
width: 18em;
}
#var4:target ~ .columns #right {
width: 20%;
}
#var4:target ~ .columns #center {
margin: 0 20% 0 18em;
}
/* вариант 5 */
#var5:target ~ .columns #left {
display: none;
}
#var5:target ~ .columns #right {
width: 18em;
}
#var5:target ~ .columns #center {
margin: 0 18em 0 0;
}
Заключение
Ну, вот и все, мы подготовили симпатичную страницу с несколькими резиновыми разметками. Надеюсь, этот материал будет вам полезен. Удачи.
Источник
Комментарии к статье
Спасибо, интересно!