Domanda

Il seguente documento HTML (insieme al CSS) non riesce a rendere gli stili in b.css.

<!doctype html>
<html>
    <head>
        <link rel="stylesheet" media="screen" type="text/css" title="A" href="a.css" />
        <link rel="stylesheet" media="screen" type="text/css" title="B" href="b.css" />
    </head>
    <body>
        <div id="A">A</div>
        <div id="B">B</div>
    </body>
</html>

/* a.css */
div#A   { color: blue;  }
/* b.css */
div#B   { color: red;   }

Rendere i titoli lo stesso (ad esempio, sia <link ... title="A"> la fissa, ma non vedo la ragione, perché dovrebbe. Qual è il titolo facendo, qui, che rende questo torto?

È stato utile?

Soluzione

Le specifiche HTML 4.0 afferma che ci sono tre tipi di fogli di stile : persistente, preferito, e si alternano.

  • Un foglio di stile è "permanente" se è collegato con rel="stylesheet" e non ha attributi title. Tutti i fogli di stile persistenti vengono utilizzati per il rendering.
  • Un foglio di stile è "preferito" se è collegato con rel="stylesheet" e ha un attributo title; fogli di stile preferenziali con la stessa title sono raggruppati insieme, ma non dovrebbe essere più di un gruppo. Sembra browser sceglieranno un solo foglio di stile preferito per il rendering poiché ci dovrebbe essere una sola.
  • Infine, un foglio di stile è "alternate" se è collegato con rel="alternate stylesheet" e ha un title. Questi fogli di stile si suppone per consentire all'utente di scegliere i fogli di stile, vengono raggruppate insieme da title e presentarsi nel selettore di foglio di stile del browser se ne ha uno (View >> Style pagina in Firefox). Ogni gruppo (per titolo) si escludono a vicenda.

Mettendo title attributi sui vostri fogli di stile, si sta inconsapevolmente trasformandoli di fatto in fogli di stile preferito, piuttosto che il foglio di stile persistente previsto. Questo è anche il motivo per cui lavorare, quando tutti hanno lo stesso titolo.

Altri suggerimenti

In seguito alla risposta di Neil Williams':

  

Gli autori possono specificare un numero di si escludono a vicenda i fogli di stile chiamati fogli di stile alternativi .... utente dovrebbero consentire agli utenti di scegliere tra fogli di stile alternativi.

(enfasi aggiunta)

Inoltre:

  

Per fare un foglio di stile preferito, impostare l'attributo rel a "stylesheet" e il nome del foglio di stile con l'attributo title.

Questo è da http: // www.w3.org/TR/REC-html40/present/styles.html#h-14.3.1

Leggere questo: http: //blogs.telerik. com / dimodimov / messaggi / 08-05-15 / title_attributes_in_css_link_tags_prevent_styles_from_being_applied.aspx

  

Sono stato a conoscenza da qualche tempo   quel titolo attributi di CSS   tag innescare problemi e prevenire alcuni   stili CSS venga applicato sul   pagina web. Oggi ho investito un paio di   ore a scoprire ciò che in realtà   accade e questo è ciò che abbiamo.

     

Se si dispone di più tag nella   Pagina e uno di loro ha un   attributo title, poi i tag   che viene dopo deve neanche avere un   attributo titolo con lo stesso valore oppure   nessun attributo title a tutti, altrimenti   gli stili CSS in quest'ultimo i file del   Non saranno applicati sulla pagina.

     

Il problema può essere facilmente riprodotto in   varie versioni di Firefox, Opera e   Safari. L'unico browser, che fa   non presenta il comportamento imprevisto è   Internet Explorer.

Davvero strano o.o

Mi ci sono voluti circa 3 ore per arrivare alla fine di esso, come mi è stato aggiunta di un nuovo foglio di stile includono. Pensavo di avere alcuni conflitti tra le regole CSS presenti e quelli che stavo aggiungendo. Dopo l'esecuzione di opzioni sane, ho provato a rimuovere il tag del titolo dal collegamento. Non pensavo gran parte di essa, pensano che sia inutile alcuni metadati. Ebbene, si è scoperto che questo era ciò che impediva il CSS di essere analizzato. Si scopre che il comitato di stantio degli standard CSS brainfart si avvicinò con questo. Non potevano solo hanno aggiunto un nuovo attributo che è più chiaro, per la loro funzionalità preferita e quant'altro (qualunque sia il diavolo che si suppone di fare), invece di basarsi sulla presenza o l'assenza dell'attributo titolo? Ho perso tutto quel tempo che dovrebbe essere investito nel fare qualcosa di produttivo. Durante la mia ricerca, mi sono promesso che avrei preso le misure, una volta ho trovato l'origine di questo problema. Ora, resta da decidere le misure.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top