553 Stimmen

Was ist der Zweck der HTML-Klasse "no-js"?

Mir ist aufgefallen, dass in vielen Template-Engines in der HTML5 Boilerplate in verschiedenen Frameworks und in einfachen php-Seiten gibt es die no-js Klasse, die der <HTML> Tag.

Warum wird dies getan? Gibt es eine Art Standard-Browserverhalten, das auf diese Klasse reagiert? Warum sollte sie immer enthalten sein? Wird dadurch nicht die Klasse selbst obsolet, wenn es keinen "no-js"-Fall gibt und html direkt angesprochen werden kann?

Hier ist ein Beispiel aus der HTML5 Boilerplate index.html:

<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->

Wie Sie sehen können, ist die <html> Element wird immer diese Klasse haben. Kann mir jemand erklären, warum das so oft gemacht wird?

5voto

Alireza Punkte 92209

Sehen Sie sich den Quellcode in Modernizer an, diesen Abschnitt:

// Change `no-js` to `js` (independently of the `enableClasses` option)
// Handle classPrefix on this too
if (Modernizr._config.enableJSClass) {
  var reJS = new RegExp('(^|\\s)' + classPrefix + 'no-js(\\s|$)');
  className = className.replace(reJS, '$1' + classPrefix + 'js$2');
}

Es wird also grundsätzlich nach classPrefix + gesucht. no-js Klasse und ersetzen sie durch classPrefix + js .

Und der Gebrauch davon, wird anders gestaltet, wenn JavaScript nicht im Browser läuft.

1voto

JSON C11 Punkte 9927

Die Klasse no-js wird zur Gestaltung einer Webseite verwendet, je nachdem, ob der Benutzer JS im Browser deaktiviert oder aktiviert hat.

Gemäß der Modernizr-Dokumente :

no-js

Standardmäßig überschreibt Modernizr <html class="no-js"> to <html class="js"> . Damit lassen sich bestimmte Elemente ausblenden, die nur die nur in Umgebungen sichtbar sein sollten, die JavaScript ausführen. Wenn Sie deaktivieren möchten, können Sie enableJSClass in Ihrer Konfiguration auf false Konfig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X