Je veux avoir une case à cocher cachée qui n'occupe pas d'espace sur l'écran.
Si j'ai ceci:
<div id="divCheckbox" style="visibility: hidden">
Je ne vois pas la case à cocher, mais cela crée toujours une nouvelle ligne.
Si j'ai ceci:
<div id="divCheckbox" style="visibility: hidden; display:inline;">
il ne crée plus de nouvelle ligne, mais il occupe un espace horizontal sur l'écran.
Existe-t-il un moyen d'avoir un div caché qui ne prend pas de place (vertical ou horizontal?
Réponses:
Utilisation
display:none;
visibility: hidden
masque l'élément, mais il prend toujours de la place dans la mise en page.display: none
supprime complètement l'élément du document, il ne prend pas de place.la source
<div id="divCheckbox" style="display: inline-block;">
inline-block
? Ladisplay
valeur par défaut pour un div estblock
!display: none
ladisplay: inline-block
ou équivalent sans le div maintenant affiché en prenant l' espace et déplacer mes autres éléments DOM autour?display: none
bien que directement à partir de HTML. Cependant, toute utilisation de ladisplay
propriété remplace le comportement de l'hidden
attribut global.Depuis la sortie de HTML5, on peut maintenant simplement faire:
Remarque: cela n'est pas pris en charge par certains anciens navigateurs, notamment IE <11.
Documentation des attributs cachés ( MDN , W3C )
la source
Utilisez
style="display: none;"
. De plus, vous n'avez probablement pas besoin d'avoir le DIV, il suffitdisplay: none
probablement de définir le style sur la case à cocher.la source
visibility: hidden
mais cela montrait un espace vide.style="display: none;"
a fonctionné comme un petit charme :)En plus de la réponse de CMS, vous voudrez peut-être envisager de mettre le style dans une feuille de style externe et attribuer le style à l'id, comme ceci:
la source
Étant donné que vous devez vous concentrer sur la convivialité et les généralités en CSS, plutôt que d'utiliser un identifiant pour pointer vers un élément de mise en page spécifique (ce qui entraîne des fichiers CSS énormes ou multiples), vous devriez probablement utiliser à la place une vraie classe dans votre fichier .css lié:
ou pour le minimaliste:
Maintenant, vous pouvez simplement l'appliquer via:
la source
Pensez à utiliser
<span>
pour isoler de petits segments de balisage à coiffer sans casser la disposition. Cela semblerait plus idiomatique que d'essayer de forcer un<div>
ne pas s'afficher - si en fait la case à cocher elle-même ne peut pas être stylée comme vous le souhaitez.la source
Afficher / masquer par clic de souris:
Source: ici
la source
Pour empêcher la case à cocher de prendre de l'espace sans le supprimer du DOM, utilisez
hidden
.Pour éviter que la case à cocher de prendre tout l' espace et aussi le retirer du DOM, l' utilisation
display: none
.la source
Pour masquer visuellement l'élément , mais le conserver en html, vous pouvez utiliser:
ou
Qu'est-ce qui peut mal tourner
display:none
? Il supprime complètement l'élément du HTML, ainsi certaines fonctionnalités peuvent être cassées si elles ont besoin d'accéder à quelque chose dans l'élément caché.la source
Cela devrait faire disparaître l'élément et ne pas prendre de place.
la source