L'incorporation d'autres styles avec noscript
J'ai un XHTML strict de la page qui a un invisible div qui est contrôlée par Javascript. La div est transparent et visible par le script et un événement mouseover pour faire de la div opaque sur le vol stationnaire.
Quand quelqu'un l'aide d'un navigateur (ou firefox avec noscript) sans javascript la div reste simplement invisible. Le problème c'est que je ne veux pas le contenu inaccessible. J'ai aussi ne veux pas laisser la div visible alors utiliser le script pour le rendre transparent comme le div est situé au bas du document, et provoque un scintillement notable à chaque fois qu'une page se charge.
J'ai essayé d'utiliser les balises noscript pour intégrer un supplément de feuille de style qui n'est chargé que pour les gens sans le luxe de Javascript, mais il échoue le XHTML strict de validation. Est-il un autre moyen de comprendre des informations sur le style à l'intérieur d'un noscript bloc qui est du XHTML valide?
Ed:
Avec un simple test cas, je reçois une erreur de validation de: type de document ne permet pas l'élément "style" ici.
C'est avec un vide XHTML Strict document avec un élément de style à l'intérieur d'un élément noscript. Les noscript est à l'intérieur du corps.
- Toute personne confrontée au même problème doit probablement avoir un coup d'oeil à question.
Vous devez vous connecter pour publier un commentaire.
Pour éclaircir la question de la validation:
noscript
n'est autorisé que dans lebody
élément,style
admis uniquement dans lahead
. Par conséquent, ce dernier n'est pas autorisé au sein de l'ancien.Sur la question générale: vous aurez envie de faire la
div
élément visible par défaut, puis se cacher via CSS + javascript. C'est le "amélioration progressive" modèle. J'ai remarqué que vous dites que vous "ne voulez pas faire cela, parce que le scintillement", mais je ne sais pas exactement ce qui cause cela - les chances sont que vous pouvez résoudre le problème, alors peut-être vous devriez poster que comme une question.noscript
dans lehead
.noscript
danshead
.noscript dans la tête est valide HTML5. Il n'était pas valide avant. Je viens de tester, il fonctionne en courant Firefox, Safari, Chrome, Opera et IE.
Utiliser un
script
bloc dans lahead
pour ajouter unstyle
élément avecdocument.write
:Remarque à propos de ma réponse
J'ai écrit ce post après avoir réalisé que c'était datant de 2008
Depuis que j'ai eu un problème similaire, j'ai pensé continue de répondre avec une réponse actuelle.
Ma réponse réelle
Comme Boby Jack a dit,
style
balise n'est pas admis dans le corps. Je me suis fait exactement la chose que vous (Josué) à ce sujet. Mais Jack "amélioration progressive" m'a fait l'absence d'une solution abstraite, mais ensuite j'ai réalisé une solution que je n'ai pas trouvé de réponses sur ce fil.Tout dépend de votre style de structure.
Ma suggestion est de simplement utiliser quelque chose comme
modernizr
dans le début de la tête et de l'utilisation Paul Irlandais du HTML5Boilerplate recommandations.Longue histoire courte
class
attributs avecno-js
.hide-me
) avecdisplay:none
sur sa place.no-js .hide-me { display:block }
En détail
Voir Paul Irlandais du HTML5boilerplate, et de l'adapter en XHTML si vous voulez 🙂
1. Html est un des attributs de classe avec
.no-js
citant
html5boilerplate.com
2. Balise Head comprend un premier modernizr javascript comme la première
Modernizr d'exécution est de construire
html
attributs avec ce qui est pris en charge.Volonté de construire quelque chose de similaire à ceci:
Note c'est à partir de Google Chrome
modernizr
tests.La première est
js
mais si Modernizr ne pas exécuter (pas de javascript) leno-js
voudrais y rester.3. CSS a l'élément (
.hide-me
) avecdisplay:none
sur sa place... vous savez le reste 🙂
application/xhtml+xml
voir le W3C, aussi rend invalide. N'est-ce pas 🙂 Mais. Je continue de penser que disgressing que la règle pour le<html/>
tag est un prix bon marché de façons de le passé.Ce que la validation d'erreur que vous obtenez?
<noscript>
devrait être autorisé en XHTML, mais c'est au niveau du bloc, donc assurez-vous qu'il n'est pas dans un<p>
,<span>
, etc<noscript>
n'est autorisé que dans le corps,<script>
seulement dans la tête.Mise à JOUR pour 2016:
De w3school:
Ma solution pour avoir étendu les menus (listes, etc..)
J'ai mis dans l'en-tête comme ce
Dans le
x_no_script.css
- je régler les sélecteurs que je voulaisDe cette façon, j'ai élargi des menus lors de la JavaScript est désactivé ou n'existe pas.
En cas XHTML est utilisé, l'astuce consiste à utiliser deux fichiers CSS. Un mondial et un js-un peaufiner le programme mondial pour l'activé JavaScript dans les navigateurs.
style.css:
style-js.css:
test.html:
Idée principale par tutorials.de. XHTML validité de la pointe par Estelle de Weyl du Blog. createElementNS astuce par CodingForums.