HTML and CSS

HTML and CSS

{Лаборатория экстремальной web-верстки...}

Танцы с волками…

Танцы с волками…

Сильно, конечно сказано…

Браузеры, это такие милые зверюшки, которые часто нуждаются в приручении и любви, но без должного опыта в дрессуре, с ними ой, как трудно.

Ведь, как повелось, верстаешь под один самый лучший, тут поставьте свой любимый, потом подгоняешь под "зоопарк". Выбор богат, но в основном все ограничивается только популярными/распространенными.

Говорить о негативе в рамках сегодняшнего поста не буду, все проблемы с младшими версиями IE, ушли в условные комментарии (CC), там им, в общем-то, и место.

Тема мной затрагивалась, ссылок самому на себя давать не с руки, кому интересно, найдут и прочитают про мечты и утопии, гибридную верстку. Повторю лишь скриншот.

При создании иллюзии равной высоты колонок с использованием:

margin-bottom:-32767px;padding-bottom:32767px;

По мимо проблемы связанных с не корректной работой меток-якорей, есть еще одна – нет возможности простыми средствами прикрутить нижний border, его просто не видно.

Ранее для решения этого вопроса мной использовалось абсолютное позиционирование. Но, как показала практика, у приема на его основе, есть серьезный минус, абсолютно позиционированные блоки всегда требуют конкретного указания ширины.

Если у нас, к примеру, область контента резиновая, приходится ставить проценты, а с ними не только у браузеров не лады, но и по разному процентные величины, у разных блоков, ведут себя при уменьшении размеров окна браузера.

Вот и попробуем вместо position:absolute; поиграть с отрицательными отступами.

Также вернемся к псевдо эмуляции min/max-width, писал и об этом, ищем и находим.

С чем будем работать?

Пример всего один, иное размещение колонки (колонок) отведенных под навигацию делаем по аналогии.

<body>
  <div class="main">
    <div class="header">Header</div>
    <div class="middle">
      <div class="content">Content</div>
      <div class="left">Left</div>
    </div>
    <div class="left_a"></div>
    <div class="content_a"></div>
    <div class="footer">Footer</div>
  </div>
</body>

html-код по минимуму, а иначе к чему огород городить. Два пустых блока отвечающих за отрисовку нижних border-ов, выделены цветом, согласен плохо и не хорошо. Но в конечном итоге по визуалу, все красиво :)

<style type="text/css">
* {margin:0;padding:0;}
html, body {height:100%;}
body {
  background-color:#eee;margin:0 4%;
  padding:0 0 0 614px;position:relative;
}
.main {margin:0 0 0 -614px;height:100%;}
.middle {
  background-color:#eee;overflow:hidden;
  margin-top:-150px;margin-bottom:5px;
  padding-left:204px;min-height:100%;
}
.content,.left {
  margin-top:150px;margin-bottom:-32767px;padding-bottom:32767px;
}
.content {
  background-color:#fff;border:#00f 1px solid;
  float:right;width:99%;
}
.left {
  background:#edd;border:#a00 1px solid;
  float:left;margin-left:-204px;width:200px;
}
.header {
  background:#ee9;border:#000 1px solid;
  overflow:hidden;position:relative;top:0px;
  margin-bottom:3px;zoom:1;height:100px;
}
.footer {
  background:#9ee;border:#000 1px solid;
  overflow:hidden;margin-top:3px;height:40px;
}
.content_a,.left_a {overflow:hidden;}
.content_a {
  border-bottom:#00f 1px solid;margin:-1px 0 0 210px;
}
.left_a {
  border-bottom:#a00 1px solid;margin:-5px 0 0 1px;width:200px;
}
</style>
<!--[if lte IE 7]>
<style type="text/css">
.main {height:auto;}
*html .main {display:inline;zoom:1;}
*html .middle {zoom:1;}
*html .left {margin-left:-102px;height:415px;}
.content_a {margin:-20px 0 0 209px;}
*html .content_a {margin:-0 0 0 209px;}
.left_a {margin:-25px 0 0 1px;}
</style>
<![endif]-->

Как видим все не так уж и сложно. Расшифровывать ничего не буду, тем кто читает с листа, ясно и так, а тем, кто еще не научился, пример подойдет в самый раз, окрыли в редакторе, и играем до потери пульса :)

Единственно, что не удалось, так это сто процентная высота макета в IE6.


RSS лента ВСЕГО блога с комментариями RSS лента ВСЕГО блога БЕЗ комментариев RSS лента этой КАТЕГОРИИ с комментариями RSS лента этой КАТЕГОРИИ и БЕЗ комментариев RSS лента ЭТОГО ПОСТА с комментариями к нему



Прыг: 21 22 23 24 25 26 27 28 29 30 31
Скок: 10 20 30 40 50 60 70 80 90
English German French Spanish Italian Japanese
  • Programming V. Lasto
  • Designer S. Gordi
  • Created in 0,02501 seconds
  • © 2007-2010