2015-03-04 14 views
15

Si consideri il seguente frammento di codice HTML con due style attributi:Attributi "stile" multipli in un tag "span": cosa dovrebbe succedere?

<span style="color:blue" style="font-style:italic">Test</span> 

In Opera 12.16 e Chrome 40, si presenta come testo blu non corsivo, mentre Internet Explorer 9 mostra testo in corsivo blu. Che cosa, se non altro, dovrebbe apparire lo standard?

risposta

20

In HTML, SGML e XML, (1) attributi non può essere ripetuta, e dovrebbe essere definito solo in un elemento una volta.

Così il vostro esempio:

<span style="color:blue" style="font-style:italic">Test</span> 

è non conforme allo standard HTML, e si tradurrà in un comportamento indefinito, il che spiega il motivo per cui diversi browser sono rendering in modo diverso.


Poiché non v'è alcun modo definito a interpretare questo, i browser possono interpretano come vogliono e li fondono, o ignorarli come vogliono.

(1): Ogni articolo che posso trovare afferma che gli attributi sono coppie "chiave/valore" o coppie "valore attributo", il che implica che le chiavi devono essere univoche. The best source I can find states:

nomi degli attributi (id e di stato in questo esempio) sono soggetti alle stesse restrizioni altri nomi in XML; non è necessario che siano unici attraverso l'intero DTD, ma solo nell'elenco di attributi per un dato elemento. (sottolineatura mia.)

+0

Cosa ne pensi di aggiungere il tuo stile per ID o classe? Quando carico. @Skatox Voglio aggiungere un commento mi dispiace per il mio errore :( – lv0gun9

+0

@ lv0gun9 Questo è irrilevante per la domanda in questione. Non si trattava di aggiungere una classe, ma di come i diversi browser trattano gli attributi duplicati. –

30

separare le regole con un punto e virgola in un'unica dichiarazione:

<span style="color:blue;font-style:italic">Test</span>

+3

so come sto * * dovrei farlo; quello che voglio sapere è che cosa dovrebbe accadere se non lo faccio (o nel mio caso specifico, cosa succede se un generatore HTML automatizzato scombina). – Mark

+0

ah mio male, ho frainteso la domanda :) – Eeji

+9

questo potrebbe non rispondere alla domanda dell'OP ma ho trovato davvero utile avere su questa stessa pagina Q & A – Davos

Problemi correlati