2016-02-29 12 views
7

Poiché un ID deve essere univoco in HTML, perché a volte vedo i selettori Css formattati come (div # nav-blue), poiché è ovvio che non ci saranno altri elementi che hanno questo ID eccetto per quel div, quindi non scriverò # blu nav ha più senso?Se gli ID in HTML devono essere unici, perché a volte vedo in Css qualcosa di simile a div # nav-blue?

+0

Chi lo sa? Potrebbe essere qualcuno che non capisce che gli ID sono pensati per essere unici, potrebbe essere che l'ID possa essere assegnato a elementi di tipi diversi su altre pagine e l'autore vuole solo bersagliarlo se è assegnato a un div su una determinata pagina , potrebbe essere un attacco di specificità ... o potrebbe essere interamente stilistico (per quell'autore). – BoltClock

+2

Non si può presumere che # nav-blue sarà sempre assegnato ad un div, per esempio. Puoi fare una tale ipotesi se hai il controllo del markup e le tue regole dicono che sarà sempre assegnato a un div, nel qual caso yes div # nav-blue è ridondante, ma in un altro progetto l'ID potrebbe essere assegnabile ad altri tipi di elementi - distinguere il tipo può essere utile all'autore. – BoltClock

+1

Secondo me, non ha alcun senso, aggiunge inutilmente alla specificità del selettore. ci sono persone che hanno l'abitudine di scrivere in quel modo. –

risposta

5

Non cambia o un po '.

È possibile farlo per qualche motivo: maggiore visibilità quando si mantiene il codice. Più facile da trovare e ricordare per ogni tipo di elemento è lo stile.

Il secondo motivo è la priorità del selettore.

V'è una certa diverso ordine di priorità:

!important > #id > .class > element 

si può considerare che

element = 1 
.class = 10 
#id = 100 
!important= 1000 

E poi div#id = 101>#id = 100

div#myid{ 
 
    color:red; 
 
} 
 

 
#myid{ 
 
    color:blue; 
 
} 
 

 
.myclass{ 
 
    color:yellow; 
 
} 
 

 
div{ 
 
    color:green; 
 
}
<div class="myclass" id="myid"> 
 
Some text 
 
</div>

+0

Abbastanza chiaro, grazie mille. – Hassan