HTML
屬性放在方括號(hào)中,稱為屬性選擇器,如下:[href] {
color: red;
}
href
屬性的且沒(méi)有更特定選擇器的元素的文本顏色都會(huì)是紅色的
。屬性選擇器的特性與類相同。title
屬性的div標(biāo)簽,可以這么做:div[title]
title
屬性的 div 的子元素div [title]
div[title='dna']
dna
的div,雖然有選擇器算法可以處理每種情況(以及更多),但這里不會(huì)選擇“dna is awesome”或“dnamutation”的標(biāo)題。dna
的元素,如 “my beautiful dna” 或者 “mutating dna is fun!” ,可以使用波浪號(hào)(~)。div[title~='dna']
dna
結(jié)尾的 title,如 “dontblamemeblamemydna” 或 “his-stupidity-is-from-upbringing-not-dna” ,剛可以使用$
標(biāo)志符:[title$='dna']
dna
開(kāi)頭的 title,如 “dnamutants” 或 “dna-splicing-for-all” ,剛可以使用^
標(biāo)志符:[title^='dna']
^
符號(hào)匹配可能太寬而無(wú)法滿足你的需要。 例如,可能不想選擇 “genealogy” 的標(biāo)題,但仍然選擇“gene”和“gene-data”。 管道特征(|)就是這樣,屬性中必須是完整且唯一的單詞,或者以-
分隔開(kāi)。[title|='gene']
dna
這個(gè)詞就行:[title*='dna']
a
標(biāo)簽,它有一個(gè) title
,并且有一個(gè)以“genes” 結(jié)尾的 class,可以使用如下方式:a[title][class$='genes']
<span class='joke' title='Gene Editing!'>What’s the first thing a biotech journalist does after finishing the first draft of an article?</span>
.joke:hover:after {
content: 'Answer:' attr(title);
display: block;
}
i
:[title*='DNA' i]
dna
, DNA
, dnA
等。input[type='email'] {
color: papayawhip;
}
input[type='tel'] {
color: thistle;
}
span.phone {
display: none;
}
a[href^='tel'] {
display: block;
}
a[href^='http']{
color: bisque;
}
a:not([href^='http']) {
color: darksalmon;
}
a[href^='http://']:after {
content: url(unlock-icon.svg);
}
a[href^='https://']:after {
content: url(lock-icon.svg);
}
PDF
和 DOC
非常有用。它還使得連續(xù)下載大量文件的工作流程更加容易。下載屬性的缺點(diǎn)是沒(méi)有默認(rèn)的視覺(jué)效果將其與更傳統(tǒng)的鏈接區(qū)分開(kāi)來(lái)。通常這是你想要的,但如果不是,你可以做類似下面的事情:a[download]:after {
content: url(download-arrow.svg);
}
a[href$='pdf']:after {
content: url(pdf-icon.svg);
}
a[href$='docx']:after {
content: url(docx-icon.svg);
}
a[href$='odf']:after {
content: url(open-office-icon.svg);
}
a[download][href$='pdf']:after {
content: url(pdf-icon.svg);
}
<div bgcolor='#000000' color='#FFFFFF'>Old, holey genes</div>
div[bgcolor='#000000'] { /*override*/
background-color: #222222 !important;
}
div[color='#FFFFFF'] { /*reapply*/
color: #FFFFFF;
}
em
中進(jìn)行擴(kuò)展和設(shè)置,以便在用戶更改默認(rèn)字體大小時(shí)可以正確地重新調(diào)整元素。<div style='color: #222222; margin: 8px; background-color: #EFEFEF;'
Teenage Mutant Ninja Myrtle</div>
div[style*='margin: 8px'] {
margin: 1em !important;
}
<input type='file' accept='pdf,doc,docx'>
[accept]:after {
content: 'Acceptable file types: ' attr(accept);
}
details
和summary
標(biāo)簽是一種只用HTML做擴(kuò)展/手風(fēng)琴菜單的方法,details
包括了summary
標(biāo)簽和手風(fēng)琴打開(kāi)時(shí)要展示的內(nèi)容。點(diǎn)擊summary
會(huì)展開(kāi)details
標(biāo)簽并添加open
屬性,我們可以通過(guò)open
屬性輕松地為打開(kāi)的details
標(biāo)簽設(shè)置樣式:details[open] {
background-color: hotpink;
}
href
的所有標(biāo)簽,添加偽元素,然后使用attr()
和content
打印它們。a[href]:after {
content: ' (' attr(href) ') ';
}
[title] {
position: relative;
display: block;
}
[title]:hover:after {
content: attr(title);
color: hotpink;
background-color: slateblue;
display: block;
padding: .225em .35em;
position: absolute;
right: -5px;
bottom: -5px;
}
accesskey
的能力,這樣就可以通過(guò)鍵組合和accesskey
設(shè)置的字母直接訪問(wèn)該項(xiàng)目(確切的鍵組合取決于瀏覽器)。但是要想知道網(wǎng)站上設(shè)置了哪些鍵并不是件容易的事:focus
。我不使用鼠標(biāo)懸停,因?yàn)榇蠖鄶?shù)時(shí)候需要accesskey
的人是那些使用鼠標(biāo)有困難的人。你可以將其添加為第二個(gè)選項(xiàng),但要確保它不是惟一的選項(xiàng)。a[accesskey]:focus:after {
content: ' AccessKey: ' attr(accesskey);
}
audio
標(biāo)簽,但是當(dāng)我使用它時(shí),我經(jīng)常忘記包含controls
屬性。 結(jié)果:沒(méi)有顯示任何內(nèi)容。 如果你在 Firefox,如果隱藏了音頻元素,或者語(yǔ)法或其他一些問(wèn)題阻止它出現(xiàn)(僅適用于Firefox),此代碼可以幫助你解決問(wèn)題:audio:not([controls]) {
width: 100px;
height: 20px;
background-color: chartreuse;
display: block;
}
alt
文本alt
文本的圖像是可訪問(wèn)性的噩夢(mèng)。只需查看頁(yè)面就很難找到它們,但如果添加它們,它們就會(huì)彈出來(lái)(當(dāng)頁(yè)面圖片加載失敗時(shí),alt文字可以更好的解釋圖片的作用):img:not([alt]) { /* no alt attribute */
outline: 2em solid chartreuse;
}
img[alt=''] { /* alt attribute is blank */
outline: 2em solid cadetblue;
}
script[src]:not([async]) {
display: block;
width: 100%;
height: 1em;
background-color: red;
}
script:after {
content: attr(src);
}
JavaScript
事件屬性的元素,以便將它們重構(gòu)到JavaScript文件中。這里我主要關(guān)注OnMouseOver
屬性,但是它適用于任何JavaScript事件屬性。[OnMouseOver] {
color: burlywood;
}
[OnMouseOver]:after {
content: 'JS: ' attr(OnMouseOver);
}
[hidden], [type='hidden'] {
display: block;
}
聯(lián)系客服