2013-07-20 8 views
5

Sono consapevole che le regole ID sono più veloci delle regole di classe, che sono più veloci delle regole di tag, che sono più veloci delle regole universali, come indicato su MDN. La mia domanda riguarda le prestazioni dei CSS rispetto all'ereditarietà. Ad esempio, quale dei seguenti è più efficiente?Prestazioni CSS rispetto all'eredità

body { 
    font-family: Helvetica, Arial, sans-serif; 
    font-size: 16px; 
} 

h1 { 
    font-family: Georgia, serif; 
    font-size: 36px; 
    font-weight: 700; 
} 

o

h1 { 
    font-family: Georgia, serif; 
    font-size: 36px; 
    font-weight: 700; 
} 

.article-text { 
    font-family: Helvetica, Arial, sans-serif; 
    font-size: 16px; 
} 

Mentre non v'è un solo <body> tag nel DOM, ci potrebbero essere centinaia di p.article-text elementi. Poiché esiste un solo tag <body>, significa che uno stile <body> è più efficiente, anche se dovrei eseguire il restyling degli elementi <h1>? O è più efficiente stilare gli elementi .article-text, poiché così facendo userò un selettore più specifico e non dovrei preoccuparmi di restyling degli elementi <h1>?

Mi sono sempre chiesto questo. Pensieri?

+0

Fare un punto di riferimento e scoprire? – cimmanon

+1

Direi che la "cascata" di CSS (che eredita gli stili dagli elementi parent) è altamente efficiente. Questo non richiede affatto un selettore. La mia comprensione è che 'body' dovrebbe essere in stile nel modo in cui si desidera il corpo principale di testo normale all'interno del documento in stile - per quello che è il contenitore. –

+3

Nel grande schema del rendimento della pagina, [non vale la pena di preoccuparsi] (http://calendar.perfplanet.com/2011/css-selector-performance-has-changed-for-the-better/) (o almeno non vale la pena di preoccuparsi fino a quando non avrai affrontato molti altri fattori: concatenazione, minificazione, ecc.) – steveax

risposta

2

Penso che l'articolo MDN che hai mostrato sia scritto in modo dannoso, in quanto propone di concentrarsi sulle micro-ottimizzazioni CSS mentre quasi sempre la velocità della pagina può essere aumentato in diversi modi (ad esempio Google Page Speed ha suggerimenti interessanti).

Non riesco a ricordare alcuna situazione nei miei siti Web in cui il CSS fosse un collo di bottiglia. Potresti vedere "Cronologia" in Strumenti per sviluppatori di Chrome su alcune pagine e notare che la quantità di tempo speso per lavorare con gli stili è solitamente insignificante rispetto ad altri eventi.

Se dovessi dare un consiglio, io preferirei andare dall'altra parte e utilizzare strumenti di pre-elaborazione CSS come SASS o LESS per migliorare la manutenibilità . Ciò potrebbe eventualmente contribuire a ridurre il numero di regole.

0

Come menzionato da steveax. Non vale la pena preoccuparsi. Inoltre, la risposta dipende molto dal browser e dall'HTML effettivamente fornito.

0

direi che il primo è probabilmente più veloce dei due, ma come tutti hanno detto con i browser che abbiamo ATM e dispositivi e connessioni velocità non si noterà alcuna differenza se non si dispone di un sito enorme che ha più di 40-50 pagine in cui dovresti esaminare il rivestimento sottile del tuo codice

Problemi correlati