HTML(11)div和span的比较

一、<div></div>和<span></span>

  1.<div></div>标签

   <div></div>标签可定义文档中的分区或节(division/section),从而把文档分割为独立的、不同的部分。<div></div>标签可以作为一种严格的组织工具,并且不使用任何格式与其关联,这其中包含一种HTML标记和表现样式相分离的思想。在实际工作中,我们通常为<div></div>标签指定 id 或 class 属性,使该标签会变得更加有效。<div></div> 是一个块级元素,这意味着它的内容自动地开始一个新行。并且实际上换行是 <div> 固有的唯一格式表现。

   下面这段 HTML 模拟了新闻网站的结构。其中的每对<div></div>标签 把每条新闻的标题和摘要组合在一起,也就是说,<div></div> 为文档添加了额外的结构。同时,由于这些 <div></div> 属于同一类元素,所以可以使用 class="news" 属性对这些<div></div>标签进行标识,这么做不仅为 <div></div> 添加了合适的语义,而且便于进一步使用样式对 <div></div> 进行格式化。

 1     <div class="news">
 2         <h2>
 3             News headline 1</h2>
 4         <p>
 5             some text. some text. some text...</p>
 6         ...
 7     </div>
 8     <div class="news">
 9         <h2>
10             News headline 2</h2>
11         <p>
12             some text. some text. some text...</p>
13         ...
14     </div>

  2.<span></span>标签

  <span> 标签被用来组合文档中的行内元素(inline elements)。

  <span style="color: Red">注意:</span>

 

二、块级元素和行内元素
  

   块级元素(block element)和行内元素/内联元素(inline element)是css中的概念,像<div></div>和<h1></h1>等元素常常被称为块级元素。这是因为这些元素显示为一块内容,即“块框”。与之相反,<span></span> 和 <strong></strong> 等元素称为“行内元素”,这是因为它们的内容显示在一行中,即“行内框”。

   块级元素和行内元素的概念并不是固定不变的,而是相对的。我们可以使用元素的 display 属性改变生成的框的类型。这意味着,通过将 display 属性设置为 block,可以让行内元素(比如 <a> 元素)表现得像块级元素一样;还可以通过把 display 设置为 inline 让生成的元素成为行内元素;甚至,我们可以把display属性设置为 none ,使元素根本没有框,这种情况,该框及其所有内容就不再显示,不占用文档中的空间。

1     <div id="dv1" style="display: block">
2         我是一个块级元素。
3     </div>
4     <div id="dv2" style="display: inline">
5         我是一个行内元素。
6     </div>
7     <div id="div3" style="display: none">
8         我是不可见的
9     </div>

 

三、<div></div>和<span></span>的比较

  1.相同点:<div></div>标签和<span></span>标签都是用来划分区间但是没有实际语义的标签;两者都是主要用于应用样式表。

  2.不同点:<div></div>标签属于块级元素,浏览器在它的前后会自动添加一个换行标签</br>;<span></span>标签属于内联元素,它的前后不会自动添加换行标签。

  如果在网页布局中要将某两个内容显示在同一行内,最简单的方法就是将它们用<span></span>标签包装起来。比如,一个页面有相邻的两个元素,一个是<div></div>,另一个是<span></span>。要想将它们显示在同一行,可以将这个<div></div>改为<span></span>。当然,也可以通过css将<div></div>等标签的display属性设置为 inline 来实现。

 

posted @ 2012-08-21 23:28  YunshiSun  阅读(2247)  评论(0编辑  收藏  举报