2013-10-21 74 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

是的,我明白了,因爲我一直認爲,報價不會傷害,而不使用它們可以...我想它可以兩種方式 –