2014-01-10 50 views
4

有什麼方法可以選擇可能包含文本的元素嗎?與每個可能包含文本的元素相匹配的CSS選擇器?

事情是這樣的:

*:text { 
    font-size: 12px; 
} 

我想用我reset.css,但我不能找到一種方法如何做到這一點,所以現在我用這個代碼:

* { 
    font-size: 12px; 
} 

該解決方案適用於所有基於文本的元素(例如STRONG,P,A等),但它也適用於非文本元素,如IMG,OBJECT等。

所以我想知道是否有任何其他解決方案爲所有基於文本的元素設置CSS屬性,但沒有別的。

+0

有趣的問題。但是,您的目的是什麼?簡單地使用*,html或body選擇器不會做你需要的嗎? –

+0

您可以在其他元素上設置字體大小:'* {font-size:12px;} img,object等{font-size:something else;}'或者特別指定包含文本的元素:' p,strong等等{font-size:12px;}'而不是使用通用選擇器 – brouxhaha

+0

你想完成什麼?大部分時間繼承將爲你完成這項工作。所以只需爲'body'設置一個'font-size'。如果你真的想要每個文本元素都有特定的'font-size'(也是'h1','h2'等),你將不得不在選擇器中指定它們。 – lukasgeiter

回答

2

您無法定位基礎上,它其實包含文本或不使用CSS的元素選擇。另一方面,您可以查看設置文本所需的全局字體大小或樣式的最佳方式。

與你已經有了,

* { 
    font-size: 12px; 
} 

這是分配樣式應用於DOM中的一切。你可能不會這樣想,但它會將它應用到你的頭部,主體,html和頁面上的任何標籤。有幾個選項可以解決這個問題,我會列出它們從最好到最差。

html, body { /* this allows the children to inherit this style */ 
    font-size: 12px; 
} 

body * { /* assigns this style to every tag inside of your body tag */ 
    font-size: 12px; 
} 

p, span, a, etc { /* you decided what tags would most likely contain text to apply that style */ 
    font-size: 12px; 
} 

* { /* the worst option, applying that style to every tag */ 
    font-size: 12px; 
} 
3

如果你只是想風格元素像imgobject之類那麼最簡單的解決方法是引用元素直接在你的CSS。

值得一提的是:empty選擇器(僞類)。這不完全是你想要的,但它選擇沒有子元素的元素,包括文本節點。所以它會覆蓋img,當然,也是空的(原文如此!)p。舊版瀏覽器可能不支持它。

+2

用於在盒子外思考的+1。 –

相關問題