Non è tanto non riconosciuti elementi, come tutto elementi. Ricorda che i CSS supportano sia XML che HTML. In XML, tutti gli elementi sono riconosciuti
Nel CSS 2.1 spec, section 6.1.1 dice:
6.1.1 valori riportati
agenti utente deve prima assegnare un valore specificato per ogni proprietà basato sui seguenti meccanismi (in ordine di precedenza):
Se la cascata produce un valore, usalo Tranne che, se il valore è 'inherit', il valore specificato è definito in "The 'inherit' value" di seguito.
In caso contrario, se la proprietà è ereditata e l'elemento non è la radice dell'albero del documento, utilizzare il valore calcolato dell'elemento genitore .
Altrimenti utilizzare il valore iniziale della proprietà. Il valore iniziale di ogni proprietà è indicato nella definizione della proprietà.
Per definizione, gli elementi non riconosciuti non sarà menzionato nel foglio di stile user agent, e dal momento che stiamo parlando del comportamento predefinito, non sarà menzionato nel foglio di stile dell'autore sia. Quindi 1 non si applica.
La proprietà di visualizzazione è definita in 9.2.4 The 'display' property. Nelle regole lì, dice Inherited: no
, quindi 2 non si applica.
Quindi vale 3. Sempre dalle regole in 9.2.4, abbiamo Initial: inline
, quindi gli elementi sono in linea.
Per gli elementi a livello di blocco HTML, sono bloccati per impostazione predefinita semplicemente perché sono elencati come tali nel foglio di stile del programma utente. Allo stesso modo per altri valori di visualizzazione come table
, list-item
ecc.
Se non viene riconosciuto ... come può avere proprietà predefinite? Devi controllare le specifiche. Suggerirei è specifico del browser. = https://www.w3.org/TR/custom-elements/ –
Grazie, @Paulie_D.Ho l'impressione che il CSS abbia regole per l'elaborazione di elementi non riconosciuti (vedi [commenti in questa risposta] (http://stackoverflow.com/a/35688664/3597276)). La regola potrebbe essere semplicemente prendere il valore iniziale di una proprietà CSS. Sto cercando di trovare dove si specifica la gestione, ma le mie ricerche non hanno prodotto risultati. –
Quello che sto pensando è che loro ** non sono ** definiti ... perché lo sviluppatore dovrebbe definirli ... quindi è arbitrario su cosa fa ogni browser. –