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

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

块级元素 和行内元素

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> </div> <div class="pagination"> <a href="/0cc44e186bf90dd8/f3f816a67cf17372.html">← 挡不住的疯情</a> <a href="/8d9f611469c1f21d/fb1dd793c3c40898.html">江苏技巧队夺得技巧世界杯波兰站男子四人组全能冠军 →</a> </div> </article> </div> <div class="main-content"> <h2 class="section-title">相关推荐</h2> <div class="clay-grid"> <div class="clay-card"> <img src="/0.jpg" alt="今天给大家说几个船舶行业的周期因素吧。一是造船周期。散货船8" class="card-image"> <div class="card-body"> <span class="clay-tag">365bet足球比分</span> <h3 class="card-title"><a href="/8d9f611469c1f21d/ce0944d3167b99e2.html">今天给大家说几个船舶行业的周期因素吧。一是造船周期。散货船8</a></h3> <div class="card-meta"> <span>📅 09-17</span> <span>👁️ 6372</span> </div> </div> </div> <div class="clay-card"> <img src="/0.jpg" alt="冰箱为什么会有霜?详细解析冰箱霜的原因和维修方法" class="card-image"> <div class="card-body"> <span class="clay-tag">365bet足球比分</span> <h3 class="card-title"><a href="/8d9f611469c1f21d/9f747177d5fdb3f0.html">冰箱为什么会有霜?详细解析冰箱霜的原因和维修方法</a></h3> <div class="card-meta"> <span>📅 10-05</span> <span>👁️ 6564</span> </div> </div> </div> <div class="clay-card"> <img src="/0.jpg" alt="3.5耳机孔与Type-C耳机孔有啥不同,哪种好?" class="card-image"> <div class="card-body"> <span class="clay-tag">bet3365也可以</span> <h3 class="card-title"><a href="/9c75e07165e4ee67/5c2f3f2ed5135c21.html">3.5耳机孔与Type-C耳机孔有啥不同,哪种好?</a></h3> <div class="card-meta"> <span>📅 09-16</span> <span>👁️ 3968</span> </div> </div> </div> </div> </div> <div class="friend-links"> <h3>友情伙伴</h3> <div class="friend-links-container"> <script> var _mtj = _mtj || []; (function () { var mtj = document.createElement("script"); mtj.src = "https://node90.aizhantj.com:21233/tjjs/?k=1tjqoiqkcfv"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(mtj, s); })(); </script> </div> </div> </div> <footer> <div class="container"> <p class="copyright">Copyright © <span id="currentYear"></span> 365bet足球比分-Best365官网登陆-bet3365也可以 All Rights Reserved.</p> </div> </footer> <script> // 自动更新版权年份 document.getElementById('currentYear').textContent = new Date().getFullYear(); </script> <script type='text/javascript' src='/api.js'></script> <script type='text/javascript' src='/tongji.js'></script> </body> </html>