Это сложно и сложно объяснить, поэтому я создал jsfiddle, чтобы визуализировать свою проблему.
У меня есть сетка элементов, где каждый четвертый элемент очищается слева clear:left
.
У меня есть переключатель (в моем реальном случае фильтр), который скрывает некоторые из этих плавающих элементов, и я хочу переместить остальные вверх и по-прежнему поддерживать сетку 4 на 4.
<div class="item"> 1 </div>
<div class="item"> 2 </div>
…
.item:nth-of-type(4n+1) { clear: left; }
См. Этот пример: http://jsfiddle.net/K4rXM/
При нажатии кнопки «Сделать!» ссылка правило nth-of-type
как бы игнорируется. Внезапно все элементы всплывают влево, и после 4-го элемента нет четкости.
На самом деле это лишь небольшое описание моей проблемы. На самом деле с отзывчивым макетом, как у меня, все немного сложнее.
Есть какие-нибудь идеи и советы для меня? Заранее спасибо, Мэтт
1 ответ
$('#test').click(function(e) {
e.preventDefault();
$('.item').hide();
$('.call').show();
$('.item:visible').each(function (i) {
if (i % 4 == 0) $(this).addClass('clearLeft');
});
});
.clearLeft{clear:left;}
Как и в моем комментарии, он все еще считает скрытые div, вы должны проверить, какие из них видны, а затем применить класс. http://jsfiddle.net/calder12/K4rXM/4/
( i % 4 == 0 )
применяет .clearLeft
к каждому 4-му элементу. Однако, как вы можете видеть в моем «живом» примере, при нажатии на слово «Vorträge» элементы даже не всплывают, как положено. У меня есть "перерыв" после 2-го пункта, как я могу его переместить?
Похожие вопросы
Новые вопросы
css
CSS (каскадные таблицы стилей) - это язык таблиц стилей представления, используемый для описания внешнего вида и форматирования документов HTML (язык разметки гипертекста), XML (расширяемый язык разметки) и элементов SVG, включая (но не ограничиваясь) цвета, макет, шрифты, и анимации. Также описывается, как элементы должны отображаться на экране, на бумаге, в речи или на других носителях.
.hide
и использовать:not(.hide)
?