2015-08-11 17 views
6

Perchè non mi basta fare una semplice reset:CSS reset vs * wild card

* { margin: 0; padding: 0; font-size: 100% }

invece di:

html, body, div, span, object, iframe, 
h1, h2, h3, h4, h5, h6, p, blockquote, pre, 
abbr, address, cite, code, 
del, dfn, em, img, ins, kbd, q, samp, 
small, strong, sub, sup, var, 
b, i, 
dl, dt, dd, ol, ul, li, 
fieldset, form, label, legend, 
table, caption, tbody, tfoot, thead, tr, th, td, 
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary, 
time, mark, audio, video { 
    margin:0; 
    padding:0; 
    border:0; 
    outline:0; 
    font-size:100%; 
    vertical-align:baseline; 
    background:transparent; 
} 
+1

Per [MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/Common_CSS_Questions#Use_of_the_.2A_selector) "L'uso del selettore * deve essere ridotto a icona in quanto è un selettore lento soprattutto se non usato come primo elemento di un selettore, il suo uso dovrebbe essere evitato il più possibile. " – j08691

risposta

5

Prima di tutto è possibile.

Rispondere alla domanda: perché probabilmente non si desidera avere tutti gli elementi con i parametri specificati. Ad esempio non hai input, pulsanti, ecc.

+0

Ho appena notato il 2 ° reset quasi ovunque e mi chiedevo perché una tale selezione verbosa quando una linea può essere sufficiente. –

+1

@RobertRocha "*" seleziona tutti gli elementi che impiegano più tempo a procedere e generalmente non si desidera avere una serie di regole di non uniformità. È buono da usare solo quelli più comuni meno quelli su cui non vuoi avere la regola. –

2

Forse perché i selettori di tipo hanno più specificity rispetto al selettore universale.

O perché questo reset CSS non vuole corrispondere a tutti gli elementi, come input s.

2

L'applicazione di tutti questi stili a tutti gli elementi comporterebbe uno stile non previsto. Si prega di controllare il seguente testo, menu a discesa, e di reset textarea con tutti i vostri stili di reset:

<input type="text" value="foo" /> 
<select> 
<option>Foo</option> 
<option>Bar</option> 
</select> 
<textarea rows="10" columns="30">foo</textarea> 

http://jsfiddle.net/esm63r30/

Piuttosto nudi!

+0

Beh, non ho incluso il confine. –

+0

@RobertRocha In effetti, ma il punto è se applichi questi stili in modo così ampio, potresti finire con uno stile non voluto. Il ripristino incluso include elementi specifici per un motivo. –

1

L'utilizzo di un ripristino CSS è un modo efficace per ottenere rapidamente un buon punto di partenza per la progettazione, consentendo di risparmiare tempo e confusione durante la codifica. Invece di reimpostare in modo sfacciato tutto ciò che dovresti trovare, i tag di solito vuoi reimpostare e scegliere i valori predefiniti che funzionano bene in base a ciascun progetto individualmente.

Utilizzando una wildcard reset

E 'possibile resettare ogni tag HTML che possono o non possono avere uno stile collegato ad esso con una dichiarazione jolly CSS. Anche se questo è facile e veloce, può anche avere effetti indesiderati.

Rimuovendo tutta la formattazione predefinita da tutti i tag HTML, ti impegni a dover creare stili personalizzati per questi tag. Ricorda, puoi solo pensare a div, span, ul, li e ad altri elementi comuni, dimenticando completamente abbr, pre e citare.

1

Questa è una tecnica comune denominata ripristino CSS. Browser diversi utilizzano margini predefiniti diversi, facendo sì che i siti abbiano un aspetto diverso in base ai margini. Il simbolo * significa "tutti gli elementi" (un selettore universale), quindi stiamo impostando tutti gli elementi in modo da avere margini zero e padding pari a zero, il che li rende uguali in tutti i browser.