Подтвердить что ты не робот

UL + CSS для раскладки сетки

У меня есть сгенерированный сервером html, например:

<ul>
    <li><!-- few nested elements that form a block --></li>
    <li><!-- few nested elements that form anaother block --></li>
    <li><!-- etc, X times --></li>
</ul>

Все блоки имеют ширину 200 пикселей и неизвестную высоту. Я хочу, чтобы <li> располагался в виде таблицы, подобной этому:

alt text

Теперь у меня есть css:

li {
    display: block;
    width: 200px;
    float: left;
    margin: 10px;
}

Все отлично, за исключением того, что столбцы не получают равную высоту. И в примере выше блок №4 "вырвать" на # 1, и результат не в том, чего я пытаюсь достичь:

alt text

Есть ли способ кросс-браузера с чистым CSS, который позволит мне использовать макет сетки и не будет применять изменения разметки?

4b9b3361

Ответ 2

В вашем примере вы, кажется, хотите, чтобы каждая строка имела одну и ту же высоту самого большого li в этой строке. Если эта высота является переменной, то, что вы хотите, возможно только с nth-child:

li:nth-child(3n+0) { clear: left; }

Ответ 3

Вариант 1. Дайте им явные высоты

Варианты 2: используйте nth-child (который имеет ограниченную поддержку)