Css 为什么<;div style=";宽度:50%“/&燃气轮机;不是在xHTML中呈现的吗?

Css 为什么<;div style=";宽度:50%“/&燃气轮机;不是在xHTML中呈现的吗?,css,xhtml-1.0-strict,xhtml,Css,Xhtml 1.0 Strict,Xhtml,为什么不在xHTML中呈现? 如果我只执行,则它将被渲染。我错过什么了吗? min width会有帮助吗? 我使用严格的XHTML1.0 是否可以仅使用CSS修复它,或者我必须更改html标记?因为DIV在XHTML或html中都不是自动关闭元素 必须将开始标记()与结束标记()配对 关于你问题的另一部分: <div style="width:50%">&nbsp;</div> <div style="width:50%"></div>

为什么
不在xHTML中呈现? 如果我只执行
,则它将被渲染。我错过什么了吗? min width会有帮助吗? 我使用严格的XHTML1.0


是否可以仅使用CSS修复它,或者我必须更改html标记?

因为
DIV
在XHTML或html中都不是自动关闭元素

必须将开始标记(
)与结束标记(
)配对

关于你问题的另一部分:

<div style="width:50%">&nbsp;</div>

<div style="width:50%"></div>

两者之间的区别在于,在第一个字符中,有一个不间断的空格字符填充
DIV
。在第二个世界里什么都没有。这就是为什么在第二个版本上看不到任何渲染


而且,XML和XHTML不是一回事。后者借用了在标记不是匹配对的一部分时自动关闭标记的约定。

XHTML中允许的自动关闭标记如下:

<area />
<base />
<basefont />
<br />
<hr />
<input />
<img />
<link />
<meta />




DIV必须同时具有开始和结束标记。

尽管在XHTML中通常应该避免使用自动关闭的
(因为它不会像传统HTML浏览器中所期望的那样进行解析),但这实际上与XHTML无关:这是一个布局问题

<div></div>

这是一个旧的IE5错误,空div仍然会以高度呈现,就好像它包含一行文本一样。当您使用标准模式doctype(无论您使用的是HTML还是XHTML,过渡还是严格),您都不会看到这种行为。

但从XML的角度来看,此标记是完全有效的。如果我执行
操作,它也不会呈现任何内容。如果在标记之间没有任何内容可呈现,则不会呈现任何内容。您也可以尝试添加
溢出:隐藏
div的
样式
,因为这样可以防止它在为空时崩溃。最小宽度在IE中没有帮助。如果您不以XML形式发送XHTML(使用应用程序/XHTML+XML MIME类型),则必须遵守HTML语法规则,HTML不支持
语法。只有真正的XHTML可以(并且真正的XHTML不会在IE中打开)。任何标记都可以在XHTML中自动关闭。您将真正的XHTML与允许将XHTML作为HTML发送到旧浏览器的兼容性黑客混淆了。
<div>&nbsp;</div>
<div style="width: 50%; height: 2em; background: red;"></div>