zoukankan      html  css  js  c++  java
  • HTML标签嵌套规则

    摘要:

       最近在整理项目时发现有些同事写的页面代码嵌套的太多,而且有些嵌套不对,比如<a><div>内容</div></a>。虽然功能实现了,但是对于浏览器渲染引擎的性能还是有些影响。所以就大体上的整理了下HTML标签的嵌套规则,也希望读者提出不对之处。

    众所周知,HTML标签有两类:

    1. 块级元素
      div、h1~h6、address、blockquote、center、dir、dl、dt、dd、fieldset、form、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul ...
      特点:总是在新行上开始,高度、行高以及顶和底边距都可控制,宽度缺省是它的容器的100%,除非设定一个宽度
      功能:主要用来搭建网站架构、页面布局、承载内容
    2. 行内元素
      span、a、abbr、acronym、b、bdo、big、br、cite、code、dfn、em、font、i、img、input、kbd、label、q、s、samp、select、small、strike、strong、sub、sup、textarea、tt、u、var ...
      特点:和其他元素都在一行上,高、行高及顶和底边距不可改变,宽度就是它的文字或图片的宽度,不可改变
      功能:用于加强内容显示,控制细节,例如:加粗、斜体等等

    举个例子:

    • 块级元素

      <div>one</div><div>two</div>

      显示效果如下:

      one

      two

    • 行内元素

      <span>one</span><span>two</span>

      显示效果如下:

      onetwo

    块级元素与行内元素并不是一成不变的,我们可以通过CSS来改变他的特性

    display: inline; //行内元素

    display: block; //块级元素

    虽然HTML标签有很多并且我们在制作页面的时候可以无限的嵌套,但是嵌套也有规则,不能随意的嵌套。有些标签是固定的嵌套规则,比如ul包含li、ol包含li、dl包含dt和dd等等。还有很多是独立的标签,我们如何来使用它编写更优秀的页面,下面就说说

    1. 块级元素与块级元素平级、内嵌元素与内嵌元素平级

      <div><span></span><p></p></div>  //span是行内元素,p是块级元素,所以这个是错误的嵌套

      <div><span></span><a></a></div>  //对的

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

      <div><span></span></div>

      <span><span></span></span>

    3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素
      h1、h2、h3、h4、h5、h6、p、dt
    4. 块级元素不能放在标签p里面

    5. li 标签可以包含 div 标签,因为li 和 div 标签都是装载内容的容器

    小结:

        ​虽然我们可以嵌套标签,但是为了提高浏览器的渲染效率,我们应该尽少的嵌套标签,扁平化

  • 相关阅读:
    网络基础、多线程、ftp任务铺垫
    文件上传下载、socketserver(并发)、解读socketserver源码
    模拟ssh、黏包、hashlib模块(MD5)
    面向对象多继承(C3算法)/网络编程
    Slideout吐槽
    HDU 1756 Cupid's Arrow 判断点在多边形的内部
    POJ 1584 A Round Peg in a Ground Hole 判断凸多边形,判断点在凸多边形内
    位运算 找出给定的数中其他数都是两个,有两个是一个的数
    NYOJ 1107 最高的奖励(贪心+优先队列)
    POJ 2653 Pick-up sticks (判断线段相交)
  • 原文地址:https://www.cnblogs.com/wfblog/p/8960682.html
Copyright © 2011-2022 走看看