在我的网页上遇到问题,主页中的页脚没有针对某个特定页面正确显示.在那个页面上,我有一个
<div style="clear:both" /> 在底部.
在敲了一会儿之后,我看到我需要改变以使页脚正确显示的是将该行更改为:
<div style="clear:both"></div>
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这样写它会产生不同的结果.它们在语义上是不相同的吗?我检查并仔细检查了这是我做的唯一改变.在两者之间来回翻转会改变页脚的行为.
所以我的问题是......那些不相同吗?他们之间有什么区别?
编辑:奇怪的是,他们都在我们想要的页面上面的东西.我的意思是,在自我关闭的div标签的情况下,如果我完全删除它,页面肯定会做出反应,所以它必须用它做SOMETHING而不是完全忽略它.
小智 40
<div />不是有效的标记.不允许使用自动关闭标签.
您需要使用完整版<div></div>.
自闭式div标签没有任何意义,因为它会导致空div.大多数浏览器通常不会呈现空div.
Don*_*nut 31
根据HTML 4.01规范,第7.5.4节("分组元素:DIV和SPAN元素"):
开始标记:必需,结束标记:必需
因此,自动关闭<div>标记(如您指定的第一个示例:) <div />是无效的.
kdg*_*ory 11
这取决于您正在使用的DOCTYPE.
对于XHTML,它是XML,这两个标签是等价的.您可以通过将以下DOCTYPE之一添加为页面的第一行来向浏览器发出此信号:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Run Code Online (Sandbox Code Playgroud)
对于HTML 4.01,这是所有(?)浏览器在没有DOCTYPE时所假设的,某些标记必须表示为开放关闭.大多数块级标记都需要这样,包括非标记标记<SCRIPT>.如果您查看WDG HTML文档,您将看到特定标记是否需要打开 - 关闭,或者可以通过"syntax"项表示为空标记:
Syntax <DIV>...</DIV>
Run Code Online (Sandbox Code Playgroud)