Je suis sûr que cela doit avoir été mentionné / demandé auparavant mais que je cherche un âge sans chance, ma terminologie doit être erronée!
Je me souviens vaguement d'un tweet que j'ai vu il y a quelque temps qui suggérait qu'il y avait une règle css disponible qui supprimerait tous les styles précédemment définis dans la feuille de style pour un élément particulier.
Un bon exemple d'utilisation pourrait être dans un site RWD mobile-first où une grande partie du style utilisé pour un élément particulier dans les vues de petit écran doit être réinitialisé ou supprimé pour le même élément dans la vue de bureau.
Une règle CSS qui pourrait réaliser quelque chose comme:
.element {
all: none;
}
Exemple d'utilisation:
/* mobile first */
.element {
margin: 0 10;
transform: translate3d(0, 0, 0);
z-index: 50;
display: block;
etc..
etc..
}
@media only screen and (min-width: 980px) {
.element {
all: none;
}
}
Ainsi, nous pourrions rapidement supprimer ou réinitialiser le style sans avoir à déclarer chaque propriété.
Logique?
all
qui est proposée pour réinitialiser toutes les propriétés CSS d'un élément donné à certaines valeurs à l'échelle CSS - la valeur que vous souhaitez utiliser seraitunset
, ce qui réinitialise une propriété à sa valeur héritée si elle hérite par défaut, ou sinon, sa valeur initiale. Aucun mot sur l'implémentation, mais c'est bien de savoir que quelqu'un y a pensé.all: revert
ça ira. Voir ma réponse. @CBroe Oui, une telle chose existe maintenant.Réponses:
Le mot clé CSS3
initial
définit la propriété CSS3 à la valeur initiale telle que définie dans la spécification . Leinitial
mot-clé prend en charge un large navigateur, à l' exception des familles IE et Opera Mini.Étant donné que le manque de prise en charge d'IE peut provoquer un problème, voici quelques façons de réinitialiser certaines propriétés CSS à leurs valeurs initiales:
Comme mentionné dans un commentaire de @ user566245:
[POST EDIT FEB 4, '17] A voté pour devenir une norme moderne, l'utilisateur Joost
EXEMPLE DE W3
JAVASCRIPT?
Personne n'a pensé à autre chose que css pour réinitialiser css? Oui?
Il y a ce snip pleinement pertinent: https://stackoverflow.com/a/14791113/845310
répondu 9 févr. 13 à 20:15 par VisioN
Avec tout cela dit; je ne pense pas qu'une réinitialisation css soit quelque chose de réalisable à moins que nous ne nous retrouvions avec un seul navigateur Web .. si la «valeur par défaut» est définie par le navigateur à la fin.
À titre de comparaison, voici les valeurs Firefox 40,0 liste pour une
<blockquote style="all: unset;font-style: oblique">
oùfont-style: oblique
déclenche l' opération DOM.la source
Pour les futurs lecteurs. Je pense que c'est ce que l'on voulait dire mais n'est pas vraiment largement pris en charge actuellement (voir ci-dessous):
la source
all
.all
comme étant à l'étude . Une future version d'Edge pourrait bien le prendre en charge.#someselector { ... * { all: unset; } ... }
est dans Sass. Vous n'avez pas mentionné Sass ici - est-ce quelque chose de nouveau CSS3? La recherche de "CSS imbriqués" me donne juste des tutoriels d'entrée de gamme et des informations Sass. L'ajout de la... * { ... } ...
partie imbriquée à mon CSS (en HTML5) brise mon document (mes éléments enfants prennent individuellement le style que je voulais simplement appliquer au parent).Une toute nouvelle solution a été trouvée à ce problème.
Utilisez
all: revert
ouall: unset
.De MDN:
Donc, si l'élément a un nom de classe comme
remove-all-styles
:Par exemple:
HTML:
Avec CSS:
Réinitialisera tous les styles appliqués par
other-class
,another-class
et tous les autres styles et appliqués à hérité quediv
.Ou dans votre cas:
Ça ira.
Cliquez ici pour connaître la différence entre les styles d'auteur, d'utilisateur et d'agent utilisateur.
Par exemple: si nous voulons isoler les widgets / composants intégrés des styles de la page qui les contient , nous pourrions écrire:
Ce qui rétablit tout
author styles
(c.-à-d. Le CSS du développeur) dansuser styles
(les styles définis par un utilisateur de notre site Web - scénario moins probable) ou lesuser-agent
styles lui-même si aucun style d'utilisateur n'est défini.Plus de détails ici: https://developer.mozilla.org/en-US/docs/Web/CSS/revert
Et le seul problème est le support : seuls Safari 9.1 et iOS Safari 9.3 prennent en charge la
revert
valeur au moment de la rédaction.Je dirai donc utiliser ce style et revenir à toutes les autres réponses.
la source
all: initial
et aall: unset
fonctionné pour moi sur MS Edge 16).Permettez-moi de répondre à cette question de manière approfondie, car cela a été une source de douleur pour moi pendant plusieurs années et très peu de gens comprennent vraiment le problème et pourquoi il est important qu'il soit résolu. Si j'étais responsable de la spécification CSS, je serais franchement gêné de ne pas l'avoir abordé au cours de la dernière décennie.
Le problème
Vous devez insérer un balisage dans un document HTML et il doit avoir une apparence spécifique. En outre, vous n'êtes pas propriétaire de ce document, vous ne pouvez donc pas modifier les règles de style existantes. Vous n'avez aucune idée de ce que pourraient être les feuilles de style ou de ce qu'elles pourraient changer.
Dans ce cas, vous fournissez un composant affichable pour les sites Web tiers inconnus à utiliser. Voici des exemples:
Correction la plus simple
Mettez tout dans un iframe. Cela a son propre ensemble de limitations:
Si votre contenu peut tenir dans une boîte, vous pouvez contourner le problème n ° 1 en demandant à votre contenu d'écrire un iframe et de définir explicitement le contenu, contournant ainsi le problème, car l'iframe et le document partageront le même domaine.
Solution CSS
J'ai cherché de loin la solution à cela, mais il n'y en a malheureusement pas. Le mieux que vous puissiez faire est de remplacer explicitement toutes les propriétés possibles qui peuvent être remplacées et de les remplacer par ce que vous pensez que leur valeur par défaut devrait être.
Même lorsque vous remplacez, il n'y a aucun moyen de garantir qu'une règle CSS plus ciblée ne remplacera pas la vôtre . Le mieux que vous puissiez faire ici est de cibler vos règles de remplacement aussi précisément que possible et d'espérer que le document parent ne le réussit pas accidentellement: utilisez un ID obscur ou aléatoire sur l'élément parent de votre contenu, et utilisez! Important sur toutes les définitions de valeur de propriété .
la source
p { color: blue}
ne sera pas réinitialisé)une autre façon:
1) inclure le code CSS (fichier) de la réinitialisation de Yahoo CSS , puis tout mettre à l'intérieur de cette DIV:
2) ou utiliser
la source
Je ne recommande pas d'utiliser la réponse qui a été marquée comme correcte ici. C'est un énorme blob de CSS qui essaie de tout couvrir.
Je vous suggère d'évaluer comment supprimer le style d'un élément au cas par cas.
Disons qu'à des fins de référencement, vous devez inclure un H1 sur une page qui n'a pas de véritable titre dans la conception. Vous voudrez peut-être faire du lien de navigation de cette page un H1 mais bien sûr vous ne voulez pas que ce lien de navigation s'affiche comme un H1 géant sur la page.
Ce que vous devez faire est d'envelopper cet élément dans une balise h1 et de l'inspecter. Voyez quels styles CSS sont appliqués spécifiquement à l'élément h1.
Disons que je vois les styles suivants appliqués à l'élément.
Maintenant, vous devez identifier le style exact qui est appliqué au H1 et les définir dans une classe CSS. Cela ressemblerait à quelque chose comme ceci:
Ceci est beaucoup plus propre et ne se contente pas de vider un blob aléatoire de code dans votre CSS que vous ne savez pas ce qu'il fait réellement.
Vous pouvez maintenant ajouter cette classe à votre h1
la source
S'il vous arrive d'utiliser sass dans un système de construction, une façon de faire cela qui fonctionnera dans tous les principaux navigateurs est d'encapsuler toutes vos importations de style avec un sélecteur a: not () comme ça ...
Ensuite, vous pouvez utiliser la classe disable sur un conteneur et le sous-contenu n'aura aucun de vos styles.
Bien sûr, tous vos styles seront désormais ajoutés au sélecteur: not (), c'est donc un peu compliqué, mais cela fonctionne bien.
la source
Vous avez mentionné les sites axés sur les mobiles ... Pour un design réactif, il est certainement possible de remplacer les styles de petit écran par des styles de grand écran. Mais vous n'en aurez peut-être pas besoin.
Essaye ça:
Ces requêtes multimédias ne se chevauchent pas, donc leurs règles ne se remplacent pas. Cela facilite la maintenance de chaque ensemble de styles séparément.
la source
MEILLEURE SOLUTION
Téléchargez la feuille de style "copier / coller" pour réinitialiser les propriétés css par défaut (style UA):
https://github.com/monmomo04/resetCss.git
Merci @ Milche Patern!
Lien utile:Je cherchais vraiment la valeur de réinitialisation / par défaut des propriétés de style. Mon premier essai a été de copier la valeur calculée à partir de l'outil de développement du navigateur de l'élément racine (html). Mais comme il l'a calculé, il aurait semblé / fonctionné différemment sur chaque système.
Pour ceux qui rencontrent un crash de navigateur en essayant d'utiliser l'astérisque * pour réinitialiser le style des éléments enfants, et comme je savais que cela ne fonctionnait pas pour vous, j'ai remplacé l'astérisque "*" par tous les noms de balises HTML à la place . Le navigateur n'a pas planté; Je suis sur Chrome Version 46.0.2490.71 m.
Enfin, il est bon de mentionner que ces propriétés réinitialiseront le style au style par défaut de l'élément racine le plus élevé, mais pas à la valeur initiale de chaque élément HTML. Donc, pour corriger cela, j'ai pris les styles "user-agent" du navigateur basé sur webkit et l'ai implémenté dans la classe "reset-this".
Téléchargez la feuille de style "copier / coller" pour réinitialiser les propriétés css par défaut (style UA):
https://github.com/monmomo04/resetCss.git
Style d'agent utilisateur:
CSS par défaut des navigateurs pour les éléments HTML
http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css
Spécificité CSS (attention à la spécificité):
https://css-tricks.com/specifics-on-css-specificity/
https://github.com/monmomo04/resetCss.git
la source
Dans mon scénario spécifique, je voulais ignorer l'application de styles communs à une partie spécifique de la page, mieux illustrée comme ceci:
Après avoir joué avec la réinitialisation CSS qui n'a pas apporté beaucoup de succès (principalement en raison de la priorité des règles et de la hiérarchie complexe des feuilles de style), jQuery omniprésent a été sauvé, ce qui a fait le travail très rapidement et raisonnablement sale:
(Maintenant, dites à quel point c'est mal d'utiliser JS pour gérer les CSS :-))
la source
Pour ceux d'entre vous qui essaient de comprendre comment supprimer réellement le style de l'élément uniquement, sans supprimer le CSS des fichiers, cette solution fonctionne avec jquery:
la source
si vous définissez votre CSS dans les classes, vous pouvez facilement les supprimer à l'aide de la méthode jQuery removeClass (). Le code ci-dessous supprime la classe .element:
Si aucun paramètre n'est spécifié, cette méthode supprimera TOUS les noms de classe des éléments sélectionnés.
la source
Non, il s'agit simplement de mieux gérer votre structure CSS.
Dans votre cas, je commanderais mon css quelque chose comme ceci:
Expérimentez.
la source
Avez-vous des chances de rechercher la! Règle importante? Il n'annule pas toutes les déclarations mais fournit un moyen de les ignorer.
"Lorsqu'une règle! Important est utilisée sur une déclaration de style, cette déclaration remplace toute autre déclaration faite dans le CSS, où qu'elle se trouve dans la liste de déclarations. Bien que! Important n'ait rien à voir avec la spécificité."
https://developer.mozilla.org/en-US/docs/CSS/Specificity#The_!important_exception
la source