Встроенный взлом CSS IE

Можно ли создать, например, взлом блочной модели при использовании встроенного CSS?

Например:

<div id = "blah" style = "padding: 5px; margin: 5px; width: 30px; /*IE5-6 Equivalent here*/">

Спасибо!

Действительно ли доля рынка IE5 стоит затраченных усилий? Я предлагаю поместить IE5 в ту же корзину, что и Netscape 4, и просто полностью скрыть от него таблицу стилей.

Kornel 19.10.2008 04:59
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
6
1
41 546
7

Ответы 7

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

Обновлено: это не работает, IE игнорирует условный комментарий. Оставляю здесь ответ, чтобы не быть ублюдком.

Следующий наиболее подходящий ответ - условные комментарии:

<div id = "blah" style = "padding: 5px; margin: 5px; width: 30px; <!--[if lte IE 6]> ... <![endif]-->">

Однако это недопустимый HTML.

Konrad Rudolph 17.10.2008 22:51

Можно ли записывать такие условные комментарии в теги?

Jeff Atwood 17.10.2008 22:58

@Konrad: Почему бы и нет? Это действительный HTML-комментарий. IE интерпретирует его (что неверно), но это все еще действительный комментарий.

eyelidlessness 17.10.2008 23:02

@Daimonan: Их можно писать везде, где можно написать комментарий.

eyelidlessness 17.10.2008 23:03

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

<!--[if lt IE 7]>
<style>
#blah {
padding: 5px;
margin: 5px;
width: 30px;
}
</style>
<![endif]-->

Я бы вышел на улицу - наложил класс на этот элемент или использовал имеющийся у вас идентификатор и обработал бы стиль извне.

Я также согласен с предыдущими ответами на условные комментарии.

Тем не менее: в качестве последнего средства абсолютный вы можете использовать следующие хаки стиля для таргетинга на <= IE6 и даже IE7. Проблема возникает, когда / если они исправят IE8, чтобы победить ваш взлом.

.foo {
padding: 5px;
^padding: 4px; /* this targets all IE, including 7. It must go first, or it overrides the following hack */
_padding: 3px; /* this targets >= IE6 */
width: 30px;
}

Удачи.

Конечно. Фактически, любой символ, НО _ (подчеркивание) может быть использован, чтобы помешать IE7.

John Dunagan 18.10.2008 04:04

Вы также можете использовать хак "префикса" во встроенных стилях:

<div style = "*background:red"></div>

Просто убедитесь, что вы поместили хаки IE в конце атрибута стиля. Однако я разделяю мнение, что по возможности следует избегать встроенных стилей. Условные комментарии и отдельный файл CSS для Internet Explorer кажутся лучшим способом решения таких проблем.

Имейте в виду, что IE 6 требует взлома блочной модели в режиме причуд, но не в стандартном режиме. IE 5 и IE 5.5 постоянно нуждаются в BMH.

Поэтому, если вы находитесь в стандартном режиме, вам нужно будет использовать что-то вроде оригинальный взлом voice-family (предназначенное для IE 5.X и нет IE 6). Если вы находитесь в режиме причуд, подойдет любой старый взлом IE <= 6.

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

Да, как и все выше, если вы можете не делать это встраиваемым образом, сделайте !! Но если вам действительно нужно встроиться, тогда фильтры парсера, вероятно, ваш лучший выбор, это определенные символы, которые вы можете использовать в свойствах, таких как хак подчеркивания в ie6

print("code sample");

 style = "position:relative;padding:5px; _position:absolute; _padding:10px;" 

ie6 по-прежнему получит подчеркнутые стили, все остальные просто проигнорируют их!

Также вместо подчеркивания используется! Important.

поиграйте и посмотрите, что произойдет, но снова, как указано выше, постарайтесь избежать, как чума :)

Лучшее решение - работать в стандартном режиме, а не в режиме Quirks .... это сразу устранит необходимость в большинстве хаков для вашей модели коробки.

Кроме того, условные комментарии с таблицей стилей, специфичной для IE, намного чище и удобнее в обслуживании. Этот метод был достаточно хорош для большинства первоклассных дизайнеров за последние несколько лет ... если на вашем сайте нет чего-то особенного, что требует, чтобы все это было встроено, я предлагаю сделать шаг назад и посмотреть на корневые проблемы, а не на то, как вы можете исправлять эти маленькие симптомы по мере их появления.альтернативный текст http://sonicloft.net/im/52

Другие вопросы по теме