2013-12-23 21 views
5

我想显示属性的值作为文本。如何使用CSS将属性显示为文本?

<div title="12:56pm"> 
    <span data-measureme="1"> 

     <span>hi</span> 

    </span> 
</div> 

不工作example on jsFiddle

div > span:before { 
    content: parent.title; 
} 

事情是有可能与CSS做呢?如何/为什么?

关于浏览器兼容性,我只需要它在最新的Chrome和Firefox上运行。但是,如果有一种解决方案可以在任何浏览器上运行,那就好了。

+1

出于我自己的好奇心,为什么不使用JavaScript? –

+0

@CiaranBaselmans一个用法可以是自定义_userstyle_。 – BrunoLM

+1

如果你把标题放在范围上,那么你可以用attr() – Huangism

回答

7

有使用属性,只要您的CSS描述的一种方式。只需要使用:

content: attr(title); 

但是,你在你的代码遇到的问题是,你只能使用此功能attr()的元素被引用。在你的情况下,span没有title属性。您可能需要考虑重新编写代码以允许诸如此类的内容:

div:before { 
    content: attr(title); 
} 
+0

不应该有'div:before',而不是'div:after',以获得预期的渲染? –

+0

@ JukkaK.Korpela是的。接得好 –

1

我不认为你可以得到父母的属性,但你可以得到自己的属性:

<a title="Did this work..? " href="#">Yep, it worked</a> 

有了这个CSS:在

a:before { 
    content: attr(title); 
} 

结果(或者表现为.. 。):

<a title="Did this work..? " href="#">Did this work..? Yep, it worked</a> 

或检查我的小提琴:

http://jsfiddle.net/Milanzor/SxNf9/

1

试试这个:

div[title]:after { 
content: attr(title); /* no quotes around attribute name! */ 
} 

IE7不支持它

唯一机会是使用JavaScript/jQuery的。

Link