• XHTML标签的嵌套规则


      XHTML 的标签有许多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套也需要有一定规则,不能任由网站设计师的个人习惯胡乱嵌套——XHTML 必竟不是 XML。

      在 XHTML 的语言里,我们都知道:ul 标签包含着 li、dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确。但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1、div、p……那么这些标签的嵌套规则到底是怎样的?今天就来说说这个话题。

      提到 XHTML 标签的嵌套规则,我们先得知道有这么二类 XHTML 标签,一类叫做 块级元素(block),一类叫做 内嵌元素(inline,也有许多人叫它:内联、行内、线级等)。

      块级元素 和 内嵌元素 的划分标准很简单,请把下面二行代码放进 body 标签里:

    <div style=”border: 1px solid red;”>div1</div>
    <div style=”border: 1px solid red;”>div1</div>

    浏览器的呈现效果:

    div1
    div1

      页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其他设置,否则谁都不挨着谁,它们都很霸道的占领属于自己的那一行空间——但凡看到某个标签有此现象,你就可以叫它:块级元素(block)

      再把下面二行代码也放进 body 标签里:

    <span style=”border: 1px solid red;”>span1</span>
    <span style=”border: 1px solid red;”>span2</span>

      浏览器的呈现效果:

    span1 span1

      这一次,两个 span 并列在一行,它们之间睦邻友好、亲切和谐……像这样的标签行为,我们可以称它们为:内嵌元素(inline);

    块级元素和内嵌元素的区别:

      · 块级元素 一般用来搭建网站架构、布局、承载内容……像这些大体力活都属于块级元素的,它包括以下这些标签:

    div、ul、li、dl、dt、dd、h1~h6、p、address……

      · 内嵌元素 一般用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等,下面这些标签都属于内嵌元素:

    a、span、strong、sub、sup、img……

      · 块元素 和 内嵌元素 是可以互相转换的,转换的代码如下:

    display: block; /* 转成块元素 */

    display: inline; /* 转成内嵌元素 */

      · 块元素 和 内嵌元素 对于 CSS 的调用规则是不一样的(这篇文章讨论的是标签嵌套,所以对这个知识点不展开说明)。

      简单认识了块元素和内嵌元素以后,下面就可以罗列 XHTML 标签的嵌套规则了:

      1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素

    <div><h1></h1><p></p></div> —— 对
    <a href=”#”><span></span></a> —— 对
    <span><div></div></span> —— 错

      2. 块级元素不能放在<p>里面

    <p><ol><li></li></ol></p> —— 错

    <p><div></div></p> —— 错

      3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:

    h1、h2、h3、h4、h5、h6、p、dt。

      4. li 内可以包含 div 标签 —— 这一条其实不必单独列出来的,但是网上许多人对此有些疑惑,就在这里略加说明:

      li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 都可以容纳的,为什么有人会觉得 li 偏偏容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴……

      5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:

    <div><h2></h2><p></p></div> —— 对
    <div><a href=”#”></a><span></span></div> —— 对

    <div><h2></h2><span></span></div> —— 错

      先总结到这里,以后如有新的发现,随时更新。

  • 相关阅读:
    计算机网络——浅析TCP粘包,拆包发生的原因以及解决方式
    计算机网络——谈谈HTTP中GET与POST的区别
    浅析Cookie、Session以及Token机制
    说说红黑树——不谈操作,只讲理解
    设计模式(1)——单例模式详解
    【转载】二叉排序树和平衡二叉树详解
    深入理解Java中方法重载的实现原理
    真win10官方原版ISO下载方法
    我的Windows装机必备软件与生产力工具
    Caffe源码理解3:Layer基类与template method设计模式
  • 原文地址:https://www.cnblogs.com/newmin/p/1958059.html
Copyright © 2020-2023  润新知