2011-03-27 52 views
2

我必须获得所需元素的CSS属性(属性可以被继承了它的父)的jQuery的.css(“文字修饰”)不从父母的工作

斯坦达特的jQuery的.css()可以做到这一点。

所以我有这样的HTML:

<div id="container"> some text<br> 
     <span id="some">Our element</span> 
    <br> some text 
</div> 

<div id="result"> 
</div> 

CSS:

#some { 
    font-weight:bold; 
} 

#container { 
    text-decoration: underline; 
    color: rgb(0,255,0); 
    font-size: 32px; 
} 

和jQuery代码:

$(function() { 
    var decor = $("#some").css('text-decoration'); 
    var weight = $("#some").css('font-weight'); 
    var color = $("#some").css('color'); 
    var size = $("#some").css('font-size'); 
    var result = "<br><b>our object's own property:</b>" 
    result += "<br>font-weight:" + weight + "<br>"; 
    result += "<br><b>inherited properties:</b><br>"; 
    result += "color: " + color + "<br>font-size: " + size + "<br>text-decoration: " + decor; 

    $("#result").html(result); 
}); 

的所有属性都显示,但是文字修饰 - 不是。但为什么? http://jsfiddle.net/aQYs2/

回答

4

文本装饰的定义与继承:CSS的规格内没有,但您使用其他属性的例子里面定义与继承:是

参见:http://www.w3.org/TR/CSS2/text.html#propdef-text-decoration

所以一切工作真的很好:)

+0

是的,比它的工作真的很好。 – 2011-03-27 11:55:35

+0

难道你不知道文字装饰的替代方案:下划线。还有什么其他的CSS属性可以在没有文字修饰的情况下进行下划线?因为我需要继承=) – 2011-03-27 11:56:39

+0

否,但'#container * {text-decoration:inherit;}'应该这样做。 – 2011-03-27 12:00:44