语义化HTML:ul、ol和dl

一、语义化元素                          

  1. ul标签

     W3C草案:

The ul element represents an unordered list of
items; that is, a list in which changing the order of the items would
not change the meaning of list.W3C specification   

     语义化<ul>元素:表示包含一组无序列表项内容。

     在不同的浏览器默认样式均有所不同

   
列表项有一些特定的CSS属性:list-style-type(列表项前的图标类型)、list-style-position(列表项前的图标的位
置,值范围:outside(默认)和inside)和list-style-image(将图片作为列表项前的图标)。

   其中list-style-type的值范围及效果如下(有些浏览器下部分类型无法显示)

   而list-style-image在各浏览器下存在不同程度的bug,因此多数采用在li元素下添加background-image的方式模拟。

 

  2. ol标签

     W3C草案:

The ol element represents a list (or sequence)
of items; that is, a list in which the items are intentionally ordered,
such that changing the order would change the meaning of the list.W3C specification

     语义化<ol>元素:表示包含一组有序列表项内容,若改变列表项顺序则会改变整体的含义。

     HTML5中为ol标签添加了reversed(布尔类型,表示列表是上升还是下降排序)和start(整数类型,设置有序列表的起点)属性。

  3. dl标签

  W3C草案:

The dl element represents a description list.W3C specification

      语义化<dl>元素:表示包含一组定义列表项内容。内部包含1到N个子元素<dt>用于标识定义列表项,一个<dt>元素可对应0~N个表示定义列表项描述的<dd>元素。示例:

<dl>
<dt>前端技术点</dt>
<dd>HTML</dd>
<dd>CSS</dd>
<dd>JavaScript</dd>
<dt>Java开发</dt>
<dd>Java Web</dd>
</dl>

二、 浏览器差异                          

以下内容均来自张鑫旭的《HTML CSS列表元素ul,ol,dl的研究与应用

1. li标签添加display:block后

在Internet Explorer 8, Opera 9, Chrome, Firefox 2 & 3, and Safari下,添加display:block会让有序或无序列表中li元素的项目编号消失。

 

但在IE6和IE7下,添加display:block项目符号依旧存在:

2. li标签添加float:left后

在IE6和IE7下,给列表项目(没有其他样式)添加float:left将会使列表项水平对齐,同时项目符号(或项目编号)消失。如下图所示,截自IE7浏览器

IE8和其他所有浏览器下,列表项会水平对齐,但是项目符号(或项目编号)仍然可见。

当列表项浮动的时候,我们必须记住另外一个要点,就是列表容器(ul元素)在内部仅有浮动元素时会死翘翘,这在所有的浏览器下都会以相同的方式发生,添加overflow:hidden是解决此问题的方法之一。

为了能在不同浏览器下达到大致相同的float:left效果,最好的方法是是使用display:inline。

3. IE下有"Layout"的有序列表

在IE6和IE7下,如果有序列表中的列表项有“Layout”,则有序列表的数值将不会增加,显示为“1”,如下图所示:

 

hasLayout属性不能被直接设置,但是如果一个元素设置了宽高,浮动,绝对定位等待就会改变haslayout。

4. IE6&7下的padding和margin

在大部分的浏览器下,为了移除项目符号或项目编号,让内容左侧对齐显示,需要设置左padding为0,但是这在IE6和IE7下并不管用,在IE6,7下需要设置左margin为0取而代之。见下图:

针对这些差异,我们可以通过css reset来最小化浏览器默认样式的差异。

时间: 2024-08-04 11:12:56

语义化HTML:ul、ol和dl的相关文章

DIV CSS网页布局中常用的列表元素ul ol li dl dt dd释义

核心提示:DIV CSS网页布局中常用的列表元素ul ol li dl dt dd释义 ol 有序列表 <ol><li>--</li><li>--</li><li>--</li></ol> 表现为 1--2--3-- ul 无序列表,表现为li前面是大圆点而不是123 <ul><li>--</li><li>--</li></ul> 很多人容

网页布局中常用的列表元素ul ol li dl dt dd讲解

