#1
16 мая 2011 в 17:26
Всем привет! Скажите, я вот хочу создать шаблон для сайта, но чтобы он был динамическим, т.е. информация отображалась на сайте с учетом включенных колонок — правой или левой. Я внес необходимые правила в индексный файл шаблона через php, но у меня эти правила работаю только если на сайте включена правая колонка и основной контент или левая колонка и основной контент. А как сделать, чтобы когда включаешь обе колонки и правую и левую центральный блок с контентом не съезжал вниз? Я так понимаю надо добавить еще одно правило, которое определяет что на сайте включены обе колонки. Спасибо заранее…
#2
16 мая 2011 в 18:12
или необходимо переопределить стили ксс, блок контента может просто “выталкиваться” вниз если нарушает нормальный поток элементов, например фиксированными размерами или определением позиции (position) или обтеканием (float)…
#3
16 мая 2011 в 18:16
Я внес необходимые правила в индексный файл шаблона через php, но у меня
я так понял, проблема в верстке, а не в
Я так понимаю надо добавить еще одно правило, которое определяет что на сайте включены обе колонки.
Сегодня в 07:12
#4
16 мая 2011 в 18:31
2 div`а, один с фиксированной шириной.
Если нужна только одна колонка, то div в фиксированной шириной просто не выводится, тогда оставшийся div будет заполнять всю область.
Если нужна только одна колонка, то div в фиксированной шириной просто не выводится, тогда оставшийся div будет заполнять всю область.
у человека три колонки, а задаёт он просто условия видимости без задания свойств, насколько я понял…
#6
16 мая 2011 в 20:33
2 div`а, один с фиксированной шириной.
а я понял, что две колонки
#7
16 мая 2011 в 21:18
Ребят вы все неправильно поняли. Верстку я делаю правильно и стили я все указываю, я этих шаблонов на инстанте уже не один десяток сделал. Просто до этого они все были статическими, т.е. в трехколоночном шаблоне отключить к примеру правую колонку, то центральный блок не растягивается на ширину правой колонки, а остается на месте. Мне же нужно чтобы центральный блок с контентом растягивался и сужался в зависимости от появления колонок. Вот пример: У нас есть трехколоночный макет.
1. Включены все три колонки — центаральный блок принимает класс, к примеру, class="wrap", левая колонка class="left", правая class="right". В данном случае блоку wrap задаются одни стили.
2. Включена левая колонка и центральный блок, здесь уже центральный блок принимает class="wrap_left" и для него задаются уже другие стили
3. Включена правая колонка и центарльный блок, здесь уже задается class="wrap_right" и уже для центрального блока задаются другие стили.
4. Выключена и правая и левая колонки, центральный блок растягивается на всю ширину.
Теперь собственно вопрос, как прописать через php, чтобы центральный блок менял свой класс в зависимости от того какая колонка включена? Я это все не из воздуха взял. Данную методику применил на Джумла и все прекрасно работает, я пользовался шпаргалкой из другого шаблона. На иснстанте же нет такой шпаргалки, вот я и прошу у вас помощи.
1. Включены все три колонки — центаральный блок принимает класс, к примеру, class="wrap", левая колонка class="left", правая class="right". В данном случае блоку wrap задаются одни стили.
2. Включена левая колонка и центральный блок, здесь уже центральный блок принимает class="wrap_left" и для него задаются уже другие стили
3. Включена правая колонка и центарльный блок, здесь уже задается class="wrap_right" и уже для центрального блока задаются другие стили.
4. Выключена и правая и левая колонки, центральный блок растягивается на всю ширину.
Теперь собственно вопрос, как прописать через php, чтобы центральный блок менял свой класс в зависимости от того какая колонка включена? Я это все не из воздуха взял. Данную методику применил на Джумла и все прекрасно работает, я пользовался шпаргалкой из другого шаблона. На иснстанте же нет такой шпаргалки, вот я и прошу у вас помощи.
Допустим в левой колонке у вас позиция left, в правой — right
в начале шаблона вычисляете класс:
Затем к центральному диву класс привязываете:
в начале шаблона вычисляете класс:
$is_left = cmsCountModules('left'); $is_right = cmsCountModules('right'); if ($is_left && $is_right) { //включена левая и правая колонка $class = "both"; } else if ($is_left) { //включена только левая колонка $class = "only_left"; } else if ($is_right) { //включена только правая колонка $class = "only_right"; } else { //боковых колонок нет $class = "no_sides"; }
<div class="<?php echo $class; ?>"> ... </div>
#9
17 мая 2011 в 09:34
Спасибо за помощь. Попробую ваш вариант.
#10
20 мая 2011 в 03:47
отличный универсальный шаблон получился..
Админ спасибо за быстрый ответ!!!
Админ спасибо за быстрый ответ!!!