Mam li
stylizację następująco:
li{
display:inline-block;
padding:5px;
border:1px solid none;
}
li:hover{
border:1px solid #FC0;
}
Kiedy najeżdżam kursorem na li
granicę, pojawia się bez li
przesuwania. Czy jest możliwe, aby „obramowanie” było niewidoczne?
css
transparency
border-color
William Calleja
źródło
źródło
Wielu z was musi tu wylądować, aby znaleźć rozwiązanie dla nieprzezroczystej granicy zamiast przezroczystej. W takim przypadku możesz użyć
rgba
, gdziea
oznaczaalpha
.Próbny
Tutaj można zmienić
opacity
zborder
od0-1
Jeśli chcesz po prostu mieć całkowicie przezroczyste obramowanie, najlepiej użyć na
transparent
przykładborder: 1px solid transparent;
źródło
Możesz usunąć obramowanie i zwiększyć dopełnienie:
źródło
<a/>
pole. Obramowanie należy do elementu (stąd klikalne), podczas gdy wypełnienie należy do elementu nadrzędnego.hej, to najlepsze rozwiązanie, jakiego kiedykolwiek doświadczyłem .. to jest CSS3
użyj następującej własności do swojego div lub dowolnego miejsca, w którym chcesz umieścić border trasparent
na przykład
to zadziała ...
źródło
Tak, możesz użyć
border: 1px solid transparent
Innym rozwiązaniem jest użycie
outline
po najechaniu (i ustawienie obramowania na 0), co nie wpływa na przepływ dokumentów:NB. Kontur można ustawić tylko jako właściwość sharthand, a nie dla poszczególnych stron. Jest przeznaczony tylko do debugowania, ale działa dobrze.
źródło
Ponieważ powiedziałeś w komentarzu, że im więcej masz opcji, tym lepiej, oto kolejna.
W CSS3 istnieją dwa różne tak zwane „modele pudełkowe”. Jeden dodaje obramowanie i wypełnienie do szerokości elementu blokowego, a drugi nie. Możesz użyć tego ostatniego, określając
Wtedy w nowoczesnych przeglądarkach element będzie zawsze miał tę samą szerokość. To znaczy, jeśli zastosujesz do niego obramowanie po najechaniu kursorem, szerokość obramowania nie zwiększy całkowitej szerokości elementu; ramka zostanie dodana „wewnątrz” elementu, że tak powiem. Jeśli jednak dobrze pamiętam, musisz
width
wyraźnie określić, aby to zadziałało. Co prawdopodobnie nie jest dla Ciebie opcją w tym konkretnym przypadku, ale możesz o tym pamiętać w przyszłych sytuacjach.źródło
Ten wpis na blogu ma sposób na emulację
border-color: transparent
w IE6. Poniższy przykład zawiera poprawkę „hasLayout”, która pojawia się w komentarzach do wpisu na blogu:Upewnij się, że
border-color
zastosowana w poprawce IE6 nie jest używana w żadnym miejscu.testDiv
elementu. Zmieniłem przykład zpink
na,#FEFEFE
ponieważ wydaje się, że jest to jeszcze mniej prawdopodobne.źródło
Najłatwiejszym rozwiązaniem jest użycie
rgba
jako koloru:border-color: rgba(0,0,0,0);
jest to całkowicie przezroczysty kolor obramowania.źródło
Użyj właściwości przezroczystej
źródło