Резиновый шаблон на div (слоях) и css
Много решений в инете, о конструировании на слоях шаблонов страниц, но под мою задачу не было.
Вот решил поделиться.
ТЗ:
На что обратить внимание:
Листинг третьего примера (Меняем стили и порядок блоков):
- Три колонки (ничего нового, в принципе - не важно сколько их)
- Все растягивается по ширине, пропорционально: левая - 20%; правая - 20%; центральная - 60% (ничего нового)
- Слои не должны переноситься при ресайзе окна (тоже логично, но немного конфликтует со следующим пунктом)
- При ресайзе слои должны ужиматься до минимально размера в 300px - левая и правая колонки, 400px - центральная
- Ограничиваем слои в сжатии
- Задаем параметры ширины в соответствии с ТЗ
- Боковые слои выравниваем налево и направо. И обтекаем их центральным
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<html> <head> <style> .scroll-holder-right{ width:20%; min-width:300px; height:330px; background-color:blue; display:block; float:right; } .scroll-holder-left{ width:20%; min-width:300px; height:330px; background-color:green; display:block; float:left; } .scroll-holder-wide{ min-width:400px; height:330px; background-color:red; display:block; } #content{ width:100%; min-width:1000px; } </style> </head> <body> <div id="content"> <div class="scroll-holder-left"></div> <div class="scroll-holder-right"></div> <div class="scroll-holder-wide">Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</div> </div> </body> </html> |
- Сначала идут слои левый и правый. Только потом основной - это важно, т.к. их придется обтекать текстом - а для этого они должны быть до текста.
- Для левого и правого слоя указываем width - ширину в процентах; и min-width - минимальную ширину в пикселях;
- Для центрального блока задаем только минимальную ширину (он растянется тогда но, но будет обтекать... вот так вот жестко получается :p )
- И нужен контейнер - блок, который не сожмется меньше, чем суммарная минимальная ширина слоев. Иначе они начнут переноситься, начиная с центрального.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<style> .scroll-holder-right{ width:20%; min-width:300px; height:330px; background-color:blue; display:block; float:left; } .scroll-holder-left{ width:20%; min-width:300px; height:330px; background-color:green; display:block; float:left; } .scroll-holder-wide{ min-width:400px; height:330px; background-color:red; display:block; } #content{ width:100%; min-width:1000px; } </style> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<html> <head> <style> .scroll-holder-right{ width:20%; min-width:200px; height:330px; background-color:blue; display:block; float:right; } .scroll-holder-left{ width:20%; min-width:200px; height:330px; background-color:green; display:block; float:left; } .scroll-holder-wide{ width:60%; min-width:600px; height:330px; background-color:red; display:block; float:left; } #content{ width:100%; min-width:1000px; } </style> </head> <body> <div id="content"> <div class="scroll-holder-left"></div> <div class="scroll-holder-wide">Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</div> <div class="scroll-holder-right"></div> </div> </body> </html> |
Свежие комментарии