为什么在IE7中<max>的最大宽度不起作用?

Gra*_*ham 6 html css html-table

为什么"max-width"不适用于Internet Explorer 7中的表?max-width在其他元素上可用,并且似乎工作正常,但是当应用于表时,我无法使它做任何事情,即max-width简单地忽略规则.

<!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">
<head>
    <title>Foo</title>
</head>
<body>
    <div style="background-color: Red; max-width: 1000px;">
        <table style="background-color: Green; max-width: 500px;">

                <tr>
                    <td><a href="#" class="action view">View</a></td>
                    <td>7/20/2011</td>
                    <td>James Smith</td>
                    <td>345 NW 23rd Ave Gainesville, FL 32606</td>
                    <td>Alachua Blah blah sf jfh jsdhjs fjsh djkf sdjkhk</td>
                    <td>345621</td>
                    <td>Fred Smith</td>
                </tr>
        </table>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在Firefox中,表格被正确约束为500px,并且单元格内的文本以适当的方式中断(在单词之间,就像您期望的那样).然而,在IE7中,它就像应用了"无包装"规则.每个单元格都伸展到需要的位置,而不是试图破坏带有单元格的文本,整个表格只是伸出来忽略max-width规则.

我如何max-width在IE7中放一张桌子?(在Firefox和IE8中工作正常)

我尝试过的东西不起作用:

table { display: block; }

td { word-wrap: break-word; }

table { table-layout: fixed; }
Run Code Online (Sandbox Code Playgroud)

小智 11

WebKit浏览器会忽略为表设置的max-width属性,Chrome和Safari都会像IE7一样使表忽略最大宽度.我建议将max-width属性设置为包装元素,例如a div.

http://jsfiddle.net/P5YPR/1/