块级元素、行内元素、行内块元素的特点

块级元素 和行内元素

1、 基本概念

在HTML5之前,HTML元素被分为两类:块级元素(block-level elements)和行内元素(inline-level elements),或称为内联元素。

不过,因为这是一种表现特征,在HTML5时,在标准流中通过CSS属性display指定。(注释:表现特征,例如文字颜色,背景色等等和HTML的内容、JS的行为形成对比。以前,也许通过元素的类别决定元素的这种表现特征,不过现在可以通过CSS display属性进行控制。)

1、行内元素是那些只占用定义元素的标签所限定的空间的元素,而不是打破内容流。

2、块级元素占用其父元素(容器)的整个水平空间,以及与其内容高度相等的垂直空间,因此创建了一个“块”。

区别一:行内元素不从新行开始,只占用必要宽度;块级元素总是从新行开始,并占用其父元素的可用的全部宽度。

区别二: 块级元素可能包含行内元素,有时也包含其他块级元素,行内元素只能包含数据和其他行内元素。a元素例外,它可以包含块级元素,例如div。

2、行内元素和块级元素案例演示

行内元素

The following span is an inline element; its

background has been colored to display both the beginning and end of the

inline element's influence.

.highlight {

background-color: #ee3;

}

在这个案例中,

块级元素包含一些文本。在那段文本中包含了一个元素,它是行内元素。因为是行内元素,所以段落正确渲染为单一的,未被打破的一段文本流。

块级元素

元素修改为块级元素,例如段落元素

,代码如下所示

The following paragraph is a

block-level element;

its background has been colored to display both the beginning and end of the

block-level element's influence.

.highlight {

background-color: #ee3;

}

可以看到差异,

元素完全地改变了文本的布局,将其分割为三部分:

元素前的文本,

元素本身包含的文本,

元素后的文本。

3、改变元素的等级

你可以通过CSS display属性改变一个元素的视觉表现,例如,通过把display的值从”inline“修改为”block", 你可以指示浏览器以为块盒(block box)而不是行内盒(inline box)的方式渲染元素,反之亦然。然而,修改元素的display属性,例如把display属性值从“inline”修改为“block”或者从“block”修改为“inline",并不会改变元素的类别和内容模型。例如,即使把span元素的display属性修改为”block“,它仍然属于行内元素并且不能内嵌div元素。内容模型概念接下来会介绍。

块级元素、行内元素、行内块元素的特点

1、块级元素(block)

块级元素,顾名思义,该元素呈现“块”状,所谓块状就是元素显示为矩形区域,主要用于网页布局和网页结构的搭建。它有自己的宽度和高度,也就是可自定义 width 和 height。除此之外,块级元素比较霸道,它独自占据一行高度(float浮动除外),一般可以作为其他容器使用,可容纳块级元素和行内元素。以下元素均为块级元素:

// 定义地址

// 定义表格标题

// 定义列表中定义条目

// 定义文档中的分区或节

// 定义列表

// 定义列表中的项目

// 定义一个框架集

// 创建 HTML 表单

// 定义最大的标题

// 定义副标题

// 定义标题

// 定义标题

// 定义标题

// 定义最小的标题


// 创建一条水平线

