J'ai un li
style comme suit:
li{
display:inline-block;
padding:5px;
border:1px solid none;
}
li:hover{
border:1px solid #FC0;
}
Lorsque je survole le, li
la bordure apparaît sans faire le li
déplacement du s. Est-il possible d'avoir une «bordure» qui n'est pas visible?
css
transparency
border-color
William Calleja
la source
la source
Beaucoup d'entre vous doivent atterrir ici pour trouver une solution pour une bordure opaque au lieu d'une solution transparente. Dans ce cas, vous pouvez utiliser
rgba
, oùa
signifiealpha
.Démo
Ici, vous pouvez modifier le
opacity
laborder
de0-1
Si vous voulez simplement une bordure transparente complète, la meilleure chose à utiliser est
transparent
, commeborder: 1px solid transparent;
la source
Vous pouvez supprimer la bordure et augmenter le remplissage:
la source
<a/>
boîte entièrement cliquable . La bordure appartient à l'élément (donc cliquable), tandis que le remplissage appartient au parent.hé c'est la meilleure solution que j'ai jamais expérimentée .. c'est CSS3
utilisez la propriété suivante pour votre div ou partout où vous voulez mettre la frontière transparente
par exemple
cela fonctionnera.
la source
Oui, vous pouvez utiliser
border: 1px solid transparent
Une autre solution consiste à utiliser
outline
au survol (et à définir la bordure sur 0) qui n'affecte pas le flux de documents:NB. Vous ne pouvez définir le contour qu'en tant que propriété sharthand, pas pour des côtés individuels. Il est uniquement destiné à être utilisé pour le débogage, mais cela fonctionne bien.
la source
Puisque vous avez dit dans un commentaire que plus vous avez d'options, mieux c'est, en voici une autre.
Dans CSS3, il existe deux «modèles de boîtes» différents. L'un ajoute la bordure et le remplissage à la largeur d'un élément de bloc, tandis que l'autre ne le fait pas. Vous pouvez utiliser ce dernier en spécifiant
Ensuite, dans les navigateurs modernes, l'élément aura toujours la même largeur. Par exemple, si vous lui appliquez une bordure au survol, la largeur de la bordure ne s'ajoutera pas à la largeur totale de l'élément; la bordure sera ajoutée "à l'intérieur" de l'élément, pour ainsi dire. Cependant, si je me souviens bien, vous devez spécifier le
width
explicitement pour que cela fonctionne. Ce n'est probablement pas une option pour vous dans ce cas particulier, mais vous pouvez le garder à l'esprit pour les situations futures.la source
Cette entrée de blog a un moyen d'émuler
border-color: transparent
dans IE6. L'exemple ci-dessous inclut le correctif "hasLayout" qui est mentionné dans les commentaires d'entrée de blog:Assurez-vous que le
border-color
correctif utilisé dans IE6 n'est utilisé nulle part dans l'.testDiv
élément. J'ai changé l'exemple depink
à#FEFEFE
parce que cela semble encore moins susceptible d'être utilisé.la source
La solution la plus simple consiste à utiliser
rgba
comme couleur:border-color: rgba(0,0,0,0);
c'est une couleur de bordure entièrement transparente.la source
Utiliser la propriété transparente
la source