CSS学习--块级元素和行内元素

跟着学习布局和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>

结果:
在这里插入图片描述
块级元素和行内元素的区别
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>

结果:
在这里插入图片描述
这样看不出有什么变化,我们去掉行内元素的margin和padding:
在这里插入图片描述
在这里你可能会感觉很奇怪,行内元素加上margin和padding之后怎么和上面的元素重叠了呢?而且宽高也发生了变化?
看来概念还是没有理清楚,我们删去第一个行内元素的margin、padding来做个对比,在浏览器中定位到块级元素二上:
在这里插入图片描述
结果验证了行内元素“竖直方向的如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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值