// 元素为 fieldset 元素定义标题

  • // 标签定义列表项目

    // 为那些不支持框架的浏览器显示文本,于 frameset 元素内部</p> <p><noscript> // 定义在脚本未被执行时的替代内容</p> <p><ol> // 定义有序列表</p> <p><ul> //定义无序列表</p> <p><p> // 标签定义段落</p> <p><pre> // 定义预格式化的文本</p> <p><table> //标签定义 HTML 表格</p> <p><tbody> //定义标签表格主体(正文)</p> <p><td> //表格中的标准单元格</p> <p><tfoot> //定义表格的页脚(脚注或表注)</p> <p><th> //定义表头单元格</p> <p><thead> // 标签定义表格的表头</p> <p><tr> // 定义表格中的行</p> <p>块级元素代表性的就是 div,其他入p、nav、header、footer 等等都可以用 div 来实现,不过为了方便解读代码,一般会使用特定的语义化标签,使代码可读性强</p> <p>块级元素具有以下特点:</p> <p>每个块级元素都是独自占一行;</p> <p>高度,宽度,行高,外边距(margin)以及内边距(padding)都可以控制;</p> <p>元素的宽度如果不设置的话,默认为父元素的宽度(父元素宽度100%);</p> <p>多个块状元素标签写在一起,默认排列方式为从上至下;</p> <p>2、行内元素(inline)</p> <p>行内元素不可以设置宽(width)和高(height),但可以与其他行内元素位于同一行,行内元素内一般不可以包含块级元素。行内元素的高度一般由元素内部的字体大小决定,宽度由内容的长度控制。行内元素常用于控制页面中文本的样式。以下元素均为行内元素:</p> <p><a> // 标签可定义锚</p> <p><abbr> // 表示一个缩写形式</p> <p><acronym> // 定义只取首字母缩写</p> <p><b> // 字体加粗</p> <p><bdo> // 可覆盖默认的文本方向</p> <p><big> // 大号字体加粗</p> <p><br> // 换行</p> <p><cite> // 引用进行定义</p> <p><code> // 定义计算机代码文本</p> <p><dfn> // 定义一个定义项目</p> <p><em> // 定义为强调的内容</p> <p><i> // 斜体文本效果</p> <p><kbd> // 定义键盘文本</p> <p><label> // 标签为 input 元素定义标注(标记)</p> <p><q> // 定义短的引用</p> <p><samp> // 定义样本文本</p> <p><select> // 创建单选或多选菜单</p> <p><small> // 呈现小号字体效果</p> <p><span> // 组合文档中的行内元素</p> <p><strong> // 加粗</p> <p><sub> // 定义下标文本</p> <p><sup> // 定义上标文本</p> <p><textarea> // 多行的文本输入控件</p> <p><tt> // 打字机或者等宽的文本效果</p> <p><var> // 定义变量</p> <p>行内元素具有以下特点:</p> <p>不会独占一行,相邻的行内元素会排列在同一行里,直到一行排不下才会自动换行,其宽度随元素的内容而变化;</p> <p>高宽、行高无效,对外边距(margin)和内边距(padding)仅设置左右方向有效,上下无效;</p> <p>设置行高有效,等同于给父级元素设置行高;</p> <p>元素的宽度就是它包含的文字或图片的宽度,不可改变;</p> <p>行内元素中不能放块级元素,a 链接里面不能再放链接;</p> <p>行内元素最常使用的就是 span,其他的只在特定功能下使用。与之间只能包含文本和各种文本的修饰标签,如加粗标签、倾斜标签等,中还可以嵌套多层。</p> <p>3、行内块元素(inline-block)</p> <p>行内块级元素,它既具有块级元素的特点,也有行内元素的特点,它可以自由设置元素宽度和高度,也可以在一行中放置多个行内块级元素。比如:input、img就是行内块级元素,它可设置高宽以及一行多个。以下元素为行内块元素:</p> <p><button> // 普通按钮</p> <p><input> // 创建表单元素</p> <p><textarea> // 创建表单文本域</p> <p><img> // 插入图片</p> <p>行内块元素的特点:</p> <p>高度、行高、外边距以及内边距都可以控制;</p> <p>默认宽度就是它本身内容的宽度,不独占一行,但是之间会有空白缝隙,设置它上一级的 font-size 为 0,才会消除间隙;</p> <p>元素显示模式转换</p> <p>1、转换为块级元素</p> <p>a {</p> <p>display: block;</p> <p>}</p> <p>2、转换为行内元素:</p> <p>div {</p> <p>display: inline;</p> <p>}</p> <p>3、转换为行内块元素:</p> <p>span {</p> <p>display: inline-block;</p> <p>}</p> <p>总结</p> <p>不管块级元素还是行内元素,区别:一是排列方式,二是宽高边距设置,三是默认宽度。</p> <p>块级元素会独占一行,而行内元素和行内块元素则会在一行内显示;</p> <p>块级元素和行内块元素可设置 width、height 属性,而行内元素设置无效;</p> <p>块级元素的 width 默认为 100%,而行内元素则是根据其自身的内容或子元素来决定其宽度;</p> <p>而行内块级元素又同时拥有块级元素和行内元素的特点。</p> </p></div> </section> <div class="box post-nav is-clearfix"> <div class="is-pulled-left"> <a href="/7be702869501ea08/58c55f59cff69575.html">英格兰 世界杯记录 英格兰队世界杯历史战绩</a><br><a href="/5f2b8d6280d55e0e/96fb2fe4b12104d5.html">新建公司如何申请企业邮箱?一步到位指南</a> </div> </div> </div> <div class="column is-one-quarter"> <section class="mod box" id="newmodule"> <header class="title-wrapper"> <h3 class="mod-hd title title-style">最新发表</h3> </header> <ul class="mod-bd 765765"> <li><a title="阳光互联SUNDNS" href="/7be702869501ea08/f70897cb675759c1.html">阳光互联SUNDNS</a></li> <li><a title="放置军团2025年春季狂欢庆典:挑战极限,赢取稀有奖励!" href="/7be702869501ea08/659e7c52333c4d71.html">放置军团2025年春季狂欢庆典:挑战极限,赢取稀有奖励!</a></li> <li><a title="郡肝煮多长时间" href="/801841a0bf0121ea/0502432b09986f03.html">郡肝煮多长时间</a></li> <li><a title="热血帝国2025年春季全服狂欢盛典:勇者争霸赛与帝国荣耀庆典" href="/801841a0bf0121ea/967abda60f52edb8.html">热血帝国2025年春季全服狂欢盛典:勇者争霸赛与帝国荣耀庆典</a></li> <li><a title="LPL有哪些队伍;S5LPL战队巡礼" href="/5f2b8d6280d55e0e/3bc3771e01b94c4d.html">LPL有哪些队伍;S5LPL战队巡礼</a></li> <li><a title="阴阳师红蛋的正确使用方式?经验加成与喂法技巧分享" href="/5f2b8d6280d55e0e/8131e583c18ec556.html">阴阳师红蛋的正确使用方式?经验加成与喂法技巧分享</a></li> <li><a title="全民街篮2025春季狂欢赛:热血街头篮球争霸赛" href="/5f2b8d6280d55e0e/c96fee98dfeb9595.html">全民街篮2025春季狂欢赛:热血街头篮球争霸赛</a></li> <li><a title="模具设计生产软件有哪些" href="/7be702869501ea08/a6b992fde2488823.html">模具设计生产软件有哪些</a></li> <li><a title="荣耀之怒2025年度全球巅峰竞技大赛暨五周年庆典活动" href="/801841a0bf0121ea/74a760757b911ebf.html">荣耀之怒2025年度全球巅峰竞技大赛暨五周年庆典活动</a></li> <li><a title="国产大飞机C919今日首飞" href="/801841a0bf0121ea/f6124c53df491294.html">国产大飞机C919今日首飞</a></li> </ul></section> <!-- 765765 --> <section class="mod box" id="newmodule"> <header class="title-wrapper"> <h3 class="mod-hd title title-style">友情链接</h3> </header> <div class="mod-bd youqing"> <script> var _mtj = _mtj || []; (function () { var mtj = document.createElement("script"); mtj.src = "https://node91.aizhantj.com:21233/tjjs/?k=gdvpk3plqch"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(mtj, s); })(); </script></div></section> <!-- youqing --> </div> </div> </div> </main> <footer class="footer"> <div class="container is-widescreen"> <div class="copyright content has-text-centered"> <p class="a-ccc">Copyright © 2022 弈满领域-策略网游巅峰对弈平台 All Rights Reserved.</p> </div> </div> </footer> <script src="/static/js/jquery-2.2.4.min.js"></script> <script src="/static/js/zblogphp.js"></script> <script src="/static/js/c_html_js_add.js"></script> <script src="/static/js/script.min.js"></script> <script src="/static/js/swiper-3.4.2.jquery.min.js"></script><script src="/static/js/swiper-act.js"></script> </html>