Кто-нибудь пробовал когда-нибудь применять к полям 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.gif | 141.26 КБ |
Комментарии
Как переопределите - так и примениться :), а вообще не понял проблемы - вариантов много, например field.tpl.php, выставить float:left для label и т.д.
нашел как решить, может и правда легко для верстальщика но я таковым не являюсь )
добавил для переопределения каждого поля после 1-го:
clear: none;
}
...
вообще не понимаю я верстальщиков, почему большинство на эти дивы перешло, в таблицах все четко и понятно, а здесь всякие заплатки, хаки, кода css намного больше.
Потому что ты никогда не вносил исправления в табличную верстку с 10+-уровневой вложенностью таблиц, где все "четко и понятно".
Спасибо - тоже столкнулся с этим гемором.
Никогда не верстала таблицами, но видела код - это унылое депрессивное зрелище.
я вообще его не использую по возможности. проще точечно clear: both поставить.