ho trovato il seguente selettore CSS in Google Chrome user agent foglio di stile:Che cosa significa "i" in un selettore di attributi CSS?
[type="checkbox" i]
Cosa significa il i
significa?
ho trovato il seguente selettore CSS in Google Chrome user agent foglio di stile:Che cosa significa "i" in un selettore di attributi CSS?
[type="checkbox" i]
Cosa significa il i
significa?
Come indicato nei commenti, spetta corrispondenza attributo case-insensitive. This is a new feature in CSS Selectors Level 4.
Attualmente è disponibile in Chrome 49+, Firefox 47+, Safari 9+ e Opera 37 + *. In precedenza, era disponibile solo negli stili utente-utente di Chrome a partire da Chrome 39, ma poteva essere abilitato per i contenuti Web impostando il flag delle funzionalità sperimentali.
* Le versioni precedenti di Opera possono anche supportarlo.
[data-test] {
width: 100px;
height: 100px;
margin: 4px;
}
[data-test="A"] {
background: red;
}
[data-test="a" i] {
background: green;
}
Green if supported, red if not:
<div data-test="A"></div>
La piazza di cui sopra sarà verde se il browser supporta questa funzione, rosso se non è così.
Grazie per l'insegnamento! Goditi il tuo nuovo cappello. Questo genere di cose funziona nelle librerie di selettori? Che tipo di supporto per browser ha? –
@BenjaminGruenbaum Sembra che sia disponibile solo negli stili utente-utente di Chrome (non nel CSS di un sito Web, almeno non ancora). Non sono riuscito a trovare alcuna documentazione ufficiale sulla compatibilità. –
(Ripubblicando il mio commento precedente ora che le domande sono unite). Non è del tutto sorprendente che standard nuovi e sperimentali come questo siano scarsamente documentati. Detto questo, la mia risposta contiene ulteriori informazioni su questo, vale a dire come funziona, perché viene utilizzato e come è implementato in Chrome (come indicato dalla domanda). – BoltClock
Questo è il flag senza distinzione tra maiuscole e minuscole per i selettori di attributo, introdotto in Selectors 4. Apparentemente hanno introdotto un'implementazione di questa funzione in Chrome già nell'agosto 2014.
In breve: questo flag indica al browser di far corrispondere i rispettivi valori per l'attributo type
in modo insensibile. Il comportamento di selezione del selettore predefinito per i valori degli attributi in HTML è case-sensitive, che è spesso indesiderabile perché molti attributi sono definiti con valori non sensibili alle maiuscole e minuscole e si desidera assicurarsi che il proprio selettore raccolga tutti gli elementi corretti indipendentemente dal caso. type
è un esempio di tale attributo, perché it is an enumerated attribute e enumerated attributes are said to have case-insensitive values.
Ecco i commit rilevanti:
Si noti che è attualmente nascosto all'interno del " Abilita il flag "Funzionalità di piattaforma Web sperimentale" a cui è possibile accedere in chrome: // flags/# enable-experimental-web-platform-features. Questo potrebbe spiegare perché la funzione è passata in gran parte inosservata - le funzionalità nascoste dietro quel flag possono essere utilizzate solo internamente e non nel codice pubblico (come i fogli di stile dell'autore) a meno che non sia abilitato, perché sono sperimentali e quindi non sono pronte per l'uso di produzione.
Ecco un banco di prova che è possibile utilizzare - confrontare i risultati quando viene attivata e disattivata la bandiera:
span[data-foo="bar"] {
color: red;
}
span[data-foo="bar" i] {
color: green;
}
<span data-foo="bar">If all of this text is green,</span>
<span data-foo="Bar">your browser supports case-insensitive attribute selectors.</span>
Nota che uso un dato attributo personalizzato invece di type
per mostrare che può essere usato con praticamente qualsiasi attributo.
Non sono a conoscenza di altre implementazioni al momento della stesura di questo documento, ma si spera che altri browser raggiungano presto. Questa è un'aggiunta relativamente semplice ma estremamente utile allo standard e non vedo l'ora di poterlo usare in futuro.
Sto avendo "quel pomeriggio" stanchezza ... Dopo aver letto le specifiche del W3 non riesco ancora a capire completamente, quale sarebbe un uso pratico della vita reale in css per questo? – Matt
@Matt: la selezione del selettore di attributo fa distinzione tra maiuscole e minuscole come [dichiarato in HTML5] (http://www.w3.org/TR/html5/disabled-elements.html#case-sensitivity), che in molti casi è indesiderabile perché HTML5 consente valori senza distinzione tra maiuscole e minuscole per determinati attributi. Puoi usare questo flag per assicurarti di raccogliere gli elementi giusti indipendentemente dal caso. Per esempio nello screenshot puoi vedere che cerca 'input [type =" search "i]', che combacerà elementi come ''. – BoltClock
Posso confermare che funziona con Chromium versione 43.0.2357.130 e "Abilita funzionalità di piattaforma Web sperimentale" abilitato. –
OP, è il tuo documento XHTML? –
Sembra più simile al foglio di stile di user agent di Chrome e non a un problema specifico di Zurb. – j08691
Mi ricordo di averlo visto da qualche parte. Qualcosa mi sta dicendo che ha a che fare con i cappucci? – jbutler483