Есть ли нетривиальная цель для определения стиля CSS для HTML [xmlns]? - PullRequest
2 голосов
/ 05 января 2011

Обратите внимание, что предлагаемое решение для исправления ошибок здесь .

Почему для HTML [xmlns] определен отдельный стиль?

Это CSS-хак, предназначенный для конкретного браузера?

ОБНОВЛЕНИЕ: Вот код, о котором идет речь, так как, по моему мнению, некоторые ответы явно не соответствуют действительности.

.clearfix {
    display: inline-block;
}

html[xmlns] .clearfix {
    display: block;
}

* html .clearfix {
    height: 1%;
}

ОБНОВЛЕНИЕ 2: уже более или менее установлено, что это взлом. Но я хочу внешнюю ссылку, которая объясняет это подробно. например, к какому браузеру он относится и какую именно проблему он намерен исправить?

Ответы [ 4 ]

6 голосов
/ 05 января 2011

Я связался с Стю Николсом , чтобы попытаться найти окончательный источник этого хака.Он ответил и дал мне следующую информацию:

element [attribute] - это w3.org CSS2-селектор атрибутов , который обычно применяется к элементам тела и атрибутам, но в данном случае этоиспользует тег и его атрибут 'xmlns'.Итак, вы знаете, что это изолировать браузеры, которые распознают или игнорируют этот стиль.Ответ заключается в том, что ВСЕ браузеры распознают этот стиль, КРОМЕ IE5.x и IE6.Таким образом, все браузеры будут стилизовать .clearfix как встроенный блок, тогда все, кроме IE5.x и IE6, будут повторно стилизовать его как блок.
Затем с помощью префикса * html нацелиться только на IE5.x и IE6 толькоДля элемента .clearfix установлено значение 1%.

4 голосов
/ 05 января 2011

Хак для установки display: block вместо display: inline-block для браузеров, которые не поддерживают селекторы атрибутов.

Применяются обычные комментарии по поводу хаков CSS - условные комментарии обычно лучше, ивы используете хак, вы должны добавить комментарий, объясняющий его.

0 голосов
/ 05 января 2011

Вероятно, это веб-сайт, который содержит страницы в формате HTML или XHTML.Страницы XHTML будут иметь пространство имен (xmlns), поэтому этот стиль будет специально нацелен на эти страницы.Я не уверен, что атрибут xmlns загружается вообще в браузерах, которые не поддерживают XHTML.Если этот атрибут игнорируется в этих браузерах, это также может быть уловкой, чтобы применить другой стиль в этих браузерах.

В любом случае, я бы назвал это уловкой, а не взломом.

0 голосов
/ 05 января 2011

Он нацелен на тег html с атрибутом xmlns.Возможно, разработчик имеет несколько страниц на своем сайте, и не все из них содержат атрибут xmlns по той или иной причине.В этом коде нет ничего странного, но причину такого разделения действительно может дать только разработчик, который это сделал.На мой взгляд, эта спецификация будет влиять только на страницы сайта, которые включают этот атрибут в тег html.

...