Определить css, если javascript не включен

Я хочу определить .exampleclass img {height:250px}, если javascript не включен. Их все равно отменить в javascript/jquery?

6 ответов

Возможно, вы можете использовать тег HTML noscript.

<noscript>
 <style type="text/css">
 .exampleclass img {height:250px}
 </style>
</noscript>

EDIT. Я собираюсь на самом деле ответить на вопрос Стивена как лучшего. Хотя вышеупомянутое может работать, оно может быть недействительным/следовать лучшим методам.

Стивен ответил:

поместите класс "no-js" в свой элемент body, а затем удалите его с помощью JS при загрузке и используйте .no-js в селекторе для вашего CSS

Класс также может быть помещен в ваш элемент html, а затем весь стиль, который должен появиться, когда JavaScript недоступен, может быть префикс с html.no-js до того, каким будет селектор в противном случае. Например, это HTML5 Boiler Plate.


поместите класс "no-js" в свой элемент body, а затем удалите его с помощью JS при загрузке и используйте .no-js в селекторе для вашего CSS


Try

<noscript>
 <style type="text/css">
 .exampleclass img {height:250px}
 </style>
</noscript>

Noscript


Лучше не связываться с CSS через JS таким образом. Попробуйте следующее:

<noscript>
 <link href="no-js.css" type="text/css" rel="stylesheet" />
</noscript>


Я использую что-то вроде этого...

JavaScript

document.body.className += ' javascript';

JQuery

$('body').addClass('javascript');

CSS

.exampleclass img {height: 250px}
.javascript .exampleclass img {height: 500px}


Самый элегантный способ состоит в том, чтобы в вашем CSS что-то вроде:

.exampleclass img {height:250px}
.js .exampleclass img {height:auto;}

и в вашем JS:

var dd = document.documentElement;
dd.className += ((dd.className == "") ? "js" : " js");

так что второе правило CSS будет переопределять первое в случае, если JS включен

licensed under cc by-sa 3.0 with attribution.