Надо создать безколоночную страницу. [РЕШЕНО]

Главные вкладки

Аватар пользователя sisadminich sisadminich 18 мая 2009 в 17:06

Вобщем дело такое. Друпал 6.
Изначально был создан шаблон (с помощью програмки) с колонкой слева и содержанием справа. Постепенно добавлялся материал, и возникла необходимость на одной из нод убрать эту самую левую колонку. Если просто отключаешь в блоках все составляющие левой колонки, то колонка слева пропадает, а содержание переносится в левую сторону, но ширина его остаётся прежней, то есть на всю страницу блок содержания не растягивается. А надо, чтобы растянулось. Можно ли к отдельной ноде привязать отдельную тему без колонок? Или есть ещё какое-либо решение такой проблемы? Спасите-помогите! )) Заранее благодарен )

Комментарии

Аватар пользователя sisadminich sisadminich 18 мая 2009 в 17:13

К сожалению знаний в области не хватает, чтоб вручную верстать.. И времени на изучение этого дела совсем нет. Если б мог вручную верстать - не пользовался бы программами ) Может всё же есть решение, которое обойдётся элементарной правкой кода для присвоения одной единственной ноде другой темы оформления, а не вертской? Подскажите.

Аватар пользователя sisadminich sisadminich 18 мая 2009 в 17:44

То, что в page.tpl.php находится шаблон всей страницы - это понятно, но как сделать, допустим, чтобы для node/92 была тема без левой колонки и с шириной содержимого на всю страницу, а для всех остальных страниц всё было так, как было раньше? Ведь если в page.tpl.php я уберу левую колонку, то она пропадёт и во всей теме на всех страницах сайта.

Аватар пользователя Scissors Scissors 18 мая 2009 в 18:23

в настройках блока, внизу есть поля в которых можно указать адреса страниц на которых отображать блок не нужно, там то и указываете вашу ноду node/92 . По поводу смещения, так это верстка, попробуйте сверстать страницу более правильно и резиново. Что бы ширина контента была в 100%

Аватар пользователя sisadminich sisadminich 18 мая 2009 в 18:51

Если я всё правильно понял, то вот этот код в style.css отвечает за ширину контента:

.contentLayout
{
  margin-bottom: 6px;
  width: 986px;
  position: relative;
}

Меняю 986 пикселей на 100% - никаких изменений. Ставлю на авто - тоже самое. Простите, если что неграмотно - вёрсткой впервые занимаюсь, до этого даж css файлы-то не открывал ))

Аватар пользователя gofk gofk 18 мая 2009 в 20:39

"sisadminich" wrote:
То, что в page.tpl.php находится шаблон всей страницы - это понятно, но как сделать, допустим, чтобы для node/92 была тема без левой колонки и с шириной содержимого на всю страницу, а для всех остальных страниц всё было так, как было раньше? Ведь если в page.tpl.php я уберу левую колонку, то она пропадёт и во всей теме на всех страницах сайта.

А что мешает в PHP-файл добавить условие? Если nid=92 и т.д.

Аватар пользователя Scissors Scissors 19 мая 2009 в 0:08

"gofk" wrote:
А что мешает в PHP-файл добавить условие? Если nid=92 и т.д.

зачем усложнять себе жизнь,тем более существуют встроеные средства.

"gofk" wrote:
Меняю 986 пикселей на 100% - никаких изменений. Ставлю на авто - тоже самое. Простите, если что неграмотно - вёрсткой впервые занимаюсь, до этого даж css файлы-то не открывал ))

На самом деле там не все так просто. надо смотреть верстку.
вот пример валидного 2х колоночного резинового макета:

Аватар пользователя sisadminich sisadminich 19 мая 2009 в 10:48

Нашёл решение проблемки, выставив макс и мин widht для контента, позицию ему задал absolute, и ещё задал фиксированный width для левой колонки:

/* begin LayoutCell */
.contentLayout .sidebar1
{
  position: static;
  margin: 0;
  padding: 0;
  border: 0;
  float: left;
  overflow: hidden;
  width: 25%;
}

/* end LayoutCell */

