2014-01-10 29 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。 –

相关问题