2013-10-21 50 views
2

所以我想在文档网页中使用pre标签。现在,我想要正确的语言在右上角。所以,这就是我想我可以这样做:attr(x)不能在CSS中工作

<pre class="code" language="Python"></pre> 

然后我可以使用afterattr(X)在CSS与language内容后,以填补伪:

pre.code:after{ 
    content: attr("language"); 
    position:absolute; 
    right:0; 
    top:0; 
} 

但是,这并不做任何事情!

如果我将attr("language")更改为"Python"它正常工作...为什么attr(X)在这里不起作用?

jsfiddle

+1

你应该比你自己编写的'data-'属性更喜欢。 –

+0

“language”属性无效。 HTML5 CR建议您使用'class = language-python',但如果您必须在CSS中使用可用的语言名称作为属性值,请使用'data-language = Python'。 –

+0

我明白现在......我实际上使用语言来简单地显示我的问题,所以它会更容易理解。使用类而不是属性的原因是什么......属性看起来像这样会更好 –

回答

2

不包括attr()表达式中的报价。使用attr(language)而不是attr("language")

UPDATED EXAMPLE HERE - 您的代码现在适用于该次要更正。

pre.code:after { 
    content: attr(language); 
} 

的详细信息,以为什么报价均不想使用见@BoltClock's comments below

+0

这是为什么?我一直认为引用是优先考虑的...... –

+1

@RyanSaxe当值包含空格时(例如'font-family:“Helvetica Neue”,“Comic Sans”;'),有时候需要引用引号,但是不存在一个包含空格的HTML属性名称。 –

+0

是的,我明白了,因为我一直认为,报价不会伤害,而不使用它们可以...我想它可以两种方式 –