Всем доброго времени суток. Возник вопрос: как задавать названия id для блоков?
< id="block-block-2" class="block block-block contextual-links-region" ><div>
Это очень не удобно для меня.
возможно можно просто делать блоки без этих оберток, а с дивами внутри?
Бывают ситуации, когда нужен полный блок с оберткой, а бывает когда просто пустой блок с дивом. Как это сделать в Друпал 7.36?
Комментарии
Лучшие практики говорят, что не надо использовать ID, используйте классы, а для этого есть модуль block_class
Спасибо, попробую этот модуль, но что-то мне подсказывает, что он не убирает лишние обертки типа
div class="region region-top-line"><div class="region-inner clearfix"><div id="block-block-9" class="block block-block no-title" ><div class="block-inner clearfix">
Я понимаю, что мощностей современных ЭВМ достаточно, что бы загрузить хоть миллиард этих дивов, но мне приятней работать когда один див (если разметка позволяет использоать только один), допустим
<div class="myblock"
Недавно читал статью о том, как вычистить код, который от Display Suite и Views, но там какие-то полу-решения....
Может быть как-то через хук препроцесс прицепить кастомные блоки, которые без оберток и с моим названием? Или это плохое решение?
создать block--block--ID.tpl.php.
<?php
<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php print render($title_prefix); ?>
<?php if ($block->subject): ?>
<h2<?php print $title_attributes; ?>><?php print $block->subject ?></h2>
<?php endif;?>
<?php print render($title_suffix); ?>
<div class="content"<?php print $content_attributes; ?>>
<?php print $content ?>
</div>
</div>
?>
я боюсь что айди блока может поменяться, когда я буду удалять ненужные блоки, переносить, переносность сайт на хостинг итд, и тогда стили полетят все.
не, айдишник останется
это радует)
Зачем вообще выводить айди блока, если я буду делать стили к классу блока?
можно отключить вывод айди без последствий? я обожаю чистый короткий код)
Я наверное тебя не правильно понял. id блоку присваивает сам друпал, числовой айди и в потоке браузер выводит блок с id как
block-block-3 или block-block-8, у каждого блока свой числовой идентификатор.
Есть еще такой модуль Block class, который в форме редактирования блока добавляет поле для вставки собственного класса. Прописываешь там свой класс, только без селектора и применяй к нему стили какие надо и тогда не надо будет в шаблоне добавлять дивы в ручную
block.tpl.php в папке с темой
код:
<?php
<div id="<?php print $block_html_id; ?>">
<?
php if ($block->subject): ?><h2><?php print $block->subject ?></h2>
<?php endif;?>
<div>
<?php print $content ?>
</div>
</div>
?>
воо спасибо, уже лучше! протестировал, верстка не слетела, адаптивность осталась
<div class="region-inner clearfix">
<div id="block-block-9">
<div>
<div class="top_phone">Телефон<strong>+7 (495)<span>9500-00-00</span></strong></div>
<div class="top_obr_zvon"><a href="#obr">обратный звонок</a></div>
<div class="top_zakaz"><a href="#zakaz">zakaz@mail.ru</a></div>
</div></div>
остается
<div class="region-inner clearfix">
отключить<div id="block-block-9">
может быть вообще убрать айди, а вместо этого сделать класс<div class="top_header_line">
или айди ни в коем случае убирать нельзя и потом будут проблемы?
Ну вот например у меня есть линия вверху с телефоном, заказом и емэйлом.
сейчас так:
<div class="region-inner clearfix">
<div id="block-block-9" class="block block-block no-title" >
<div class="block-inner clearfix">
<div class="block-content content">
<div class="top_phone">Телефон<strong>+7 (495)<span>8500-00-00</span></strong></div>
<div class="top_obr_zvon"><a href="#obr">обратный звонок</a></div>
<div class="top_zakaz"><a href="#zakaz">zakaz@mail.ru</a></div>
</div></div></div></div></div>
а в статичной верстке было так:
<div class="main"> <!-- линияя -->
<div class="top_line"></div></div>
<div class="wrapper">
<div class="logo"></div>
<div class="phone">Телефон<strong>+7 (495) <span>9500-00-00</span></strong></div>
<div class="top_obr_zvon"><a href="#obr">обратный звонок</a></div>
<div class="top_zakaz"><a href="#zakaz">zakaz@mail.ru</a></div></div></div>
вот я сделал регион и блок под это дело (телефон, заказ, мэил)
хочу сделать так:
<div class="region-inner clearfix"> не всегда он нужен, нужно в некоторых регионах убирать, в некоторых оставлять
<div id="block-block-9" class="block block-block no-title" > хотелось бы просто назвать block-9
и class например header_line а не block block-block no-title
впринципе если в этом модуле Block class можно стереть стандартный block block-block no-title и вписать свой то это
круто) но что-то мне подсказывает что стандартный block block-block no-title всеравно останется(
<div class="block-inner clearfix"> тоже не всегда нужен.
<div class="block-content content">не нужен, но без него контент по идее не выведется в блок?
<div class="top_phone">Телефон<strong>+7 (495)<span>8500-00-00</span></strong></div>это уже мои дивы,
без них не сделать все в одну линию наверху, картинку вектор с телефоном, мейлом итд
<div class="top_obr_zvon"><a href="#obr">обратный звонок</a></div>мои
<div class="top_zakaz"><a href="#zakaz">zakaz@mail.ru</a></div>мои
</div></div></div></div></div>