2011-06-05 62 views
3

這裏是我的代碼:這是符合標準的結果嗎?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:acid="http://acid/"> 

<head> 

    <title>Acid4 Test</title> 

    <link rel="stylesheet" type="text/css" href="acid4.css" /> 

</head> 

<body> 

<h1><acid:textGradient></acid:textGradient>Acid<span>4</span></h1> 

</body> 

</html> 

和樣式表:

@font-face { 
    src: url('syncopateBold.ttf'); 
    font-family: Syncopate; 
    font-weight: bold; 
    font-style: normal; 
    font-variant: none; 
} 

@font-face { 
    src: url('syncopate.ttf'); 
    font-family: Syncopate; 
    font-weight: normal; 
    font-style: normal; 
    font-variant: none; 
} 

* { 
    margin: 0; 
    padding: 0; 
} 

body > *:first-child { /* our title */ 
    font-family: Syncopate; 
    font-size: 4em; 
    font-weight: bold; 
    margin: 0; 
    text-shadow: 0 0 10px black; 
    text-transform: lowercase; 

    *color: blue; 
    _color: red; 
} 

body > *:first-child > span { /* The 4 in Acid4 */ 
    color: white; 
    font-weight: normal; 
    font-size: 200%; 
    vertical-align: sub; 
    z-index: 999; 
} 

acid\:textGradient:empty { 
    background: url('textGradient.png') repeat-x; 
    display: block; 
    height: 31px; 
    margin-top: 50px; 
    position: absolute; 
    width: 210px; 
} 

。下面是結果我收到了谷歌瀏覽器:

Acid4 test result on Google Chrome

這是我的期望。然而,火狐和IE9顯示此:

Acid4 test result on Firefox and Internet Explorer 9

我想知道,哪一個是符合標準的結果呢?

字體可以在這裏找到:http://www.google.com/webfonts/family?family=Syncopate&subset=latin和textGradient.png只是一個漸變圖像。

+0

快速提示:您可以從'*:first-child'中刪除'*',這是多餘的。 – BoltClock 2011-06-06 01:27:46

回答

5

儘管人爲設計的例子(所有「酸」的東西都是完全不相關的),但這實際上是一個關於垂直對齊的問題,尤其是vertical-align:sub。據我所知,css2.1和css3都沒有定義vertical-align:sub應該移動多少文本。他們只是說

下框的基線到合適的位置的 父盒標。 (該值對 元素文本的字體尺寸沒有 效果。)

所以沒有標準,Chrome已經只是選擇了不同的值,以Firefox瀏覽器。

我建議使用類似vertical-align: -10%;的東西代替。

0

我敢肯定,acid:xmlns應該是xmlns:acid

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:acid="http://acid/"> 
<head> 
    <title>Acid4 Test</title> 
    <link rel="stylesheet" type="text/css" href="acid4.css" /> 
</head> 
<body> 
<h1><acid:textGradient></acid:textGradient>Acid<span>4</span></h1> 
</body> 
</html> 

當然,我假設xmlns:acid實際上不是"http://acid/",因爲這涉及到用戶的本地 localhost上。

+0

......這並不重要,是嗎?無論如何修復。 – Ryan 2011-06-05 22:30:04

+0

@minitech:它從有效性的角度出發。你只是不要用'[ns]:xmlns'聲明XML命名空間屬性,你可以這樣做:'xmlns:[ns]' – BoltClock 2011-06-05 22:35:09

+0

@minitech是'xmlns:acid'的實際值'http:// acid /'' ,或者你只是用佔位符替換實際值? – mc10 2011-06-05 22:36:59