有没有办法选择可能包含文字的元素?
这样的事情:
*:text {
font-size: 12px;
}
我想将它用于我的reset.css
,但我找不到如何操作的方法,所以现在我使用这段代码:
* {
font-size: 12px;
}
此解决方案适用于所有基于文本的元素(例如STRONG,P,A等),但它也将此样式应用于非文本元素,如IMG,OBJECT等。
所以我想知道是否有其他解决方案为所有基于文本的元素设置CSS属性,但没有别的。
答案 0 :(得分:3)
如果您只想设置img
,object
等元素的样式,那么最简单的解决方案是直接在您的CSS中引用这些元素。
值得的是:empty
选择器(伪类)。它不是你想要的,但它选择没有子元素的元素,包括文本节点。当然,它会涵盖img
,但也是空的(原文!)p
。旧浏览器可能不支持它。
答案 1 :(得分: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;
}
答案 2 :(得分:1)
我认为没有一种特定的方法可以使用伪选择器定位基于文本的元素,但这是了解伪类的更多信息的好地方: http://www.w3.org/TR/CSS2/selector.html#pseudo-class-selectors
这是一篇关于重置的好文章: http://www.css-reset.com/
创建CSS重置的一个很好的资源: http://www.cssreset.com/