Ich habe einen li
Stil wie folgt:
li{
display:inline-block;
padding:5px;
border:1px solid none;
}
li:hover{
border:1px solid #FC0;
}
Wenn ich über die li
Grenze schwebe, erscheint sie, ohne dass sich das li
verschiebt. Ist es möglich, eine 'Grenze' zu haben, die nicht sichtbar ist?
css
transparency
border-color
William Calleja
quelle
quelle
Viele von Ihnen müssen hier landen, um eine Lösung für eine undurchsichtige Grenze anstelle einer transparenten zu finden. In diesem Fall können Sie verwenden
rgba
, woa
steht füralpha
.Demo
Hier können Sie die Änderung
opacity
derborder
von0-1
Wenn Sie einfach einen vollständigen transparenten Rand wünschen, ist das Beste, was Sie verwenden können
transparent
, wie zborder: 1px solid transparent;
quelle
Sie können den Rand entfernen und die Polsterung erhöhen:
quelle
<a/>
Box wünschen . Der Rand gehört zum Element (daher anklickbar), während das Auffüllen dem übergeordneten Element gehört.Hey, das ist die beste Lösung, die ich je erlebt habe. Das ist CSS3
Verwenden Sie die folgende Eigenschaft für Ihr Div oder überall dort, wo Sie die Grenze durchsichtig setzen möchten
z.B
das wird funktionieren..
quelle
Ja, du kannst verwenden
border: 1px solid transparent
Eine andere Lösung ist die Verwendung
outline
des Hovers (und das Setzen des Rahmens auf 0), die den Dokumentfluss nicht beeinflusst:NB. Sie können den Umriss nur als Sharthand-Eigenschaft festlegen, nicht für einzelne Seiten. Es ist nur zum Debuggen gedacht, funktioniert aber gut.
quelle
Da Sie in einem Kommentar gesagt haben, je mehr Optionen Sie haben, desto besser, hier ist eine andere.
In CSS3 gibt es zwei verschiedene sogenannte "Box-Modelle". Einer fügt den Rand und den Abstand zur Breite eines Blockelements hinzu, der andere nicht. Sie können letzteres verwenden, indem Sie angeben
In modernen Browsern hat das Element dann immer die gleiche Breite. Wenn Sie also beim Hover einen Rahmen darauf anwenden, wird die Breite des Rahmens nicht zur Gesamtbreite des Elements hinzugefügt. Der Rand wird sozusagen "innerhalb" des Elements hinzugefügt. Wenn ich mich jedoch richtig erinnere, müssen Sie die
width
explizit angeben, damit dies funktioniert. Dies ist in diesem speziellen Fall wahrscheinlich keine Option für Sie, aber Sie können dies für zukünftige Situationen berücksichtigen.quelle
Dieser Blogeintrag kann
border-color: transparent
in IE6 emuliert werden . Das folgende Beispiel enthält den Fix "hasLayout", der in den Kommentaren zu den Blogeinträgen angezeigt wird:Stellen Sie sicher, dass das
border-color
im IE6-Fix verwendete.testDiv
Element nirgendwo im Element verwendet wird. Ich habe das Beispiel vonpink
in geändert ,#FEFEFE
da dies noch weniger wahrscheinlich ist.quelle
Die einfachste Lösung hierfür ist die Verwendung
rgba
als Farbe:border-color: rgba(0,0,0,0);
Das ist eine vollständig transparente Rahmenfarbe.quelle
Verwenden Sie eine transparente Eigenschaft
quelle