Личный кабинет
2008-11-03 21:13
Существует много разных способов css разметки. Некоторые базируются на абсолютном позиционировании, другие используют float'ы. Первый метод плохо поддерживает "резиновость" макета, тогда как второй это неплохой способ разметки.
Но, как и многие мощные инструменты, float'ы имеют свои изъяны. Для начала, верстка на основе float'ов не такая простая к пониманию, а также float'ы есть источником многих багов (в основном в ИЕ), что делает их не идеальным вариантом в погоне за кроссбраузерностью.
Итак, речь далее пойдет о семантически корректном методе верстки.
Начнем с обычной разметки (основанной на div'ах)
<div id="wp">
<div id="hd">Header</div>
<div id="bd">Body
<div id="doc">
<div id="s1">Section 1</div>
<div id="s2">Section 2</div>
<div id="s3">Section 3</div>
</div>
</div>
<div id="ft">Footer</div>
</div>
Но div'ы не могут отобразить структуру документа, для этого семантически более подходят списки, потому как они, в отличие от div'ов передают иерархию и связи, которые присутствуют между элементами.
<ol id="wp">
<li id="hd">Header</li>
<li id="bd">Body
<ol id="doc">
<li id="s1">Section 1</li>
<li id="s2">Section 2</li>
<li id="s3">Section 3</li>
</ol>
</li>
<li id="ft">Footer</li>
</ol>
Использование CSS стилей
Для "хороших" браузеров, все достаточно прозрачно.
* {margin:0;padding:0;}
#wp {width:55em;margin:0 auto;list-style-type:none;}
#bd {display:table;}
#doc {display:table-row;}
#s1,#s2,#s3 {display:table-cell;}
Стили для IE
В IE LI имеют значение display равным inline-block, поэтому:
1. Для IE Win используем {display: inline; zoom: 1}. "zoom:1" используется для того чтобы елементы имели hasLayout-свойство. (читайте наличие layout или на хабре Изучаем наличие layout)
2. Для IE Mac - {display:inline-block;float:left;}
Так же нам понадобятся еще несколько дополнительных правил:
vertical-align чтобы контент в LI прижимался к верху, а не к низу
width для каждого из LI
#s1,#s2,#s3,{display:inline;zoom:1;vertical-align:top;}
#s1 {width:12em;}
#s2 {width:29em;}
#s3 {width:14em;}
/*\*//*/
#s1,#s2,#s3 {display:inline-block;float:left;}
#ft {clear:left;}
/**/
Css-правила выше используют некоторые хаки, а именно:
IE (IE 7 и IE Mac включительно) не игнорирует правила, в которых запятая предшествует блоку объявлений
IE5 Mac фильтр используется, чтобы только IE Mac видел эти правила
Так как IE 5.1 имеет баги с математическими рассчетами, то нужно уменьшить ширину первого столбца, поэтому используем условные комментарии с условием "if lt IE 5.5000"
<style type="text/css">
/* to avoid columns #3 dropping in IE lt 5.5 */
#s1 {width:11.9em;}
</style>
По сути на этом все... Далее в статье автор рассказывает как добавить границы, а также указывает на разницу в правилах для фиксированной и резиновой верстки.
Метод достаточно интересный, если отбросить поддержку морально устаревших браузеров, таких как IE5.5 и меньше, то правил станет значительно меньше. Этот метод позволяет просто и без забот решить проблему, когда нужно расстянуть float-блок (скорее всего боковой блок), чтобы он был равен главному по высоте (к примеру, если фон нужно расстянуть).
Но, как и многие мощные инструменты, float'ы имеют свои изъяны. Для начала, верстка на основе float'ов не такая простая к пониманию, а также float'ы есть источником многих багов (в основном в ИЕ), что делает их не идеальным вариантом в погоне за кроссбраузерностью.
Итак, речь далее пойдет о семантически корректном методе верстки.
Начнем с обычной разметки (основанной на div'ах)
<div id="wp">
<div id="hd">Header</div>
<div id="bd">Body
<div id="doc">
<div id="s1">Section 1</div>
<div id="s2">Section 2</div>
<div id="s3">Section 3</div>
</div>
</div>
<div id="ft">Footer</div>
</div>
Но div'ы не могут отобразить структуру документа, для этого семантически более подходят списки, потому как они, в отличие от div'ов передают иерархию и связи, которые присутствуют между элементами.
<ol id="wp">
<li id="hd">Header</li>
<li id="bd">Body
<ol id="doc">
<li id="s1">Section 1</li>
<li id="s2">Section 2</li>
<li id="s3">Section 3</li>
</ol>
</li>
<li id="ft">Footer</li>
</ol>
Использование CSS стилей
Для "хороших" браузеров, все достаточно прозрачно.
* {margin:0;padding:0;}
#wp {width:55em;margin:0 auto;list-style-type:none;}
#bd {display:table;}
#doc {display:table-row;}
#s1,#s2,#s3 {display:table-cell;}
Стили для IE
В IE LI имеют значение display равным inline-block, поэтому:
1. Для IE Win используем {display: inline; zoom: 1}. "zoom:1" используется для того чтобы елементы имели hasLayout-свойство. (читайте наличие layout или на хабре Изучаем наличие layout)
2. Для IE Mac - {display:inline-block;float:left;}
Так же нам понадобятся еще несколько дополнительных правил:
vertical-align чтобы контент в LI прижимался к верху, а не к низу
width для каждого из LI
#s1,#s2,#s3,{display:inline;zoom:1;vertical-align:top;}
#s1 {width:12em;}
#s2 {width:29em;}
#s3 {width:14em;}
/*\*//*/
#s1,#s2,#s3 {display:inline-block;float:left;}
#ft {clear:left;}
/**/
Css-правила выше используют некоторые хаки, а именно:
IE (IE 7 и IE Mac включительно) не игнорирует правила, в которых запятая предшествует блоку объявлений
IE5 Mac фильтр используется, чтобы только IE Mac видел эти правила
Так как IE 5.1 имеет баги с математическими рассчетами, то нужно уменьшить ширину первого столбца, поэтому используем условные комментарии с условием "if lt IE 5.5000"
<style type="text/css">
/* to avoid columns #3 dropping in IE lt 5.5 */
#s1 {width:11.9em;}
</style>
По сути на этом все... Далее в статье автор рассказывает как добавить границы, а также указывает на разницу в правилах для фиксированной и резиновой верстки.
Метод достаточно интересный, если отбросить поддержку морально устаревших браузеров, таких как IE5.5 и меньше, то правил станет значительно меньше. Этот метод позволяет просто и без забот решить проблему, когда нужно расстянуть float-блок (скорее всего боковой блок), чтобы он был равен главному по высоте (к примеру, если фон нужно расстянуть).
- Фреймы в HTML документах (2008-11-04)
- 10 признаков дурного тона в web-дизайне (2008-11-04)
- 800 и 1024. Пиксели или проценты? (2008-11-04)
- Как работает формат JPEG? (2008-11-04)
- О композиции в дизайне (2008-11-04)
- Психология в дизайне (2008-11-04)
- Шрифты (2008-11-04)
- Как сделать качественный веб-сайт (2008-11-04)
- Какой вид дизайна выбрать? (2008-11-04)
- Выпадающие меню с помощью CSS (2008-11-04)
- Создание веб-страниц для различных разрешений м... (2008-11-04)
- Веб-дизайн и анимация (2008-11-04)
- Немного об index.html (2008-11-04)
- Психология дизайна (2008-11-04)
- Что такое стильный web-сайт? (2008-11-04)
- Web дизайн :: Что такое хорошо и что такое плохо (2008-11-04)
- Лево, Право или Центр? (2008-11-04)
- Оптимизация изображений в формате JPG (2008-11-04)
- Альтернативные редакторы Flash (2008-11-04)
- Что же такое web-дизайн? (2008-11-04)
- Сайты для тинейджеров: правила дизайна (2008-11-04)
- Маленькие проблемы больших таблиц - HTML (2008-11-04)
- Особенности web-дизайна (2008-11-04)
- Подсказки и советы для веб-мастеров - Топ 100+ (2008-11-04)
- Единицы измерения CSS (2008-11-04)
- Состав изображений (2008-11-04)
- FLASH - ЧТО МОЖЕТ БЫТЬ ХУЖЕ? (2008-11-04)
- FAQ по графическим форматам файлов (2008-11-04)
- ПО необходимое для web-дизайнера (2008-11-04)
- Должностная инструкция веб-мастера (2008-11-04)
- Стиль Вашего сайта (2008-11-04)
- Стиль Вашего сайта (2008-11-04)
- Orange color: теория и практика (2008-11-04)
- Расположение баннера (2008-11-04)
- Советы "чайникам" (2008-11-04)
- С чего начать (2008-11-04)
- С чего начать (2008-11-04)
- Организация - вот ключ к успеху (2008-11-04)
- Подбор шрифта и верстка текста (2008-11-04)
- Обзор Gif-аниматоров (2008-11-04)
- Каскадные таблицы стилей (преимущества и недост... (2008-11-04)
- Фирменный шрифт (2008-11-04)
- Главные ошибки в web-дизайне (2008-11-04)
- CSS - Для чего нужны таблицы стилей? (2008-11-04)
- Таблицы или слои, что лучше? (2008-11-04)
- О скриптах (2008-11-04)
- Изучаем HTML (2008-11-04)
- Применение нескольких классов к элементу в CSS (2008-11-04)
- Создание сайта с помошью фреймов (2008-11-04)
- Основы работы со слоями в CSS (2008-11-04)
Нет похожих страниц.
Быстрый переход