Посмотрите мой пример про списки. Это та самая ущербность. Мне несколько багов из моей практики так и не удалось воспроизвести, но я вас уверяю, что они тоже напрямую зависели от наличия hasLayout (я это проверял).
Очевидно, нужно взять, не просто тестовый документ с парой параграфов, дивов и списков. Для теста предлагаю взять сверстанный, нормально отображающийся во всех браузерах, макет и первой строчкой написать это правило. Уверен на 99%, что в IE всплывет несколько багов, возможно даже, что все развалиться.
Я точно могу сказать, что многие баги появляются именно из-за наличия hasLayout. Некоторые, конечно, появляются только в совокупности с другими свойствами, такие отловить довольно сложно.
Я ставлю hasLayout сразу для всех div, ul, ol, li, и других блочных. И всё нормально.
Это нормально? (обратите внимание на маркеры и их расположение). DIV ведет себя довольно предсказуемо.
Это не очередной перевод этой статьи, дочитайте до конца. В моей статье упор делается на практической стороне вопроса. И 90% моей статьи это авторский контент.
Да, есть такое. Это особенность тем оформления windows xp. Заключается в том, что бордеры у input сбрасываются только путем указания border:0 (обнуления ширины бордера). В случаях сбрасывания через border:none; рамка у элементов форм почему-то не сбрасывается. При этом, если переключить тему оформления на классическую, все работает нормально. Как в Висте не знаю, я вовремя свичнулся на macos.
Ничего хорошего из этого не выйдет, кроме явных проблем с производительностью, это может привести к нежелательному поведению некоторых элементов, о котором я, кстати, написал в статье.
Просто автор не написал, про то как центрировать блок, если IE находится в Quirks Mode. В Quirks Mode в IE text-align:center; действует не только на строчные элементы, но и на блочные. Поэтому решение будет таковым:
body {
text-align:center;
}
.wrap {
text-align:left;
}
Но, конечно, лучше всего перевести IE в режим соответствия стандартам (путем указания правильного доктайпа), а решение с text-align оставить для старых IE (5.5, 5) или убрать в отдельный файл стилей и подключать его только для IE < 6 с помощью CC.
с -moz-inline-xxx ситуация такая, что нужно просто перебирать возможные значения (-moz-inline-grid, -moz-inline-stack, -moz-inline-box), они ведут себя по разному. Но, по моим наблюдениям, лучше всего себя ведет -moz-inline-stack. Также не мешает заключить то, что в элементе с -moz-inline-xxx в какой-нибудь блочный элемент, чаще всего это исправляет многие баги.
Нет, вы конечно правы, я согласен, что подгонка с помощью отрицательных маржинов тоже не выход, но что делать. А вы можете предложить какой-нибудь другой метод решения этой проблемы, кроме убирания пробельных символов из исходного кода?
Я живу в реальном мире, где до сих пор самый распространенный браузер IE, самое распространенное разрешение экрана — 1024x768, и где до сих пор существуют тысячи пользователей с выключенным JS. И мне важно, чтобы сайт нормально функционировал как с JS так и без него. А фиксить визуальное отображение элементов при помощи JS, когда есть альтернативный способ без JS, вообще считаю глупостью. Особенно таким способом, когда браузер определяется путем парсинга свойства userAgent.
Это нормально? (обратите внимание на маркеры и их расположение). DIV ведет себя довольно предсказуемо.
=) А я бы так:
border:solid #69b401;
border-width:0 1px;
Но, конечно, лучше всего перевести IE в режим соответствия стандартам (путем указания правильного доктайпа), а решение с text-align оставить для старых IE (5.5, 5) или убрать в отдельный файл стилей и подключать его только для IE < 6 с помощью CC.