css Column / Grid-Layout: положение или число с плавающей запятой. Есть ли альтернативы этому? - PullRequest
0 голосов
/ 22 января 2012

Насколько я знаю и понимаю, есть две возможности для создания colum-layout или grid-layout или более сложного позиционирования элементов с помощью css:

1) позицию: абсолютная / относительная;

2) Поплавок: влево / вправо; ясно

Есть ли альтернативы этому, и что лучше или менее поддерживается или не имеет значения, какую технику вы используете? Какова лучшая практика с лучшей поддержкой браузера?

Сказанные или известные альтернативы:

3) дисплей: встроенный блок;

4) дисплей: таблица-ячейка; (разве это не то же самое, что html-таблицы?)

5) html-таблица (но это не css или семантика)

6) столбцы css3 (меньше поддержки или нет?)

Ответы [ 2 ]

2 голосов
/ 22 января 2012

1) положение: абсолютное / относительное;

Может быть частью макета, не обязательно.

2) плавать: влево / вправо; ясно

Да, float обычно используется для макетов.

3) дисплей: встроенный блок;

Это редко используется, если вообще используется для макетов страниц, и его поддержка содержит ошибки (он также чувствителен к пробелам).

4) дисплей: таблица-ячейка; (разве это не то же самое, что html-таблицы?)

Нет, это не то же самое, что использование таблиц HTML. Таблицы находятся в вашей разметке (содержании), display:table-* является частью вашей CSS (презентации). Это хороший способ решения макета, но, опять же, поддержка не полностью доступна для старых браузеров.

5) html-таблица (но это не css или семантика)

Вы правы, не используйте это, таблицы предназначены для разметки табличных данных, а не для разметки.

6) столбцы css3 (меньше поддержки или нет?)

Еще раз, поддержки на самом деле нет, и я считаю, что это предназначено для текста больше, чем для макета (даже если это можно использовать для обоих).

Какова лучшая практика с лучшей поддержкой браузера?

Если вы ищете общий ответ, вы хотите создать его самостоятельно, и вам нужна поддержка браузера, просто используйте float s с относительным / абсолютным позиционированием, если это необходимо. Решите, какие именно браузеры вы хотите поддерживать, и, как всегда, протестируйте ваш макет в разных браузерах, чтобы увидеть, что работает, а что нет. Там нет волшебной пули, дьявол в деталях.

1 голос
/ 22 января 2012

Вы также можете использовать последовательность встроенных блоков для столбцов. Или, может быть, display: table-cell. Есть, вероятно, десятки способов сделать это.

...