HTML元素嵌套关系

HTML元素嵌套关系(使用验证网站进行验证html的合法性  https://validator.w3.org/)

  • block元素中是可以包含inline元素的。
  • block元素中不一定是可以包含block元素。比如div元素是可以包含div元素的,但是block元素p是一般不能再包含block元素。
  • inline元素一般不能包含block元素。通常是不能包含block元素,有一些特殊情况,比如,inline元素a元素是可以包含block元素的(虽然不合法,但是浏览器·默认支持a中包含block元素,因为场景比较多,比如希望点击图片会文字都可以跳转页面),a元素包含block元素不一定是合法的,取决于包含a元素的是什么元素,如果包含a元素的是一个p元素,那么这个html就是不合法的,对于不合法的html,浏览器也是可以显示的,但是浏览器会猜我们想干什么,可能出现意想不到的结果,所以,避免写出不合法的html
DEMO2-6.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- block元素包含inline元素是完全合法的 -->
    <div><a href="#">Div > A</a></div>
    <!-- a元素包含block元素时,浏览器承认,但是w3c在检查html的合法性时会去掉a元素再去判断是否合法,所以这里是合法的 -->
    <a href="#"><div>A > DIV</div></a>
    <!-- 这里,block元素p包含了inline元素a元素,a元素中又包含了block元素div元素,这时,w3c在分析时,会把包含block元素的a元素去掉,这样就变成了p元素包含div元素,所以,在分析合法性时(https://validator.w3.org/),这个html是不合法的,但是,浏览器还是可以显示的,但是浏览器·会改变html结构,它会猜我们想干什么的
 -->
    <p><a href="#"><div>P > A > DIV</div></a></p>
</body>
</html>

  

posted @ 2020-07-08 23:06  JasonWangTing  阅读(428)  评论(0编辑  收藏  举报