Мне удалось предложить решение «Таблицы HTML не требуются», основанное на методике Стю Николса из CSS Play, и мне лично это нравится, потому что оно работает не только в IE6 + и FF2 +, но и в CSS. это не требует никаких взломов. Мой аргумент о том, почему макет на основе CSS предпочтительнее таблиц HTML, см. Ниже.
Во-первых, я рекомендую, чтобы при разработке новых страниц с помощью CSS вы делали это в совместимом со стандартами режиме браузера . Чтобы узнать о режиме совместимости и стандартах, посмотрите эту статью на одном из моих любимых сайтов CSS-ресурсов. Все, что вам нужно сделать, это добавить определенный элемент DOCTYPE вверху ваших страниц. Затем CSS будет вынужден выполнять рендеринг в режиме соответствия стандартам, что приведет к уменьшению количества ошибок и особенностей браузера. В случае, если вы не можете переключиться в режим соответствия стандартам, для браузеров в режиме quirksmode доступно решение минимальной ширины, также доступное в CSS Play.
Во-вторых, вы должны добавить дополнительную обертку вокруг существующей разметки. Эта обертка используется для установки минимальной ширины для браузеров, которые понимают минимальную ширину (не IE). Затем вы можете использовать трюк * html, чтобы специально нацелиться на IE 6 и применить технику Стю Николла к внутренним оберткам. Методика подробно описана здесь, а конкретный используемый пример - «# 2 для IE в режиме соответствия стандартам»:
http://www.cssplay.co.uk/boxes/minwidth.html
Конечный результат довольно прост. Он создает 2 столбца по 50%, используя стиль 2-столбца ALA , упомянутый в исходном вопросе, с общей минимальной шириной (в данном примере 500 пикселей), где размер столбцов перестает изменяться, а правый столбец не упасть ниже левого столбца. Надеюсь, это поможет!
Редактировать: Этот же метод можно использовать для применения кросс-браузерной минимальной ширины к чему угодно. Например, столбцы не обязательно должны составлять 50% каждый, и можно использовать любое количество столбцов. http://www.glish.com/css/ является отличным ресурсом для макетов страниц на основе CSS, и в сочетании с этой техникой минимальной ширины есть много хороших макетов, которые можно создавать с минимальным допустимым CSS.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
/* For browsers that understand min-width */
.width {
width: 100%;
min-width: 500px;
}
/* IE6 Only */
* html .minwidth {
border-left: 500px solid white;
position: relative;
float: left;
}
/* IE6 Only */
* html .wrapper {
margin-left: -500px;
position: relative;
float: left;
}
.left {
float: left;
width: 50%;
}
.right {
float: left;
}
</style>
</head>
<body>
<div class="width">
<div class="minwidth">
<div class="wrapper">
<div class="left">
Left
</div>
<div class="right">
Right
</div>
</div>
</div>
</div>
</body>
</html>
Теперь, моим стимулом для создания учетной записи переполнения стека была возможность ответить на следующее предложение: «Если вы хотите два столбца, используйте таблицу, а не пытайтесь заставить Div вести себя как таблица». Поскольку я слишком новичок, чтобы либо комментировать, либо голосовать против, я дополняю это обсуждение.
Действительно
Кто-то задает вопрос о макетах на основе CSS, а вы отвечаете, что им нужно использовать таблицы HTML?
Позвольте мне начать с того, что я не считаю, что таблицы HTML совершенно не нужны. Фактически, в любое время мне нужно отобразить табличные данные, , т.е. реляционные данные , я использую таблицу HTML. Свойства отображения таблицы CSS еще не полностью поддерживаются (скоро появятся в IE8!), И использование одноуровневой таблицы HTML является эффективным решением. Посмотрите на разметку для любой из веб-страниц Google, и вы увидите, что они согласятся.
Как человек, который потратил много времени на написание CSS-макетов, совместимых с браузерами, когда мог бы сделать это за 10 минут, используя таблицу, я согласен с тем, что существует более простое решение этой проблемы. Однако то, что вы можете использовать динамит для ремонта вашей кухни, не означает, что вы должны это делать. В следующей статье подробно объясняется, почему макеты на основе CSS более желательны.
http://www.chromaticsites.com/web-design-blog/2008-04-03/13-reasons-why-css-is-superior-to-tables-in-website-design/