是否可以通过CSS 3使用文本内容设置元素中文本的颜色?

时间:2011-10-19 23:22:26

标签: css css3

好的,所以这更像是一个有许多不是CSS的解决方案的问题,但我正在寻求从理论的角度来做更多的事情。我有一个应用程序,但不值得以任何其他方式编写它。

(有趣)问题

如何使用元素的文本为元素的文本着色?我有一个元素,它都是自己的,它将包含一个颜色的十六进制值,我希望文本是那种颜色,但我想只使用CSS(可能只能使用CSS 3)。

示例HTML

<div class="color_contents">#0000FF</div>

所以,我尝试使用attr()但没有成功,但我不确定我是否使用了正确的内容(我已尝试texttextContentinnerText无济于事。不需要跨浏览器,只是一种完成它的方法。

3 个答案:

答案 0 :(得分:3)

目前,没有办法使用CSS来访问元素的文本内容,即使使用今天的CSS3模块也是如此。

关于这个:

  

所以,我尝试使用attr()但没有成功,但我不确定我是否使用了正确的内容(我已尝试texttextContentinnerText无济于事。不需要跨浏览器,只是一种完成它的方法。

attr()仅查看元素属性(foo="bar")。由于文本内容不是HTML元素的属性(尽管是相应DOM对象的成员),因此无法使用该函数进行查询。

访问元素的文本内容没有类似的功能。

答案 1 :(得分:2)

你可以这样做。它有点hacky,但所有的CSS

div.color_0000FF:before{
    color:#0000FF;
    content: "#0000FF";
}

HTML

<div class="color_0000FF"></div>

示例:http://jsfiddle.net/s8vLy/

答案 2 :(得分:1)

content / attr CSS属性只能与:before:after伪元素一起使用。

CSS3将支持attr访问其他媒体资源,请参阅https://developer.mozilla.org/en/CSS/attr

但是当/如果CSS3 attr上线,你仍然无法从CSS访问元素的“内容”,因为那不是CSS的设计目的。

底线,使用javascript:)