2009-07-23 42 views
0

好奇怪的現象:jQuery的DOCTYPE CSS錯誤 - Quirks模式時,它應該工作

的問題是,如果我不聲明DOCTYPE的CSS在IE 6 & 7工作,但如果我聲明DOCTYPE不起作用。爲什麼???

的jQuery:

$('tr:first-child').children().css({ 
    'width': settings.minWidth + 'px', 
    'height': settings.tableHeaderHeight + 'px', 
    'overflow': 'hidden', 
    'white-space': 'nowrap', 
    'color': 'blue' 
}); 

HTML w/ DOCTYPE - 請Firefox和IE 6 & 7查看看錶頭差

HTML wo/ DOCTYPE - 請Firefox和IE 6 & 7查看看錶頭區別

DOCTYPE我聲明:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

所以經過有用的評論後,我發現當我不添加DOCTYPE時,我正在使用怪癖模式,這是我想要的CSS效果,但是使用DOCTYPE,呃!

任何工作?建議?

解決方案,是啊!

jQuery的

// This adds a div tag around the table header text 
// - IE white-space bug in standard mode 
$('table.className tr th').wrapInner(
    "<div class='ie_correct_header_whitespace'></div>" 
); 

CSS

.ie_correct_header_whitespace { 
    white-space: nowrap; 
} 
+0

您聲明瞭哪種DOCTYPE? – wtaniguchi 2009-07-23 18:56:39

+0

已被添加到帖子中,thnx :) – 2009-07-23 18:58:08

回答

4

首先,我認真建議您使其在標準模式下工作。依靠怪癖模式,使任何佈局「正常工作」不是一個非常健康的方法。

你可以將你的內容封裝在一個塊元素中,比如說一個DIV元素,然後把你的DIV放到你的表頭中。 在標準模式下,應該遵循溢出和寬度的方式,從而爲您提供所需的效果。

相關問題