HTML行内元素、块状元素、行内块状元素的区别

HTML可以将元素分类方式分为行内元素、块状元素和行内块状元素三种。首先需要说明的是,这三者是可以互相转换的,使用display属性能够将三者任意转换:

  (1)display:inline;转换为行内元素

  (2)display:block;转换为块状元素

  (3)display:inline-block;转换为行内块状元素

复制代码

 1 <!DOCTYPE html>
 2 <html>
 3 
 4     <head>
 5         <meta charset="utf-8" />
 6         <title>测试案例</title>
 7         <style type="text/css">
 8             span {
 9                  display: block;
10                 width: 120px;
11                 height: 30px;
12                 background: red;
13             }
14             
15             div {
16                 display: inline;
17                 width: 120px;
18                 height: 200px;
19                 background: green;
20             }
21             
22             i {
23                 display: inline-block;
24                 width: 120px;
25                 height: 30px;
26                 background: lightblue;
27             }
28         </style>
29     </head>
30 
31     <body>
32         <span>行内转块状</span>
33         <div>块状转行内 </div>
34         <i>行内转行内块状</i>
35     </body>
36 
37 </html>

复制代码

1.行内元素

  行内元素最常使用的就是span,其他的只在特定功能下使用,修饰字体<b>和<i>标签,还有<sub>和<sup>这两个标签可以直接做出平方的效果,而不需要类似移动属性的帮助,很实用。

  行内元素特征:(1)设置宽高无效

         (2)对margin仅设置左右方向有效,上下无效;padding设置上下左右都有效,即会撑大空间

         (3)不会自动进行换行

复制代码

 1 <!DOCTYPE html>
 2 <html>
 3 
 4     <head>
 5         <meta charset="utf-8" />
 6         <title>测试案例</title>
 7         <style type="text/css">
 8             span {
 9                 width: 120px;
10                 height: 120px;
11                 margin: 1000px 20px;
12                 padding: 50px 40px;
13                 background: lightblue;
14             }
15         </style>
16     </head>
17 
18     <body>
19         <i>不会自动换行</i>
20         <span>行内元素</span>
21     </body>
22 
23 </html>

复制代码

2.块状元素

  块状元素代表性的就是div,其他如p、nav、aside、header、footer、section、article、ul-li、address等等,都可以用div来实现。不过为了可以方便程序员解读代码,一般都会使用特定的语义化标签,使得代码可读性强,且便于查错。

  块状元素特征:(1)能够识别宽高

         (2)margin和padding的上下左右均对其有效

         (3)可以自动换行

         (4)多个块状元素标签写在一起,默认排列方式为从上至下

复制代码

 1 <!DOCTYPE html>
 2 <html>
 3 
 4     <head>
 5         <meta charset="utf-8" />
 6         <title>测试案例</title>
 7         <style type="text/css">
 8             div {
 9                 width: 120px;
10                 height: 120px;
11                 margin: 50px 50px;
12                 padding: 50px 40px;
13                 background: lightblue;
14             }
15         </style>
16     </head>
17 
18     <body>
19         <i>自动换行</i>
20         <div>块状元素</div>
21         <div>块状元素</div>
22     </body>
23 
24 </html>

复制代码

3.行内块状元素

  行内块状元素综合了行内元素和块状元素的特性,但是各有取舍。因此行内块状元素在日常的使用中,由于其特性,使用的次数也比较多。

  行内块状元素特征:(1)不自动换行

           (2)能够识别宽高

           (3)默认排列方式为从左到右

复制代码

 1 <!DOCTYPE html>
 2 <html>
 3 
 4     <head>
 5         <meta charset="utf-8" />
 6         <title>测试案例</title>
 7         <style type="text/css">
 8             div {
 9                 display: inline-block;
10                 width: 100px;
11                 height: 50px;
12                 background: lightblue;
13             }
14         </style>
15     </head>
16 
17     <body>
18         <div>行内块状元素</div>
19         <div>行内块状元素</div>
20         
21     </body>
22 
23 </html>

复制代码

  在HTML5中,程序员可以自定义标签,在任意定义标签中,加入display:block;即可,当然也可以是行内或行内块状。

### CSS 行内块状元素使用及其特性 行内块元素(`inline-block`)是一种特殊的显示方式,它允许元素像`inline`(行内)元素一样在同一行上排列,同时又具备`block`(块级)元素的一些特征。这意味着它可以设置宽度、高度以及内外边距等属性。 #### 设置 `display: inline-block` 当一个元素被定义为`inline-block`时,其行为如下: - 它不会独占一行,而是与其他`inline`或`inline-block`类型的兄弟元素并列放置; - 可以为该元素指定具体的尺寸(宽高),并且这些设定会被浏览器尊重; ```css .inline-block-element { display: inline-block; } ``` 这种布局方法非常适合创建水平导航菜单或其他需要紧凑排列的小部件[^1]。 #### 处理间距问题 由于HTML中的空白符会影响`inline-block`元素之间的距离,在实际开发过程中可能会遇到意外的空间间隔现象。解决办法之一是在父容器中移除多余的空格字符或者调整字体大小至零来消除间隙影响。 ```css .parent-container { font-size: 0; /* Remove space between inline-block children */ } .child-elements { display: inline-block; vertical-align: top; /* Align items vertically at the top */ font-size: initial; /* Reset font size inside child elements */ } ``` 通过上述手段能够有效控制由默认渲染机制带来的额外空间,从而实现更精确的设计意图[^2]。 #### 结合Flexbox模型 对于更加复杂的多项目排版需求来说,采用`flex`弹性盒子可能是一个更好的选择。这不仅简化了代码结构,还提供了更多灵活可控的方式来管理子项的位置关系。 ```css .flex-container { display: flex; justify-content: center; /* Center horizontally */ align-items: stretch; /* Stretch items vertically */ } ``` 这种方式下即使内部组件采用了不同的`display`模式也能很好地协同工作,保持一致的高度表现[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值