╋艺 镇╋╋网站网络|程序语言|Flash╋┣◇网站建设&Web语言 → HY1005: IE6 IE7 IE8(Q) 会忽略 LI DD DT 元素的结束标记


  共有14910人关注过本帖平板打印复制链接

主题:HY1005: IE6 IE7 IE8(Q) 会忽略 LI DD DT 元素的结束标记

美女呀,离线,留言给我吧!
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27515 威望:0 精华:7 注册:2003/12/30 16:34:32
HY1005: IE6 IE7 IE8(Q) 会忽略 LI DD DT 元素的结束标记  发帖心情 Post By:2015/2/10 17:04:28 [只看该作者]

标准参考

根据 W3C HTML 4.01 规范中对HTML中的列表元素进行了详细的描述,其中将列表分为三类:

  • 无序信息列表,使用 UL 元素创建,列表项由 LI 元素构成;
  • 有序信息列表,使用 OL 元素创建,列表项由 LI 元素构成;
  • 定义列表,使用 DL 元素创建,通常由一系列的 "项/定义" 对(term/definition pairs)组成,即 DT 元素和 DD 元素。

任何列表必须包含一个或多个列表元素。

关于列表的详细信息,请参考 HTML 4.01 规范 10 Lists 中的内容。

问题描述

IE6 IE7 IE8(Q) 会忽略 LI DD DT 元素的结束标记,并且位于同一个父元素内的 LI 元素在文档树中会前后相连,位于 LI 元素之后的元素1会被修复到其前面最近的 LI DD DT 元素内,成为该 LI DD DT 元素的子元素。

注 1: 所指元素不包括 LI、DD、DT、HTML、HEAD、BODY、TITLE 等。

造成的影响

对 LI DD DT 元素之后出现的非列表元素处理在不同浏览器中导致布局上的差异。

受影响的浏览器

IE6 IE7 IE8(Q) 

问题分析

根据 HTML4.01 规范可知,LI DD DT 元素只应存在于其对应的 UL OL DL 元素中,而由 UL OL DL 元素创建的列表从 HTML 规范的定义上说不应该包含具有其他意义的非列表元素 ('display' 不为 'list-item' ),但在实际中,经常会碰到诸如 DIV SPAN 甚至文本内容被放置在 LI 元素之后。

分析以下代码:

<!DOCTYPE html>
<html>
<head>
<style>
  * { margin:0; padding:0; }
  li { list-style-type:none; }
</style>
</head>
<body>
<div style="width:200px;">
<li>li A</li>
<li style="border:1px solid black;">li B</li>
<span style="background:gray;">CCC</span>
<li>li C</li>
</div>
<br />
<div style="width:200px;">
<dd>dd A</dd>
<dd style="border:1px solid black;">dd B</dd>
<span style="background:gray;">CCC</span>
<dd>dd C</dd>
</div>
<br />
<div style="width:200px;">
<dt>dt A</dt>
<dt style="border:1px solid black;">dt B</dt>
<span style="background:gray;">CCC</span>
<dt>dt C</dt>
</div>
</body>
</html>
[此贴子已经被作者于2015-2-10 17:06:52编辑过]


  
平面设计、网站建设、三维动画、视频制作 联系QQ:114103945  回到顶部