HTML的块级元素和内联元素

一、任何不是块级元素的可见元素都是内联元素##

块元素(block element)

* address - 地址
  * blockquote - 块引用
  * center - 举中对齐块
  * dir - 目录列表
  * div - 常用块级容易,也是css layout的主要标签
  * dl - 定义列表
  * fieldset - form控制组
  * form - 交互表单
  * h1 - 大标题
  * h2 - 副标题
  * h3 - 3级标题
  * h4 - 4级标题
  * h5 - 5级标题
  * h6 - 6级标题
  * hr - 水平分隔线
  * isindex - input prompt
  * menu - 菜单列表
  * noframes - frames可选内容,(对于不支持frame的浏览器显示此区块内容
  * noscript - 可选脚本内容(对于不支持script的浏览器显示此内容)
  * ol - 排序表单
  * p - 段落
  * pre - 格式化文本
  * table - 表格
  * ul - 非排序列表

内联元素(inline element)

* a - 锚点
  * abbr - 缩写
  * acronym - 首字
  * b - 粗体(不推荐)
  * bdo - bidi override
  * big - 大字体
  * br - 换行
  * cite - 引用
  * code - 计算机代码(在引用源码的时候需要)
  * dfn - 定义字段
  * em - 强调
  * font - 字体设定(不推荐)
  * i - 斜体
  * img - 图片
  * input - 输入框
  * kbd - 定义键盘文本
  * label - 表格标签
  * q - 短引用
  * s - 中划线(不推荐)
  * samp - 定义范例计算机代码
  * select - 项目选择
  * small - 小字体文本
  * span - 常用内联容器,定义文本内区块
  * strike - 中划线
  * strong - 粗体强调
  * sub - 下标
  * sup - 上标
  * textarea - 多行文本输入框
  * tt - 电传文本
  * u - 下划线
  * var - 定义变量

二、嵌套规则

  1. 块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。
  2. 块级元素不能放在p里面
  3. 有几个特殊的块级元素只能包含内联元素,不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dt
  4. li内可以包含div
  5. 块级元素与块级元素并列、内联元素与内联元素并列。

div 能不能嵌套在p里面##

不能,如果嵌套会导致html语义失败,看下面的例子

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>:target pseudoclass example</title>
    <style>

        p em:last-of-type {
            color: #4cae4c;
        }
    </style>

</head>
<body>
<p>
    <em>I'm not lime :(</em>
    <span><em>I am  lime1!</em><em>I am  lime2!</em></span>
    <span><em>I am lime!</em></span>
    <strong>I'm not lime :(</strong>
    <em>I'm lime :D</em>
    <span><em>I am also lime!</em> <strike> I'm not lime </strike></span>
    <strong>I'm also not lime :(</strong>
<div><em>I am div lime1!</em></div>
</p>
</body>
</html>
正常显示的效果

可以看到,对于p元素下的所有em元素对于css中设定的伪类规则都生效了(所有em对于父类是最后一个em的,字体颜色为#4cae4c),但是当我们在代码中嵌套了一个div后的效果,我们可以看下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>:target pseudoclass example</title>
    <style>

        p em:last-of-type {
            color: #4cae4c;
        }
    </style>

</head>
<body>
<p>
    <em>I'm not lime :(</em>
    <span><em>I am  lime1!</em><em>I am  lime2!</em></span>
    <span><em>I am lime!</em></span>
    <strong>I'm not lime :(</strong>
    <div><em>This is a div em</em></div>
    <em>I'm lime :D</em>
    <span><em>I am also lime!</em> <strike> I'm not lime </strike></span>
    <strong>I'm also not lime :(</strong>
<div><em>I am div lime1!</em></div>
</p>
</body>
</html>
嵌套div后的效果

很遗憾,在div后所有的伪类css效果都失效了。。。

引用:

  1. CSS块级元素和行内元素
  2. 从块级元素和内联元素浅谈标签的嵌套规则
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,863评论 1 92
  • HTML中的元素可分为两种类型:块级元素和行级元素。这些元素的类型是通过文档类型定义(DTD)来指明。块级元素:显...
    adingmoon阅读 522评论 0 0
  • 块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签P。form这个块元素比较特殊,它只能...
    三杯两盏石酒_9265阅读 1,163评论 0 3
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,358评论 0 5
  • 20171117 敲着手机九宫格的ZZ在刷淘宝,刷到这么一段话:做人凡事要静,静静地来,静静地去,静静努力,静...
    朱朱xxxx阅读 196评论 0 0