Sie können mit einigen CSS ein Standard <hr>
Element verwenden Sie es von noscript Benutzer zu verbergen.
Werfen Sie einen Blick auf: http://arsdnet.net/testo.html mit und ohne Javascript. Hier ist der Code:
<!DOCTYPE html>
<html>
<head>
<title>Noscript example</title>
<style>
/* this css is used by people with and without javascript */
/* a <link> tag would work as well, of course */
</style>
<noscript>
<style>
/* this is only visible by people without JS enabled */
hr {
display: none;
}
</style>
</noscript>
<script>
/* And this script only runs with JS (obviously) so by adding
a class name to the root element (<html>), we can also detect
it in CSS....
*/
document.documentElement.className += " with-js";
</script>
<style>
/* ...meaning we can target it with CSS like this too: */
html.with-js hr {
color: red;
}
</style>
</head>
<body>
Hi, before hr
<hr />
After hr
</body>
</html>
Der <noscript>
Tag gilt HTML von waaaaay zurück und funktioniert überall. Alles, was darin ist, ist nur für Leute ohne Skriptunterstützung sichtbar und es kann jeden Inhalt enthalten: Fallback-HTML, Link-Tags, Style-Tags, alles.
Indem ich ein style-Tag einfüge, kann ich CSS verwenden, um Elemente auszublenden, die nicht-Skript-Benutzer sehen sollen.
Also dann schreibe ich einfach normales HTML darunter, das normalerweise für alle Benutzer sichtbar sein wird - nichts besonderes dort. Dann, unter Verwendung der <noscript><style>
, ändere ich es für Leute ohne Skript als Sonderfall.
Manchmal übrigens, möchten Sie nur Dinge zu Skript-Benutzer zeigen, anstatt nur die Dinge von Nicht-Benutzer zu verstecken. Der einfachste Weg, dies zu tun, ist eine Klasse auf Ihrem HTML-Element mit Javascript zu kleben, dann zielen Sie diese Klassennamen Nachkommen mit CSS. Die nächsten Zeilen im Beispiel zeigen das. Auch hier schreiben Sie normales HTML und modifizieren es danach, aber diesmal mit einer Kombination aus <script>
zum Hinzufügen einer Klasse und <style>
, um es zu targetieren.
So auf dieser Seite mit JS suchen, werden Sie einen roten hr sehen. Ohne JS wird die hr nicht angezeigt.
Haben Sie darüber nachgedacht ein ''
mit einer CSS 'Display mit: none;' in einem ''
@ AdamD.Ruppe: Entschuldigung, das ist mir eigentlich nicht bewusst. Könnten Sie das als Antwort hinzufügen? – Sophia111
Ich antwortete mit ein paar Techniken in einer Probe. Generell versuche ich immer einfacher, einfacher HTML zu schreiben, die für funktioniert, was ich will, dann passen Sie es später mit Javascript, CSS oder NoScript Elemente, die die Sonderfälle abzudecken. Auf diese Weise tendieren sie dazu, lesbaren Quellcode und gute Kompatibilität zu liefern - grundlegendes HTML funktioniert für fast jeden! –