Можете ли вы создать стиль элемента noscript?
Вопрос
Возможно ли использовать noscript
элемент в CSS-селекторах?
noscript p {
font-weight: bold;
}
Решение
Да!Вы определенно можете это сделать.
На самом деле, многие (все?) браузеры поддерживают таргетинг на любой произвольный тег с использованием CSS."Официальные" теги в спецификации HTML определяют только то, что браузер должен с ними делать.Но CSS - это язык, который ориентирован на любой вариант XML, так что вы можете сказать foo {font-weight:bold;}
и в большинстве браузеров, <foo> hello world </foo>
выйдет жирно.
Как Дарко Зет уточняется, что IE6 / 7 не добавляет произвольные (нестандартные) элементы в DOM автоматически из источника;они должны быть добавлены программно.
Другие советы
У меня есть ошибка IE, которую нужно иметь в виду.Если, как и OP, вы просто хотите оформить текст в теге noscript, а не в самом теге noscript, пожалуйста, не обращайте на это внимания..
Допустим, вы хотите сделать фон тега noscript красным.В IE8 он будет отображаться с включенным JS.Только само поле, а не текст внутри.
Так что эта комбинация не очень хороша:
CSS - файл
noscript {
background-color: red;
}
HTML
<noscript>Turn on your damned JavaScript! What is this, 1999?</noscript>
Но это обходное решение работает нормально:
CSS - файл
noscript div {
background-color: red;
}
HTML
<noscript><div>Turn on your damned JavaScript! What is this, 1999?</div></noscript>
Как ни странно, я вижу такое поведение только в IE8, а не в IE7.И кто знает о 6..
В дополнение к Ответ Рекса М. - IE 6/7 (6 def, может быть, 7?) не будет создавать для вас произвольный тег.Но тебе повезло, как и с ВСЕ для многих проблем IE существует обходной путь.
Допустим, вы хотите создать стиль элемента под названием foo
.Чтобы заставить IE распознать его как стилизуемый элемент, вам нужно включить эту строку где-нибудь в ваш JS:
document.createElement('foo');
Вам не нужно добавлять его, просто создайте.
Это подтолкнет IE к стилизации этого элемента для вас с помощью правила CSS:
foo { font-weight:bold; }