网页 DIV CSS网页布局中常用的列表元素ul ol li dl dt dd释义,块级元素div尽量少用,和table一样,嵌套越少越好 ol 有序列表. <ol><li>--</li><li>--</li><li>--</li></ol> 表现为: 1--2--3-- ul 无序列表,表现为li前面是大圆点而不是123 <ul><li>--</li><li>-

div+css布局必了解的列表元素ul ol li dl dt dd详解_经验交流

块级元素div尽量少用,其实和table一样,嵌套越少越好,它也是会影响速度的! ol 有序列表. <ol> <li>--</li> <li>--</li> <li>--</li> </ol> 表现为: 1-- 2-- 3-- ul 无序列表,表现为li前面是大圆点而不是123 <ul> <li>--</li> <li>--</li> </ul&

CSS命名的语义化和html5为语义和体验而生

文章简介:html5–为语义和体验而生. 开篇前的一些YY 曾几何时,一个人出设计稿,出完设计稿打开DW用拖出一个页面,再苦逼一点拖完页面后自己还要写后台,武林人称:美工.更苦逼的是当每一次需求变更后,去修改一大堆发麻的 ,于是"div+css"被搬上了互联网时代的舞台,一夜间N多的<DIV+CSS>葵花宝典横空出世,那时,我们活在了div+css的年代,那时,我们用上了 之后,腰不酸,腿不痛,加班也带劲了. YY结束,切入正题 Ghost曾在2年前就以<页面重构中的

语义化你的HTML标签和属性

语义化你的HTML标签和属性 分离结构与表现的另一个重要方面是使用语义化的标记来构造文档内容.一个 XHTML 元素的存在就意味被标记内容的那部分有相应的结构化的意义,没有理由使用其他的标记.换句话说,不要让 CSS 使一个 HTML 元素看起来就像另一个 HTML 元素,比如用<div>来代替<p>标记标题. 首先是关于语义(Semantics)和默认样式的区别,默认样式是浏览器设定的一些常用tag的表现形式,个人认为他的主要目的就是让大家直观的认识标签(markup)和属性(a

学习网页应知:HTML标签和属性的语义化

网页 分离结构与表现的另一个重要方面是使用语义化的标记来构造文档内容.一个 XHTML 元素的存在就意味被标记内容的那部分有相应的结构化的意义,没有理由使用其他的标记.换句话说,不要让 CSS 使一个 HTML 元素看起来就像另一个 HTML 元素,比如用<div>来代替<p>标记标题. 首先是关于语义(Semantics)和默认样式的区别,默认样式是浏览器设定的一些常用tag的表现形式,个人认为他的主要目的就是让大家直观的认识标签(markup)和属性(attribute)的用途

网页制作基础:HTML标签和属性的语义化

网页 分离结构与表现的另一个重要方面是使用语义化的标记来构造文档内容.一个 XHTML 元素的存在就意味被标记内容的那部分有相应的结构化的意义,没有理由使用其他的标记.换句话说,不要让 CSS 使一个 HTML 元素看起来就像另一个 HTML 元素,比如用<div>来代替<p>标记标题. 首先是关于语义(Semantics)和默认样式的区别,默认样式是浏览器设定的一些常用tag的表现形式,个人认为他的主要目的就是让大家直观的认识标签(markup)和属性(attribute)的用途

代码语义化提高网站对搜索引擎的友好度

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近几日多用了点心在工作室小站--悠然天空工作室(L-SKY.STUDIO)上面,以前一直不重视它主要是因为客户几乎都是来自线下,弄个小站的目的仅仅是给自己一个空间,"为所欲为"罢了!回到家20多天了,前期一直在弄团队博客--青裝营销策划机构,百度已经开始收录了,希望过年这段时间大家也别放松,多多给力才好! 这几天给工作室的

网页的HTML结构进行重构:语义化标签的意义

文章简介:语义化标签的实战意义. 我收集到一些观点,大家姑且先听上一听,有人说:"没必要考虑语义化,只要我写的代码浏览器运行后没问题就行,反正领导根本不关心这些""语义化是w3c推广的,我是很想语义化我的代码,但总是用不明白""这个不好说,语义化再好有啥用,关键是有好的项目,客户才是金主!""除了专业人士,谁会去看我们的代码是不是语义化的" 不仅仅有页面重构人员的声音,也听一听工程师.设计师.还有项目管理人员,他们是怎么看&q