2011-12-13 75 views
9

我想在表格中顯示文本,並且當它寬於150像素時我想剪切它,但我不想固定寬度的表格單元格(如果沒有文字,寬度將爲0px)。一切工作在IE9,Firefox,Chrome,Opera但不在IE8中。在IE8IE 8溢出:隱藏和最大寬度

代碼示例:

enter image description here

代碼示例在Chrome:

enter image description here

下面的代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<style> 
td, span { 
    border: 1px solid red; 
    max-width: 150px; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 

span { 
    border: 1px solid green; 
    display: block; 
} 
</style> 
</head> 
<body> 
<table> 
<tr> 
    <td><span>Works in Firefox, Chrome, Opera, IE 7/9 (but not in IE 8)</span></td> 
    <td>Works in Firefox, Chrome (and Opera but no dots)</td> 
    <td style="display: block">Works in Firefox, Chrome and Opera (with dots)</td> 
</tr> 
</table> 
</body> 
</html> 

有可能這樣做沒有任何JavaScript或設置固定寬度?

+0

坦率地說,如果我是你,我會發送一個JavaScript警報,當有人用IE8打開你的頁面。不要打擾你的頁面與多功能的IE瀏覽器兼容,這是微軟的錯,不是你的。 – ApprenticeHacker

+0

關於第一個單元格,它似乎不適用於IE7。恐怕它只能在IE9中運行。 –

+0

@IntermediateHacker根據CSS 2.1規範,max-width對錶格單元格的影響是未定義的。規範是錯誤的,而不是微軟。 – ZippyV

回答

5

不幸的是,IE7和IE8對max-width css規則有很好的支持。所以不,如果沒有JavaScript或固定寬度,你將無法可靠地完成這項工作。如果有幫助,你的代碼是假設在IE 7+中工作。

但是你可以通過規則後,增加一個條件CSS規則,使其成爲這兩個瀏覽器只固定寬度您有以上:

<!--[if lte IE 8]> 
    <style> 
    td, span { 
     width: 150px; 
    } 
    </style> 
<![endif]--> 

當你以後移動你的CSS到外部文件,你會的當然,改變的鏈接標籤:

<!--[if lte IE 8]> 
    <link rel="stylesheet" type="text/css" href="ie8.css" /> 
<![endif]--> 

或者,您也可以檢測到IE 7和8 javascript和用戶重定向到這個頁面:http://www.mozilla.org/de/firefox/new/

+0

maxWidth是在Windows Internet Explorer 7中引入的。 – ZippyV

+0

是的,這是絕對正確的,我會進行更正。然而,在這個問題的代碼演示中,它在IE 7和8中是非常錯誤的。我親眼目睹了這一點(在IE 7/8中)在一臺計算機上工作,但沒有在另一臺計算機上工作。正如洛倫佐指出的那樣,它也不適合他。這很可能是依賴於更新的,但不管什麼原因,顯然這些瀏覽器都不依賴它。 – Donamite

相關問題