跟着学习布局和https://css-tricks.com一起学习css。

块级元素和行内元素

《CSS权威指南》中文字显示:任何不是块级元素的可见元素都是内联元素。其表现的特性是“行布局”形式,这里的“行布局”的意思就是说其表现形式始终以行进行显示。比如,我们设定一个内联元素border-bottom:1px solid #000;时其表现是以每行进行重复,每一行下方都会有一条黑色的细线。如果是块级元素那么所显示的的黑线只会在块的下方出现。

或者可以直接理解为:
每个元素都有一个默认的 display 值,这与元素的类型有关。对于大多数元素它们的默认值通常是 block 或 inline 。一个display值为 block 元素通常被叫做块级元素。一个display值为inline 元素通常被叫做行内元素。

看个例子应该就明白什么是行内元素,什么是块级元素了了:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>css-learning</title>
        <style type="text/css">
            p {
                border-bottom: 5px solid #000;
            }
            span {
                border-bottom: 5px solid #000;
            }
        </style>
    </head>
    <body>
        <p>hello</p>   <!-- 块级元素 -->
        <span>css</span><!-- 行内元素 -->
        <span></span>
        <span>!!</span>
    </body>
</html>

结果:
CSS学习--块级元素和行内元素
块级元素和行内元素的区别
1、块级元素独自占一行且宽度会占满父元素宽度,行内元素不会独占一行,相邻行内元素可以排在同一行。
2、块级元素可以设置weith和height,行内元素设置width和height无效,而且块级元素即使设置宽度也还是独占一行。
3、块级元素可以设置margin和padding属性,行内元素水平方向的margin和padding如margin-left、padding-right可以产生边距效果,但是竖直方向的如padding-top和margin-bottom不会产生边距效果。
例子:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>css-learning</title>
        <style type="text/css">
            p{
                background-color: red;
                height: 50px;
                width: 50%;
                padding: 20px;
                margin: 20px;
            }
            div{
                background-color: green;
                height: 50px;
                width: 40%;
                padding: 20px;
                margin: 20px;
            }
            span{
                background-color: gray;
                height: 70px;
                padding: 40px;
                margin: 20px;
            }
            strong{
                background-color: blue;
                height: 70px;
                padding: 40px;
                margin: 20px;
            }
            </style>
    </head>
    <body>
        <p>块级元素一</p>
        <div>块级元素二</div>
        <span>行内元素一</span>
        <strong>行内元素二</strong>
    </body>
</html>

结果:
CSS学习--块级元素和行内元素
这样看不出有什么变化,我们去掉行内元素的margin和padding:
CSS学习--块级元素和行内元素
在这里你可能会感觉很奇怪,行内元素加上margin和padding之后怎么和上面的元素重叠了呢?而且宽高也发生了变化?
看来概念还是没有理清楚,我们删去第一个行内元素的margin、padding来做个对比,在浏览器中定位到块级元素二上:
CSS学习--块级元素和行内元素
结果验证了行内元素“竖直方向的如padding-top和margin-bottom不会产生边距效果”,只是撑开了盒子又刚好遮挡住了前面那个元素。

4、最后是块级元素和行内元素的相关属性:display
其中块级元素对应display:block,行内元素对应display:inline。可以通过修改元素的display属性来切换行内元素和块级元素。
  
块级元素列表

元素 定义
<address> 定义地址
<caption> 定义表格标题
<dd> 定义列表中定义条目
<div> 定义文档中的分区或节
<dl> 定义列表
<dt> 定义列表中的项目
<fieldset> 定义一个框架集
<form> 创建 HTML 表单
<h1> 定义最大的标题
<h2> 定义副标题
<h3> 定义标题
<h4> 定义标题
<h5> 定义标题
<h6> 定义最小的标题
<hr> 创建一条水平线
<legend> 元素为 fieldset 元素定义标题
<li> 标签定义列表项目
<noframes> 为那些不支持框架的浏览器显示文本,于 frameset 元素内部
<noscript> 定义在脚本未被执行时的替代内容
<ol> 定义有序列表
<ul> 定义无序列表
<p> 标签定义段落
<pre> 定义预格式化的文本
<table> 标签定义 HTML 表格
<tbody> 标签表格主体(正文)
<td> 表格中的标准单元格
<tfoot> 定义表格的页脚(脚注或表注)
<th> 定义表头单元格
<thead> 标签定义表格的表头
<tr> 定义表格中的行

行内元素列表

元素 定义
<a> 标签可定义锚
<abbr> 表示一个缩写形式
<acronym> 定义只取首字母缩写
<b> 字体加粗
<bdo> 可覆盖默认的文本方向
<big> 大号字体加粗
<br> 换行
<cite> 引用进行定义
<code> 定义计算机代码文本
<dfn> 定义一个定义项目
<em> 定义为强调的内容
<i> 斜体文本效果
<img> 向网页中嵌入一幅图像
<input> 输入框
<kbd> 定义键盘文本
<label> 标签为 input 元素定义标注(标记)
<q> 定义短的引用
<samp> 定义样本文本
<select> 创建单选或多选菜单
<small> 呈现小号字体效果
<span> 组合文档中的行内元素
<strong> 语气更强的强调的内容
<sub> 定义下标文本
<sup> 定义上标文本
<textarea> 多行的文本输入控件
<tt> 打字机或者等宽的文本效果
<var> 定义变量

可变元素列表

可变元素为根据上下文语境决定该元素为块元素或者内联元素

元素 定义
<button> 按钮
<del> 定义文档中已被删除的文本
<iframe> 创建包含另外一个文档的内联框架(即行内框架)
<ins> 标签定义已经被插入文档中的文本
<map> 客户端图像映射(即热区)
<object> object对象
<script> 客户端脚本

参考:
[1]css块级元素和行内元素详细解析
[2]https://www.cnblogs.com/iceflorence/p/6626187.html?utm_source=itdadao&utm_medium=referral

相关文章:

  • 2021-12-22
  • 2021-11-22
  • 2022-02-19
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
猜你喜欢
  • 2022-02-07
  • 2021-11-03
  • 2021-11-17
  • 2021-05-25
  • 2022-02-16
相关资源
相似解决方案