PDA

Показать полную графическую версию : Резиновые 3 колонки - зачем отрицательный margin ?


blacks2
31-01-2010, 02:29
Здравствуйте

Подскажите пожалуйста для чего при верстке "резинового 3х колоночного макета страницы"
в CSS для колонок указывают margin-left: -25% ? Не достаточно ли одного float ?

Очень интересно узнать. Поизучав интеренет пришел к предположениям:

1. минус марджины для того что в IE 6 float не переносил блок на новую строку при сжимании окна браузера по горизонтали.
2. такой метод в основном применяется для резиновых макетов/верстки
так-как в "px, фиксированной верстке" блок не может съехать (про размер шрифта умалчиваю)

Всем откликнувшимся заранее большое спасибо!!


PS если мои предположения верны подскажите данные "кастыли" необходимы только для ie6 или и для других версий ie

пример кода CSS о которым я горовю
#columns-wrapper {
position:relative;
left:100%;
padding:5em 0;
z-index:2;
}
#main {
float:left;
position:relative;
width:58%;
margin-left:-79%;
}
#left {
float:left;
position:relative;
width:21%;
margin-left:-100%;
}
#right {
float:left;
position:relative;
width:21%;
margin-left:-21%;
}

skyfish
31-01-2010, 13:30
Это не msie хак, а приём перфекционистской «резиновой» вёрстки, при которой визуальная очерёдность колонок совпадает с очерёдностью их перечисления в html.

Технология наиболее ясно изложена в статье «Creating Liquid Layouts with Negative Margins» (оригинал (http://www.alistapart.com/articles/negativemargins) | перевод (http://i2r.ru/static/476/out_21614.shtml)). Для ясности там начинается с двух колонок, пример с тремя в конце.

blacks2
02-02-2010, 18:34
Спасибо skyfish
Прочел перевод. Вот цитата из него - для чего нужны отрицательные марджины:
Однако, раз уж нам так важно, чтобы в текстовых браузерах, программах для чтения с экрана и старых браузерах, не понимающих наши таблицы стилей, сначала был виден контент, а потом уже боковая панель, значит нам надо найти такое решение, которое бы позволило разместить контент в начале кода.

Подскажите пожалуйста на каких старых но еще актуальных для верстки(сдачи в проект)
могут быть такие "нехорошие последствия"?
- не могу для себя все еще понять необходимость использования отрицательных марджинов...




© OSzone.net 2001-2012