Le contraire de visibility: hidden
est visibility: visible
. De même, y a-t-il un contraire pour display: none
?
Beaucoup de gens ne savent pas comment montrer un élément quand c'est le cas display: none
, car ce n'est pas aussi clair que d'utiliser la visibility
propriété.
Je pourrais simplement utiliser à la visibility: hidden
place de display: none
, mais cela ne donne pas le même effet, donc je ne vais pas avec.
display
valeurs possibles aurait été bien. (Et ce n'est que mon opinion bien sûr: peut-être que les gens ont vraiment aimé cette liste.)Réponses:
display: none
n'a pas de contraire littéral comme levisibility:hidden
fait.La
visibility
propriété décide si un élément est visible ou non. Il a donc deux états (visible
ethidden
), opposés l'un à l'autre.La
display
propriété, cependant, décide des règles de mise en page qu'un élément suivra. Il existe plusieurs types de règles différentes sur la façon dont les éléments vont se mettre en CSS, donc il y a plusieurs valeurs différentes (block
,inline
,inline-block
etc. - voir la documentation de ces valeurs ici ).display:none
supprime entièrement un élément de la mise en page, comme s'il n'y était pas.Toutes les autres valeurs de
display
font que l'élément fasse partie de la page, donc dans un sens, elles sont toutes opposéesdisplay:none
.Mais il n'y a pas une seule valeur qui soit l'inverse directe
display:none
- tout comme il n'y a pas un seul style de cheveux qui soit à l'opposé de «chauve».la source
display: initial
dans la réponse automatique supprimée - pour les navigateurs mettant en œuvre CSS2.1, c'est synonyme dedisplay: inline
. Il ne réinitialisedisplay
pas la valeur par défaut du navigateur pour un élément donné - ce n'est pas ce que signifie «valeur initiale».display:none
" alors vous lisez ", tout comme il n'y a pas un style de cheveux qui soit à l'opposé de chauve " Wow plus 1, bien mis.Un vrai contraire à
display: none
là n'existe pas (encore).Mais
display: unset
est très proche et fonctionne dans la plupart des cas.Depuis MDN (Mozilla Developer Network):
Notez également qu'il
display: revert
est en cours de développement. Voir MDN pour plus de détails.la source
display: initial
?Lors du changement d'élément
display
en Javascript, dans de nombreux cas, une option appropriée pour «annuler» le résultatelement.style.display = "none"
estelement.style.display = ""
. Cela supprime ladisplay
déclaration de l'style
attribut, rétablissant la valeur réelle de ladisplay
propriété à la valeur définie dans la feuille de style du document (à la valeur par défaut du navigateur si elle n'est pas redéfinie ailleurs). Mais l'approche la plus fiable est d'avoir une classe en CSS commeet ajouter / supprimer ce nom de classe à / de
element.className
.la source
.element { display: none }
(défini dans CSS lib par exemple) avec.element { display: '' !important }
cela ne fonctionnera pas. Vous devez utiliser.element { display: unset !important }
display:none
en JavaScript uniquement. Bien sûr, la chaîne vide ne fonctionnera pas en CSS, car c'est la valeur invalide. Hovewer,display: unset
vous suggérez de ne pas restaurer, par exemple, la valeurdisplay:block
par défaut pour a<div>
ou la valeurdisplay:table-row
par défaut pour a<tr>
, cela transforme effectivement tout endisplay:inline
(juste commedisplay:initial
). Pour restaurer la valeur par défaut du navigateur pour l'élément, il existedisplay:revert
, mais ce n'est pas bien pris en charge ( caniuse.com/#feat=css-revert-value ).vous pouvez utiliser
Cela fonctionne normalement ... C'est un petit piratage en css;)
la source
display
propriété, elle est donc simplement ignorée et fonctionne efficacement comme uneelement.style.display = ''
affectation (voir ma réponse ci-dessus).display: chunk norris;
le même effet, avec un peu plus de kick..element { display: none }
(défini dans CSS lib par exemple) avec.element { display: normal !important }
cela ne fonctionnera pas. Vous devez utiliser.element { display: unset !important }
J'utilise
display:block;
ça marche pour moila source
block
, ce n'est pas ce que vous voulez généralement pour uninline
élément comme<span>
par exemple.Comme Paul l'explique, il n'y a pas d'opposé littéral à l'affichage: aucun en HTML car chaque élément a un affichage par défaut différent et vous pouvez également changer l'affichage avec une classe ou un style en ligne, etc.
Cependant, si vous utilisez quelque chose comme jQuery, leurs fonctions d'affichage et de masquage se comportent comme s'il y avait un opposé à display none. Lorsque vous masquez, puis affichez à nouveau un élément, il s'affiche exactement de la même manière qu'il le faisait avant d'être masqué. Pour ce faire, ils stockent l'ancienne valeur de la propriété d'affichage lors du masquage de l'élément afin que, lorsque vous l'affichez à nouveau, il s'affiche de la même manière qu'avant de le masquer. https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180
Cela signifie que si vous définissez un div par exemple pour afficher un bloc en ligne ou un bloc en ligne et que vous le masquez puis l'affichez à nouveau, il s'affichera à nouveau comme affichage en ligne ou bloc en ligne comme avant
scénario:
Notez que la propriété d'affichage du div restera constante même après avoir été masquée (affichage: aucun) et affichée à nouveau.
la source
Dans le cas d'une feuille de style imprimable, j'utilise ce qui suit:
Je l'ai utilisé lorsque je devais imprimer un formulaire contenant des valeurs et que les champs de saisie étaient difficiles à imprimer. J'ai donc ajouté les valeurs enveloppées dans une balise span.print_only (div.print_only a été utilisé ailleurs), puis j'ai appliqué la classe .no_print aux champs d'entrée. Ainsi, à l'écran, vous verrez les champs de saisie et, une fois imprimés, uniquement les valeurs. Si vous vouliez avoir de la fantaisie, vous pouvez utiliser JS pour mettre à jour les valeurs des balises span lorsque les champs ont été mis à jour, mais ce n'était pas nécessaire dans mon cas. Peut-être pas la solution la plus élégante, mais cela a fonctionné pour moi!
la source
Vous pouvez utiliser display: block
Exemple :
la source
J'ai rencontré ce défi lors de la création d'une application où je voulais une table cachée pour certains utilisateurs mais pas pour d'autres.
Au départ, je l'ai configuré comme display: none mais ensuite display: inline-block pour les utilisateurs que je voulais voir mais j'ai rencontré les problèmes de formatage auxquels vous pourriez vous attendre (consolidation des colonnes ou généralement désordonnées).
La façon dont je l'ai contourné était de montrer d'abord le tableau, puis de faire "display: none" pour les utilisateurs que je ne voulais pas voir. De cette façon, il s'est formaté normalement mais a ensuite disparu au besoin.
Un peu une solution latérale mais pourrait aider quelqu'un!
la source
l'opposé de «none» est «flex» lorsque vous travaillez avec react native.
la source
visibilité: hidden masquera l'élément mais l'élément est leur avec DOM. Et en cas d'affichage: aucun cela supprimera l'élément du DOM.
Vous avez donc la possibilité de masquer ou d'afficher l'élément. Mais une fois que vous le supprimez (je veux dire n'en afficher aucun), il n'a pas de valeur opposée claire. display ont plusieurs valeurs comme display: block, display: inline, display: inline-block et bien d'autres. vous pouvez le vérifier à partir du W3C.
la source
display
?La meilleure réponse
display: none
estou
la source
display:normal
. Voir developer.mozilla.org/en-US/docs/Web/CSS/displayVous pouvez l'utiliser
display:block;
et ajouteroverflow:hidden;
la source
display: block
ne fonctionne pas bien sur un<span>
ou un<td>
… et une réponse précédente a déjà été mentionnéedisplay: block
.overflow: hidden
. Pourquoi? Quel est l'intérêt d'ajouter cela? Cela n'a rien à voir avec l'annulation d'un fichierdisplay: none
.Le meilleur "contraire" serait de le renvoyer à la valeur par défaut qui est:
la source