Шаблон своими руками. Часть 6...

+50
1.69K
Продолжаем двигаться сверху вниз и следующей на очереди у нас стоит огромная, напичканная всем, чем только можно секция, под названием mainBody. Однако, несмотря на кажущуюся сложность, особых пояснений тут заслуживает только позиция title, на место которой согласно дизайну должны попадать заголовки компонентов. Во-первых, нужно определиться, что же из себя должна представлять и где должна быть расположена эта позиция в html коде, а во-вторых, как нам поступить с заголовками. Задача в общем то не совсем обычная и как мне кажется, решается она только одним способом – с помощью абсолютного позиционирования.

Для начала давайте вспомним, что отсчет координат абсолютно позиционированного объекта ведется от края ближайшего родительского элемента с position отличным от static, следовательно прежде всего нам нужно найти подходящую точку отсчета. Вооружившись ручкой и бумажкой давайте думать.

Непосредственно <section id="mainBody"> не подходит, так как ширина этого контейнера не задана и напрямую зависит от размера окна браузера. А значит мы никогда не знаем наверняка, на каком расстоянии от левого края должен находиться объект, чтобы попасть в нужное нам место.

Вложить в id="mainBody общий wrapper мы тоже не можем, поскольку согласно дизайну, так же как и в случае с шапкой, нам мешает растянутая на всю доступную ширину и имеющая заданную высоту панель. Соответственно под нее придется делать свой контейнер, в который нужные нам заголовки ни при каких обстоятельствах естественно не попадают. Значит этот вариант то же не подходит.

Но зато теперь мы пришли к выводу, что в секции mainBody должны лежать два дива с классом wrapper, один из которых будет для серой панели, а второй для всего остального. И похоже, что вот этот самый второй див это как раз то что мы искали. Присвоив ему position:relative мы получаем прекрасную опорную точку для решения нашей задачи.

Осталось разобраться непосредственно с позицией title. В принципе месторасположение этой позиции не имеет совершенно никакого значения, с помощью css мы могли бы загнать ее в любое место. Но зачем делать лишнюю работу и прописывать для нее какие-то отдельные правила, если можно сразу прибить двух зайцев, присвоив несущему контейнеру этой позиции такой же класс, как и у заголовков. Ведь заголовки то нам все равно придется позиционировать. Единственное условие при таком раскладе — позиция title должна находиться не на своем обычном месте, а внутри второго враппера, который является точкой отсчета для позиционирования.

Что же касается названия класса, то его можно легко посмотреть с помощью того же Firebug на примере шаблона по умолчанию, но поскольку мы переключиться на этот шаблон возможности уже не имеем (позиции не те), то можно просто зайти в папку, где лежат шаблоны вывода компонентов и открыв любой из них, посмотреть как называется этот класс прямо в коде. Впрочем ко всем этим .tpl мы еще вернемся, так что если не понимаете о чем я говорю, то не заморачивайтесь, нужный нам класс называется con_heading.

Ну и поскольку совсем не уверен, что одним из предков у меня был А.С. Пушкин, то попытаюсь все вышеописанное показать еще и в виде рисунка:

Иллюстрация

Надеюсь все это более или менее понятно, поэтому смотрим на схему, открываем template.php и внутри <section id="mainBody"> начинаем формировать код всего этого ужаса hoho

Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст


Вот собственно и все. Получилось очень даже компактно и если подумать, то совсем не сложно. Более того, если посмотреть на получившуюся структуру глазами Firebug, то легко заметить, что все позиции сгруппированы по блокам с однотипными классами. Соответственно формирование основной структуры сводится к написанию всего лишь нескольких строк css.

Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст


Вот как-то так. Удачных вам экспериментов smileВремени сейчас не особенно хватает, но продолжение следует…
+5
Роман Роман 11 лет назад #
Отлично!!!
+2
Олег Олег 11 лет назад #
Здорово, ждем продолжения+
0
Эдька Эдька 11 лет назад #
а сколько частей будет?
0
sotastroy sotastroy 11 лет назад #
Прочел, авторизовался, плюсанул. Большое спасибо, продолжайте. Один вопрос, будете рассматривать микроразметку?
+2
Pasha Pasha 11 лет назад #
Однозначного ответа пока дать не могу, но скорее всего нет так как микроразметка к шаблону как таковому вообще то имеет весьма посредственное отношение. Как по мне, так это все таки ближе к контенту .....
0
sotastroy sotastroy 11 лет назад #
К шаблону тоже относится. Я просто надеялся что вы покажите как сделать правильную разметку для статей, блогов, УК и тд.
0
NIKIRO NIKIRO 11 лет назад #
красава , даеш далее.

Еще от автора

Случайный аватар при регистации
Навеяно темой про аватары😊Плагин предназначен для версии 1.10.
Виджет "Хронограф"
Легкое приложение позволяющее создавать и выводить календарь памятных дат или любых иных событий. ЧАВО: 1.
Поле "Прикрепленный опрос"
Позволяет прикреплять к любому типу контента опрос или голосование, называйте это как хотите.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.