Clearfix все портит

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

Аватар пользователя qwert123 qwert123 20 июля 2011 в 7:50

Кто-нибудь пробовал когда-нибудь применять к полям field в друпал "float: right;" или "float: left;"?

Дело в том что к каждому полю field в класс добавляется параметр Clearfix и из-за него по простому невозможно нормально решить задачу, а именно выставить нормально поля вряд. Я весь день промучался и не мог понять из-за чего не получается. А не получается вот что: имеем 4 поля field (4 дива), первому диву назначаем в css параметр float: right; и он перемещается вправо, остальные не трогаем, они по умолчанию должны идти по левому краю и обтекать правый, но так происходит только с первым после этого идущим дивом (со вторым по счету), а третий и четвертый (и все остальные если есть) будут идти только после первого дива по горизонтали (если первый див который справа имеет высоту больше второго). Я привел на рисунке пример, второй див как бы принимает высоту первого и не пускает все последующие ближе к себе. Проблему можно решить если задать высоту второму диву, но высота заранее неизвестна, т.к. текст в поле может быть любой длинны.

Все это происходит из-за Clearfix который добавляется в класс к каждому field. А именно, у Clearfix указано display: block; и clear: both;, я добавил еще border: 3px solid #000; чтобы на рисунке его было видно. Clearfix здесь применен только ко второму диву чтобы было наглядней и видно из-за какого поля проблемы. Идет жирный черный блок, это и есть он и он не пускает все последующие выше.

Для кого то это может не откровение, но я много времени убил чтоб найти причину, почему у меня не получается выставить нормально вряд поля.

Так вот, решение проблемы меня интересует. Переопределить Clearfix в css, но тогда новое правило применится ко всей ноде что не есть хорошо. Второй вариант это создавать в своей теме файлы темизации для каждого поля и переопределять там class="свой класс" без всякого clearfix. И так придется делать с каждым полем, а если их много? Какой выход еще, может кто сталкивался?

ВложениеРазмер
Иконка изображения bezymyannyy45.gif141.26 КБ

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 20 июля 2011 в 11:06

"qwert123" wrote:
Переопределить Clearfix в css, но тогда новое правило применится ко всей ноде

Как переопределите - так и примениться :), а вообще не понял проблемы - вариантов много, например field.tpl.php, выставить float:left для label и т.д.

Аватар пользователя qwert123 qwert123 20 июля 2011 в 12:11

нашел как решить, может и правда легко для верстальщика но я таковым не являюсь )

добавил для переопределения каждого поля после 1-го:

.field2:after {
  clear: none;
}
...

вообще не понимаю я верстальщиков, почему большинство на эти дивы перешло, в таблицах все четко и понятно, а здесь всякие заплатки, хаки, кода css намного больше.

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 20 июля 2011 в 12:24

"qwert123" wrote:
вообще не понимаю я верстальщиков, почему большинство на эти дивы перешло, в таблицах все четко и понятно

Потому что ты никогда не вносил исправления в табличную верстку с 10+-уровневой вложенностью таблиц, где все "четко и понятно".

Аватар пользователя DDDDD099 DDDDD099 10 сентября 2011 в 11:27

"qwert123" wrote:
добавил для переопределения каждого поля после 1-го:

Спасибо - тоже столкнулся с этим гемором.

Аватар пользователя drup-drop drup-drop 10 сентября 2011 в 13:43

"qwert123" wrote:
вообще не понимаю я верстальщиков, почему большинство на эти дивы перешло, в таблицах все четко и понятно, а здесь всякие заплатки, хаки, кода css намного больше.

Никогда не верстала таблицами, но видела код - это унылое депрессивное зрелище.