行内元素和块级元素的区别

简要说明:

1. 行内元素会再一条直线上,是在同一行的。比如span和strong;

2. 块级元素各占一行。是垂直方向的!比如div和p.

假如你要将行内元素变成块级元素,那么就只需要在该标签上加上样式 display:block; 块级元素可以用样式控制其高、宽的值,而行内元素不可以。

行内元素与块级元素列表

块级元素列表
<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.尺寸-块级元素和行内元素之间的一个重要的不同点 

 

行内元素和width

W3C CSS2 标准规定行内元素、非置换元素不会应用width属性。

以下例子中,对行内元素<a>应用了width:200px,你可以看到,根本就没有什么效果。

行内元素和height

W3C CSS2 标准规定行内元素、非置换元素不会应用height属性,但是盒子高度可以通过line-height来指定。

以下例子,对行内元素<a>应用了height:50px,你可以看到什么效果都没。

行内元素和padding

你可以给行内元素设置padding,但只有padding-left和padding-right生效。

以下例子,行内元素<a>应用了padding:50px。你可以看到对左右的内容有影响,但是对上下没影响。

行内元素和marging

margin属性也是和padding属性一样,对行内元素左右有效,上下无效。

  1. 设置宽度width   无效。
  2. 设置高度height  无效,可以通过line-height来设置。
  3. 设置margin 只有左右margin有效,上下无效。
  4. 设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的,看图上效果就知道了

2.text-align属性是两者表现的又以不同之处

 在W3C CSS2.1规范第16.2节 对text-align 有详细地描述:
------------------------------------------
值: left | right | center | justify | inherit
初始值:匿名值,由'direction'的值而定,如果'direction'为'ltr'则为'left',如果'direction'为'rtl'则为'right'。
应用于: 块级元素,表格单元格,行内块元素
继承性: 是
计算后的值:初始值或指定值
------------------------------------------
  这个特性描述了如何使一个块元素的行内内容对齐。
  注意一点,标准里说这个属性是用来对齐行内内容的,所以,应该对块级内容起作用。
  解释一下,行内内容是说由行内元素组成的内容,行内元素大家都知道吧,比如 SPAN 元素,IFRAME元素和元素样式的 ‘display : inline’ 的都是行内元素;块级内容跟则是由块级元素构成,DIV 是最常用的块级元素。块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示。
  这样,我们对这个特性的认识应该就清楚了。但是,虽然标准里这么规定,那么是不是所有浏览器都遵守呢?答案是否定的。猜猜是哪个浏览器这么特立独行啊? IE!!
  IE6/7及IE8混杂模式中,text- align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。
  解决上面的问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin-left:auto; margin-right:auto”。但这个方式 IE6/IE7/IE8的混杂模式中不支持,所以还要设置父容器的 "text-align:center;"。
若居中对齐的子元素内的行内内容不需要居中对齐,则还需要为其设置“text-align:left”。

 

 


<think>我们正在讨论HTML中的行内元素块级元素。根据提供的引用内容,我们可以总结如下: 引用[1][2]指出:行内元素块级元素是HTML中两类基本元素,它们在显示特性布局为上有明显区别。 引用[4]详细描述了块级元素的特点:总是从新开始,独占一;可以控制高度、宽度、marginpadding;宽度默认为100%;可以包含块级元素行内元素。 引用[3]则补充了行内元素(inline-block)的概念,它结合了行内元素块级元素的特性。 因此,回答应包含: 1. 行内元素块级元素的基本定义区别。 2. 常见元素列表(根据引用[2])。 3. 行内元素的介绍(引用[3])。 4. 如何改变元素显示类型(如使用CSS的display属性)。 同时,按照要求,使用$...$$$...$$格式书写数学表达式(虽然本主题可能较少涉及,但如果有数学相关,如计算宽度等,可以使用),并添加引用标识。 最后,生成相关问题。 </think> ### 行内元素块级元素详解 行内元素(inline elements)块级元素(block elements)是HTML布局的核心概念,它们通过`display`属性定义元素的默认渲染为[^1][^2][^4]。 #### 一、核心区别 | **特性** | **行内元素** | **块级元素** | |------------------|---------------------------------------------|---------------------------------------------| | **布局为** | 与其他行内元素水平排列 | 独占一,垂直排列 | | **尺寸控制** | 宽高设置无效,尺寸由内容决定 | 可设置宽高、内外边距(margin/padding)[^4] | | **默认宽度** | 自适应内容宽度 | 默认占满父容器宽度(width:100%)[^4] | | **嵌套规则** | 只能包含文本其他行内元素[^1] | 可包含行内元素块级元素[^4] | | **典型示例** | `<span>`, `<a>`, `<strong>`, `<img>`[^2] | `<div>`, `<p>`, `<h1>-<h6>`, `<ul>`[^2] | #### 二、行内元素(inline-block) 结合两者特性: - 水平排列(行内特性) - 可设置宽高(块特性)[^3] ```html <style> .inline-block { display: inline-block; width: 100px; /* 宽度生效 */ } </style> <div class="inline-block">元素1</div> <div class="inline-block">元素2</div> <!-- 水平排列 --> ``` #### 三、应用场景对比 - **行内元素适用**: - 文本修饰(如加粗`<strong>`、斜体`<em>`) - 内嵌图标(`<img>`)超链接(`<a>`) - **块级元素适用**: - 页面结构分区(`<div>`容器) - 段落(`<p>`)、列表(`<ul>`)等独立内容块 - **行内块适用**: - 水平导航菜单 - 图文混排布局[^3] #### 四、转换元素类型 通过CSS的`display`属性可动态改变元素类型: ```css span { display: block; } /* 行内→块 */ div { display: inline; } /* 块行内 */ li { display: inline-block; } /* 列表项水平排列 */ ``` > **关键总结**:行内元素像"文字",流动布局;块级元素像"盒子",构建框架行内元素则兼具灵活性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值