Xhtml 代码未在严格模式下运行

Xhtml 代码未在严格模式下运行,xhtml,Xhtml,有人能解释为什么TD元素在严格模式下不允许使用宽度。这是代码[由于HTML呈现问题,无法放置代码。] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/xml+xhtml; charset=utf-8

有人能解释为什么TD元素在严格模式下不允许使用宽度。这是代码[由于HTML呈现问题,无法放置代码。]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
 <meta http-equiv="Content-Type" content="text/xml+xhtml; charset=utf-8"/>
</head>
<body>
<table>
<tr>
    <td width="200">First</td>
    <td>Second</td>
</tr>
</table>

</body>
</html>

弗斯特
第二

即使根据规范已弃用,浏览器仍将应用它,因为您指定了它。对于旧文档,如果它没有应用属性,则可能会破坏布局,因此必须对其宽大处理。

因为您指定了它,浏览器将应用它,但您的文档不会验证。

您的doctype(HTML 4.01)与您的内容类型不匹配

内容类型应该是
application/xhtml+xml
,而不是
text/xml+xhtml
,并且您的web服务器也应该这样服务您的页面,以便符合标准的浏览器严格对待它(即,如果文档无效,则无法呈现文档)。另外,正如Alohci所说,您需要为XHTML规范包含一个XML名称空间

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


否则,浏览器将按照您告诉他们的方式进行渲染,忽略标准,尽管如果您尝试验证这一点,它仍然会失败。

我做了所有建议,但它仍然采用宽度属性。我认为这是因为浏览器现在必须支持它,但未来的浏览器会在这样的代码上抛出错误

为什么要对XHTML文档使用HTML 4.01 doctype?我不相信meta标记会让浏览器将文档解释为XHTML。需要从该类型的web服务器提供服务。一旦它被解析到足以读取meta标记,它就太晚了。当然,如果OP这样做,它仍然会失败,因为在任何地方都没有指定XHTML名称空间。