前端学习笔记 - 元素显示模式

251 阅读2分钟

HTML中,每个元素都有默认的显示模式,这决定了元素在文档中的布局方式。主要有三种基本模式:块级(block)行内(inline)行内块(inline-block) 模式。

块级元素(block)

  • 特点:
    • 独占一行,宽度默认撑满整个父容器,高度默认由内容决定
    • 宽高可以通过CSS设置
    • 可以包含其他块级元素(<p>标签除外)或行内元素
  • 常见块级元素:
<html>, <body>, <div>, <p>, <h1>~<h6>, <hr>, <pre>, <ul>, <ol>, <li>, <dl>, <dt>, <dd>,
<table>, <tbody>, <thead>, <tfoot>, <tr>, <caption>, <form>, <option>
  • 示例:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title>元素显示模式</title>
  <style>
    .d1 {
      background-color: orange;
    }
    .d2 {
      background-color: green;
    }
  </style>
</head>
<body>
  <div class="d1">我是块元素,独占一行,可以通过CSS调整宽高</div>
  <div class="d2">我是块元素,独占一行,可以通过CSS调整宽高</div>
</body>
</html>

Screenshot 2025-01-07 at 12.50.59.png

行内(内联)元素(inline)

  • 特点:
    • 不独占一行,元素从左到右排列
    • 宽高由内容决定,不能通过CSS设置
    • 只能包含行内元素,不能嵌套块级元素
  • 常见行内元素:
<span>, <br>, <strong>, <em>, <sup>, <sub>, <del>, <ins>, <a>, <lable>
  • 示例:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title>元素显示模式</title>
  <style>
    .sp1 {
      background-color: greenyellow;
    }
    .sp2 {
      background-color: green;
      width: 1000px;
    }
  </style>
</head>
<body>
  <span class="sp1">我是行内(内联)元素,在一行中从左到右排列,宽高由内容决定,不可以通过CSS调整宽高</span>
  <span class="sp2">我是行内(内联)元素,在一行中从左到右排列,宽高由内容决定,不可以通过CSS调整宽高</span>
</body>
</html>

Screenshot 2025-01-07 at 12.58.15.png

行内块元素(inline-block)

  • 特点:
    • 不独占一行,元素从左到右排列
    • 宽度由内容决定
    • 高度由内容决定,与字体大小和行高相关
    • 可以通过CSS设置宽高
    • 只能包含行内元素,不能嵌套块级元素
  • 常见行内块元素
<img>, <th>, <td>, <input>, <textarea>, <select>, <button>, <iframe>
  • 示例:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title>元素显示模式</title>
  <style>
    input {
      width: 320px;
    }
  </style>
</head>
<body>
  <input type="text" placeholder="我是行内块元素"/>
  <input type="password" placeholder=",和行内元素的唯一区别是可以通过CSS调整宽高"/>
</body>
</html>

Screenshot 2025-01-07 at 13.05.18.png

自定义显示模式

通过CSS,任何元素的显示模式都可以更改。例如,将<div>元素设置为行内元素:

div {
   display: inline;
}

Screenshot 2025-01-07 at 13.09.20.png

隐藏元素

  • 特点:元素完全从文档中移除,不占据空间。主要用于动态显示或隐藏内容
  • CSS设置:
input {
    display: none;
}