/* begin LayoutCell */
.contentLayout .content
{  
  position: absolute
  margin: 0;
  padding: 0;
  border: 0;
  float: right
  overflow: auto;
  width:auto
  min-width: 70%; max-width: 100%
}

/* end LayoutCell */

Добился резиновости!! )) Исходный код шаблона был сгенерирован программой Artisteer2, только вот не понятно, почему эту самую резиновость там не сделали изначально, а задали вместо этого фиксированные величины... Явно упущеный момент ) Ну зато чуточку разобрался в CSS. Первый опыт с вёрсткой прошёл успешно, благодарю всех за помощь и содействие! )

Аватар пользователя sisadminich sisadminich 19 мая 2009 в 11:16

Хотя если подумать - то такое решение может быть полезно для невысокого разрешения экрана, т.к. если текста на нодах всего ничего - пару-тройку строчек на 1000 пиксельной ширине - то выходит, что на высоком разрешении, допустим на 2048 пикселей ширины, будет ширина контента в 2048, и весь текст, при отсутствии br'ов, будет показан в одну строчку, что выглядит не очень симпотично )

Аватар пользователя sisadminich sisadminich 19 мая 2009 в 11:40

Оп, лоханулся ) Максимальная ширина контента задана так же вот этими строчками:

/* begin ContentLayout */
.contentLayout
{
  margin-bottom: 1px;
  width: 994px;
  position: relative;
}
/* end ContentLayout */

Так что контент при разрешении 2000 пикселей не расширится больше, чем 994 пикселя ) Проблема решена, спасибо за внимание ))

Аватар пользователя sisadminich sisadminich 19 мая 2009 в 17:24

Забавно конечно, но я вот попробовал сделать всё вышеперчисленное в другой теме, и был приятно удивлён, увидев, что ничего не получается ))) Прописываю всё точно так же в файле style.css, но блок контента почему-то ложится поверх левого сайдбара, а не встаёт рядом. Может кто покажет мне мою ошибку? А то я никак не вопру в чём проблема... (

Аватар пользователя gofk gofk 19 мая 2009 в 20:50

sisadminich wrote:
Забавно конечно, но я вот попробовал сделать всё вышеперчисленное в другой теме, и был приятно удивлён, увидев, что ничего не получается ))) Прописываю всё точно так же в файле style.css, но блок контента почему-то ложится поверх левого сайдбара, а не встаёт рядом. Может кто покажет мне мою ошибку? А то я никак не вопру в чём проблема... (

Угу, сейчас быстренько поймём, какая это "другая тема" - и сразу ответим Wink

Аватар пользователя sisadminich sisadminich 21 мая 2009 в 10:37

Всё, добился методом "научного тыка", просто удаляя по одному параметры из CSS-кода и перебирая их значения. Вот какой получился код:

/* begin LayoutCell */
.contentLayout .sidebar1
{
  position: static;
  margin: 0;
  border: 0;
  float: left;
  overflow: hidden;
  width: 24%;
}

/* end LayoutCell */

/* begin LayoutCell */
.contentLayout .content
{
  position: relative;
  margin: 0;
  border: 0;
  overflow:hidden;
  min-width: 76%;
}

/* end LayoutCell */

Аватар пользователя da4ito da4ito 28 мая 2009 в 19:30
/* begin LayoutCell */
.contentLayout .sidebar1
{
  position: static;
  margin: 0;
  border: 0;
  float: left;
  overflow: hidden;
  width: 24%;
}
 
/* end LayoutCell */
 
/* begin LayoutCell */
.contentLayout .content
{
  position: relative;
  margin: 0;
  border: 0;
  overflow:hidden;
  min-width: 76%;
}
 
/* end LayoutCell */

Тут неправильно немного - в Опере корректно отображает и всё растягивает, но в ИЕ7, стоящем у меня, на всю страницу не растягивает. Исправил немножечко:

/* begin LayoutCell */
.contentLayout .sidebar1
{
  position: static;
  margin: 0;
  border: 0;
  float: left;
  overflow: hidden;
  max-width: 24%;
}
 
/* end LayoutCell */
 
/* begin LayoutCell */
.contentLayout .content
{
  position: relative;
  margin: 0;
  border: 0;
  overflow:hidden;
  min-width: 76%;
}
 
/* end LayoutCell */