2011-06-16 73 views
0
<html> 
<head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script> 
    <script> 
    $(function() { 
     var elements = $("*").filter(function() { 
      return $(this).css("font-weight") == "700"; 
     }).append("Yes it has 'font-weight'"); 
    }); 

    </script> 
</head> 
    <body> 
     <b>Bold text</b> 
    </body> 
</html> 

「b」標籤附加了文本是的,它具有'font-weight'即使它實際上並沒有這個CSS屬性。有人可以告訴我爲什麼以及如何避免這種情況嗎?爲什麼jQuery匹配甚至沒有指定CSS屬性和值的元素?

回答

3

b標記隱含地具有700的字體權重,因爲它是粗體文本的默認字體權重。這是它的默認值,除非你改變它。

我不認爲有一種方法可以確定樣式表中是明確設置了CSS屬性還是通過瀏覽器將其設置爲其默認值。唯一的'解決方案'(儘管我首先想知道實際問題是什麼)將會改變樣式表中'b'和'strong'標籤的字體權重。

+0

我非常感謝你的答案! – Teiv 2011-06-17 01:46:56

1

<b>標籤確實有樣式(除非您明確將其刪除)。

許多HTML標籤都具有瀏覽器應用的默認樣式,如<h1>,<i><b>。選擇器是正確的。

爲了擺脫默認樣式(重置頁面完全,以便它沒有任何樣式,即使瀏覽器默認),您可以包括一個CSS重置。

雅虎慷慨地提供了一個很好的:http://yui.yahooapis.com/3.3.0/build/cssreset/reset-min.css

相關問題