2012-04-17 17 views
7

Zastanawiam się, czy nie zmienisz wartości, czy hover, active i focus automatycznie dziedziczą ustawienia ze standardowego tagu a?Czy ustawienia hover, active, focus są dziedziczone?

Na przykład:

.wrapper .left .main .row .holder .more a, 
#content .wrapper .left .main .row .holder .more a:visited 
{ 
    width: 92px; 
    min-width: 92px; 
    max-width: 92px; 
    height: 23px; 
    min-height: 23px; 
    max-height: 23px; 
    display: block; 
    margin: 0px auto; 
    background: #fff url(../images/more-info-btn.png) top left no-repeat; 
} 

#content .wrapper .left .main .row .holder .more a:hover { 
    width: 92px; 
    min-width: 92px; 
    max-width: 92px; 
    height: 23px; 
    min-height: 23px; 
    max-height: 23px; 
    display: block; 
    margin: 0px auto; 
    background: #fff url(../images/more-info-btn.png) bottom left no-repeat; 
} 

Czy poniższy zrobić to samo?

#content .wrapper .left .main .row .holder .more a, 
#content .wrapper .left .main .row .holder .more a:visited 
{ 
    width: 92px; 
    min-width: 92px; 
    max-width: 92px; 
    height: 23px; 
    min-height: 23px; 
    max-height: 23px; 
    display: block; 
    margin: 0px auto; 
    background: #fff url(../images/more-info-btn.png) top left no-repeat; 
} 

#content .wrapper .left .main .row .holder .more a:hover { 
    background: #fff url(../images/more-info-btn.png) bottom left no-repeat; 
} 
+3

Nie dokładnie "dziedziczą" wartości, ponieważ dziedziczenie w CSS odnosi się do pobierania stylów z elementu nadrzędnego. Raczej wartości są * kaskadowo * lub wzięte z ogólnej reguły 'a' (mylące, wiem). Mimo to masz właściwy pomysł. – BoltClock

Odpowiedz

5

Tak, to prawda, pseudo stany dziedziczą wartości.

W celu zachowania spójności najlepiej jest zadeklarować style, które zmieniasz w swoich regułach stanu psuedo.

z następującego kodu, tekst zawsze będzie font-size:1.9em z padding-top:10px niezależnie od :hover państwa:

a 
{ 
    color:red; 
    font-size:1.9em; 
    padding-top:10px; 
} 

a:hover 
{ 
    color:green; 
}​ 

-- SEE EXAMPLE --

1

Nie, ponieważ element w jednym z państw a jest nadal a element, a element nie może dziedziczyć od siebie. Jednak każde ustawienie, które ma a jako selektor, ma zastosowanie, gdy element znajduje się w jednym ze stanów.

Tak więc, jeśli chcesz, aby niektóre właściwości miały zastosowanie do elementów a we wszystkich stanach, wystarczy ustawić je za pomocą selektora a.

Pod względem technicznym dwa zestawy reguł w pytaniu nie są równoważne ze względu na różnice w selektorach, które wpływają na specyficzność. Sytuacje, w których ma to znaczenie, są rzadkie i wymagałyby specjalnych reguł w innych arkuszach stylów.