CSS- 3.1 盒子模型-塊級元素、行內元素、行內塊級元素和display屬性

本系列可作為前端學習系列的筆記,代碼的運行環境是在HBuilder中,小編會將代碼復制下來,大家復制下來就可以練習了,方便大家學習。

HTML系列文章?已經收錄在前端專欄,有需要的寶寶們可以點擊前端專欄查看!

點贊關注不迷路!您的點贊、關注和收藏是對小編最大的支持和鼓勵!

系列文章目錄

CSS- 1.1 css選擇器

CSS- 2.1 實戰之圖文混排、表格、表單、學校官網一級導航欄

CSS- 3.1 盒子模型-塊級元素、行內元素、行內塊級元素和display屬性

CSS- 4.1 浮動(Float)

CSS- 4.2 相對定位(position: relative)


目錄

系列文章目錄

前言

一、理論部分?

1. 塊級元素(Block-level Elements)

2. 行內元素(Inline Elements)

3. 塊級元素與行內元素的區別總結

4. 行內塊級元素(Inline-block Elements)

5. 元素類型的轉換

6. 實際應用中的選擇

7. 注意事項

8. 總結

?二、實戰部分

總結


前言

小編作為新晉碼農一枚,會定期整理一些寫的比較好的代碼,作為自己的學習筆記,會試著做一下批注和補充,如轉載或者參考他人文獻會標明出處,非商用,如有侵權會刪改!歡迎大家斧正和討論!

一、理論部分?

在CSS中,元素根據其默認的顯示方式可以分為塊級元素(Block-level Elements)行內元素(Inline Elements)。理解這兩者的區別對于網頁布局和樣式設計至關重要。下面將從定義、特點、常用元素、布局影響及轉換方法等方面進行全面介紹。


1. 塊級元素(Block-level Elements)

? ? ? ? 塊級元素在頁面中默認獨占一行,會從新的一行開始顯示,并且會盡可能地占據其父元素的全部寬度。塊級元素通常用于構建頁面的結構,如標題、段落、列表等。

(1)特點

  • 獨占一行:塊級元素前后會自動換行,不會與其他元素在同一行顯示。
  • 可設置寬高:可以通過CSS的widthheight屬性設置塊級元素的寬度和高度。
  • 可設置內外邊距:支持marginpadding屬性,且這些屬性會對周圍元素產生影響。
  • 默認寬度為父元素的100%:如果不設置寬度,塊級元素會默認占據父元素的全部寬度。

(2)常用塊級元素

  • <div>:通用的塊級容器,用于布局。
  • <p>:段落。
  • <h1>?到?<h6>:標題。
  • <ul><ol><li>:無序列表、有序列表和列表項。
  • <table>:表格。
  • <form>:表單。
  • <header><footer><section><article>:HTML5語義化標簽。

(3)示例

html

<div>這是一個塊級元素</div>
<p>這是另一個塊級元素</p>

css

div {background-color: lightblue;width: 200px;height: 100px;margin: 10px;padding: 10px;
}
p {background-color: lightgreen;width: 300px;margin: 10px;
}

效果

  • <div><p>會各自占據一行,并且可以設置寬高和邊距

2. 行內元素(Inline Elements)

(1)定義

行內元素不會獨占一行,而是與其他行內元素在同一行顯示,直到空間不足時才會換行。行內元素通常用于包裹文本或其他行內內容,如鏈接、強調文本等。

(2)特點

  • 不獨占一行:行內元素會與其他行內元素在同一行顯示,直到空間不足。
  • 不能直接設置寬高:默認情況下,行內元素的寬度和高度由其內容決定,不能通過widthheight屬性直接設置。
  • 內外邊距的垂直方向可能無效marginpadding的水平方向(左右)會生效,但垂直方向(上下)可能不會影響周圍元素的布局。
  • 默認寬度由內容決定:行內元素的寬度取決于其內容,不會自動擴展到父元素的全部寬度。

(3)常用行內元素

  • <span>:通用的行內容器,用于樣式化文本。
  • <a>:超鏈接。
  • <strong><em>:強調文本。
  • <img>:圖片(雖然<img>是行內元素,但可以通過CSS設置為類似塊級元素的行為)。
  • <input><button>:表單控件(某些情況下表現為行內塊級元素)。

(4)示例

html

<span>這是一個行內元素</span>
<a href="#">這是一個鏈接</a>

css?

span {background-color: yellow;padding: 10px;margin: 10px; /* 水平方向生效,垂直方向可能無效 */
}
a {background-color: pink;padding: 5px;
}

效果

  • <span><a>會在同一行顯示,且無法直接通過CSS設置寬高。

3. 塊級元素與行內元素的區別總結

特性塊級元素行內元素
默認顯示方式獨占一行與其他行內元素同行顯示
寬度和高度可通過CSS設置默認由內容決定,不能直接設置
內外邊距水平和垂直方向均生效水平方向生效,垂直方向可能無效
默認寬度父元素的100%由內容決定
常用場景構建頁面結構包裹文本或小范圍內容

4. 行內塊級元素(Inline-block Elements)

CSS還提供了一種混合模式——行內塊級元素(Inline-block Elements),它結合了行內元素和塊級元素的特點:

  • 不獨占一行:可以與其他行內塊級元素或行內元素在同一行顯示。
  • 可設置寬高:可以通過CSS設置寬度和高度。
  • 內外邊距均生效:水平和垂直方向的marginpadding都有效。

(1)如何將元素設置為行內塊級

通過CSS的display: inline-block;屬性可以將元素設置為行內塊級。

(2)示例

html

<span class="inline-block">行內塊級元素1</span>
<span class="inline-block">行內塊級元素2</span>

css

.inline-block {display: inline-block;width: 100px;height: 50px;background-color: coral;margin: 5px;padding: 5px;
}

效果

  • 兩個<span>元素會在同一行顯示,并且可以設置寬高和邊距。

5. 元素類型的轉換

CSS的display屬性可以改變元素的默認顯示方式:

  • display: block;:將元素設置為塊級元素。
  • display: inline;:將元素設置為行內元素。
  • display: inline-block;:將元素設置為行內塊級元素。
  • display: none;:隱藏元素(不占據空間)。
  • display: flex;display: grid;:用于現代布局方式。

(1)示例

html

<a href="#" class="block-link">將鏈接設置為塊級元素</a>
<div class="inline-div">將div設置為行內元素</div>

css

.block-link {display: block;width: 200px;height: 50px;background-color: lightblue;margin: 10px;
}
.inline-div {display: inline;background-color: lightgreen;padding: 5px;
}

效果

  • <a>元素會獨占一行,并可以設置寬高。
  • <div>元素會與其他行內元素同行顯示,且無法設置寬高。

6. 實際應用中的選擇

  • 使用塊級元素
    • 當需要構建頁面的結構(如導航欄、內容區域、頁腳)時。
    • 當需要設置元素的寬高、邊距時。
    • 當需要元素獨占一行時。
  • 使用行內元素
    • 當需要包裹文本或小范圍內容(如鏈接、強調文本)時。
    • 當需要元素與其他元素在同一行顯示時。
  • 使用行內塊級元素
    • 當需要元素在同一行顯示,但又能設置寬高和邊距時(如導航菜單項、按鈕組)。

7. 注意事項

  1. 默認樣式的重置
    • 不同瀏覽器對元素的默認樣式可能有所不同,建議使用CSS重置(如normalize.css)或手動重置默認樣式。
  2. 語義化
    • 在HTML5中,應盡量使用語義化的標簽(如<header><section><article>)來替代<div>,以提高代碼的可讀性和SEO效果。
  3. 布局的靈活性
    • 現代CSS布局方式(如Flexbox、Grid)可以更靈活地控制元素的排列,但在某些情況下,理解塊級和行內元素的基本概念仍然很重要。

8. 總結

  • 塊級元素:獨占一行,可設置寬高和邊距,常用于構建頁面結構。
  • 行內元素:與其他行內元素同行顯示,不能直接設置寬高,常用于包裹文本或小范圍內容。
  • 行內塊級元素:結合了兩者的特點,可在同一行顯示且可設置寬高和邊距。
  • display屬性:可以靈活地改變元素的顯示方式,滿足不同的布局需求。

?二、實戰部分

1.代碼如下

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>盒子模型-塊級元素,行內元素</title><style type="text/css">/* 塊級元素的特點1.塊級元素獨占一行,標準文檔流2.寬和高可以設置3.margin可以取負數,padding不可以取負數,padding和margin可以相加4.塊級元素margin取同一空間值時,會出現塌陷,就是取最大值而不是相加 */div{border: 1px solid black;}.div1{width: 200px;height: 100px;/* margin: 10px;上下左右margin: 10px 30px;上下 左右margin: 10px auto;盒子在瀏覽器頁面居中,上下留10pxmargin: 10px 20px 30px;上 左右 下margin: 10px 20px 30px 40px;上 右 下 左 */margin-left: 50px;padding-left: 20px;margin-bottom: 20px;/* display:inline-block; */  /* 通過CSS的display: inline-block;屬性可以將元素設置為行內塊級。 */}.div2{width: 100px;height: 50px;margin-left: 20px;}.div3{width: 100px;height: 100px;margin-top: 50px;/* display: inline-block; */}.div4{width: 200px;height: 100px;margin-top: 50px;/* display: inline-block; */}/* 行內元素特點:除span a是行內元素外,其余都是塊級元素1.不獨占一行2.不可以設置寬高,寬高由內容決定3.margin和padding上下設置無效,左右有效4.margin不會在行內元素里出現塌陷 */span{border: 1px solid black;}#sp1{width: 100px;height: 100px;margin-top: 100px;margin-left: 50px;padding-left: 50px;padding-top:50px ;margin-right: 50px;/* display:block; */  /* display: block;:將元素設置為塊級元素 */}#sp2{margin-left:50px ;}</style></head><body><h1>塊級元素</h1><div class="div1">div1<div class="div2">div2</div></div><div class="div3">div3</div><div class="div4">div4</div><h1>行內元素</h1><br><br><span id="sp1">span1span1</span><span id="sp2">span2</span><a href="../個人主題網站/index.html"><h3 align="center">返回首頁</h3></a></body>
</html>

2.代碼運行如下

3.修改塊級元素為行內快寄元素,行內元素變為塊級元素

在塊級元素div 的CSS樣式中添加:display:inline-block;??屬性可以將元素設置為行內塊級。

在行內元素span 的CSS樣式中添加:display: block;:將元素設置為塊級元素

修改后的代碼如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>盒子模型-塊級元素,行內元素</title><style type="text/css">/* 塊級元素的特點1.塊級元素獨占一行,標準文檔流2.寬和高可以設置3.margin可以取負數,padding不可以取負數,padding和margin可以相加4.塊級元素margin取同一空間值時,會出現塌陷,就是取最大值而不是相加 */div{border: 1px solid black;}.div1{width: 200px;height: 100px;/* margin: 10px;上下左右margin: 10px 30px;上下 左右margin: 10px auto;盒子在瀏覽器頁面居中,上下留10pxmargin: 10px 20px 30px;上 左右 下margin: 10px 20px 30px 40px;上 右 下 左 */margin-left: 50px;padding-left: 20px;margin-bottom: 20px;display:inline-block;  /* 通過CSS的display: inline-block;屬性可以將元素設置為行內塊級。 */}.div2{width: 100px;height: 50px;margin-left: 20px;}.div3{width: 100px;height: 100px;margin-top: 50px;display: inline-block;}.div4{width: 200px;height: 100px;margin-top: 50px;display: inline-block;}/* 行內元素特點:除span a是行內元素外,其余都是塊級元素1.不獨占一行2.不可以設置寬高,寬高由內容決定3.margin和padding上下設置無效,左右有效4.margin不會在行內元素里出現塌陷 */span{border: 1px solid black;}#sp1{width: 100px;height: 100px;margin-top: 100px;margin-left: 50px;padding-left: 50px;padding-top:50px ;margin-right: 50px;display:block;  /* display: block;:將元素設置為塊級元素 */}#sp2{margin-left:50px ;}</style></head><body><h1>塊級元素</h1><div class="div1">div1<div class="div2">div2</div></div><div class="div3">div3</div><div class="div4">div4</div><h1>行內元素</h1><br><br><span id="sp1">span1span1</span><span id="sp2">span2</span><a href="../個人主題網站/index.html"><h3 align="center">返回首頁</h3></a></body>
</html>

代碼運行:


總結

以上就是今天要講的內容,本文簡單記錄了CSS的盒子模型-塊級元素、行內元素、行內塊級元素和display屬性,僅作為一份簡單的筆記使用,大家根據注釋理解

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/bicheng/81260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81260.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81260.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git/GitLab日常使用的命令指南來了!

在 GitLab 中拉取并合并代碼的常見流程是通過 Git 命令來完成的。以下是一個標準的 Git 工作流&#xff0c;適用于從遠程倉庫&#xff08;如 GitLab&#xff09;拉取代碼、切換分支、合并更新等操作。 &#x1f310; 一、基礎命令&#xff1a;拉取最新代碼 # 拉取遠程倉庫的所…

HTML 表格與div深度解析區別及常見誤區

一、HTML<div>元素詳解 <div>是HTML中最基本的塊級容器元素&#xff0c;本身沒有語義&#xff0c;主要用于組織和布局頁面內容。以下是其核心用法&#xff1a; 1. 基礎結構與特性 <div><!-內部可包含任意HTML元素 --><h2>標題</h2><p…

mybatisPlus 新增時 其他字段的值和 id 保持一致實現方法

MyBatis-Plus 實現 sp_id_path 與 id 同步的方案 要實現新增時 sp_id_path 自動與 id 保持一致&#xff0c;需要在實體類和插入邏輯中做相應處理。MyBatis-Plus 提供了幾種方式來實現這一需求&#xff1a; 方案一&#xff1a;使用 MyBatis-Plus 的自動填充功能 這是最優雅的…

蘭亭妙微設計:為生命科技賦予人性化的交互語言

在醫療科技日新月異的今天&#xff0c;卓越的硬件性能唯有匹配恰如其分的交互語言&#xff0c;方能真正發揮價值。作為專注于醫療UI/UX設計的專業團隊&#xff0c;蘭亭妙微設計&#xff08;www.lanlanwork.com&#xff09;始終相信&#xff1a;每一處像素的排布&#xff0c;都應…

Tcping詳細使用教程

Tcping詳細使用教程 下載地址 https://download.elifulkerson.com/files/tcping/0.39/在windows環境下安裝tcping 在以上的下載地中找到exe可執行文件&#xff0c;其中tcping.exe適用于32位Windows系統&#xff0c;tcping64.exe適用于64位Windows操作系統。 其實tcping是個…

springCloud/Alibaba常用中間件之Seata分布式事務

文章目錄 SpringCloud Alibaba:依賴版本補充Seata處理分布式事務(AT模式)AT模式介紹核心組件介紹AT的工作流程&#xff1a;兩階段提交&#xff08;**2PC**&#xff09; Seata-AT模式使用Seata(2.0.0)下載、配置和啟動Seata案例實戰前置代碼添加全局注解 GlobalTransactional Sp…

COMSOL隨機參數化表面流體流動模擬

基于粗糙度表面的裂隙流研究對于理解地下水的流動、污染物傳輸以及與之相關的地質災害&#xff08;如滑坡&#xff09;等方面具有重要意義。本研究通過蒙特卡洛方法生成隨機表面形貌&#xff0c;并利用COMSOL Multiphysics對隨機參數化表面的微尺度流體流動進行模擬。 參數化…

初識——QT

QT安裝方法 一、項目創建流程 創建項目 入口&#xff1a;通過Qt Creator的歡迎頁面或菜單欄&#xff08;文件→新建項目&#xff09;創建新項目。 項目類型&#xff1a;選擇「Qt Widgets Application」。 路徑要求&#xff1a;項目路徑需為純英文且不含特殊字符。 構建系統…

7-15 計算圓周率

π?131?352!?3573!??357?(2n1)n!?? 輸入格式&#xff1a; 輸入在一行中給出小于1的閾值。 輸出格式&#xff1a; 在一行中輸出滿足閾值條件的近似圓周率&#xff0c;輸出到小數點后6位。 輸入樣例&#xff1a; 0.01輸出樣例&#xff1a; 3.132157 我的代碼 #i…

【圖片識別工具】批量單據識別批量重命名,批量OCR識別圖片文字并重命名,批量改名工具的使用步驟和注意事項

一、適用場景 ??財務與發票管理??&#xff1a;企業需處理大量電子發票或掃描件&#xff0c;通過OCR識別發票代碼、金額等關鍵信息&#xff0c;自動重命名為發票號_金額.pdf格式&#xff0c;便于歸檔與稅務審計。 ??物流單據處理??&#xff1a;物流公司需從運單中提取單…

Modbus TCP轉Profinet網關:數字化工廠異構網絡融合的核心樞紐

在現代工業生產中&#xff0c;隨著智能制造和工業互聯網的不斷發展&#xff0c;數字化工廠成為了制造業升級的重要方向。數字化工廠的核心在于實現設備、數據和人的互聯互通&#xff0c;而這其中&#xff0c;通信協議扮演著至關重要的角色。今天&#xff0c;我們就來探討開疆智…

win11平臺下的docker-desktop中的volume位置問題

因為需要搞個本地的mysql數據庫&#xff0c;而且本地安裝的程序較多&#xff0c;不想再安mysql了&#xff0c;就想到使用docker來安裝。而且因為數據巨大&#xff0c;所以想到直接使用轉移data文件夾的方式。 各種查詢&#xff0c;而且還使用ai查詢&#xff0c;他們都提到&…

【MySQL】項目實踐

個人主頁&#xff1a;Guiat 歸屬專欄&#xff1a;MySQL 文章目錄 1. 項目實踐概述1.1 項目實踐的重要性1.2 項目中MySQL的典型應用場景 2. 數據庫設計流程2.1 需求分析與規劃2.2 設計過程示例2.3 數據庫設計工具 3. 電子商務平臺實踐案例3.1 系統架構3.2 數據庫Schema設計3.3 數…

React學習———CSS Modules(樣式模塊化)

CSS Modules CSS Modules&#xff08;樣式模塊化&#xff09;是一種用于模塊化和局部作用域化CSS樣式的技術&#xff0c;讓CSS只在當前組件內生效&#xff0c;避免全局樣式沖突的技術方案 工作原理 文件命名&#xff1a;通常以.module.css、.module.less、.module.scss等結尾…

agent 智能體應用產品:生圖、生視頻、代碼等

生圖片 Lovart&#xff1a;全球首個設計 Agent https://www.lovart.ai/ 生視頻 AI 視頻 Agent 產品&#xff1a;Medeo https://www.medeo.app/ 代碼 vscode copilot、cursor、trae 其他research manus grok等各個大模型產品

青少年ctf平臺應急響應-應急響應2

題目&#xff1a; 當前服務器被創建了一個新的用戶&#xff0c;請提交新用戶的用戶名&#xff0c;得到的結果 ssh rootchallenge.qsnctf.com -p 30327 這個命令用于通過 SSH 協議連接到指定的遠程服務器。具體解釋如下&#xff1a; ssh&#xff1a;這是在 Unix-like 系統中…

碼蹄集——圓包含

MT1181 圓包含 輸入2個圓的圓心的坐標值&#xff08;x&#xff0c;y&#xff09;和半徑&#xff0c;判斷斷一個圓是否完全包含另一個圓&#xff0c;輸出YES或者NO。另&#xff1a;內切不算做完全包含。 格式 輸入格式&#xff1a;輸入整型&#xff0c;空格分隔。 每行輸入一組…

基于EMD-PCA-LSTM的光伏功率預測模型研究

摘要 本文提出了一種結合經驗模態分解(EMD)、主成分分析(PCA)和長短期記憶網絡(LSTM)的混合預測模型,用于提高光伏功率預測的準確性。該模型首先利用EMD算法將非平穩的光伏功率序列分解為多個本征模態函數(IMF),然后通過PCA對多維氣象特征進行降維處理,最后將處理后的特征輸…

MYSQL創建索引的原則

創建索引的原則包括&#xff1a; 表中的數據量超過10萬以上時考慮創建索引。 選擇查詢頻繁的字段作為索引&#xff0c;如查詢條件、排序字段或分組字段。 盡量使用復合索引&#xff0c;覆蓋SQL的返回值。 如果字段區分度不高&#xff0c;可以將其放在組合索引的后面。 對于…

vue+threeJS 大理石貼圖

嗨&#xff0c;我是小路。今天主要和大家分享的主題是“vuethreeJS 大理石貼圖”。 通過 Vue 3 和 Three.js 實現大理石紋理效果&#xff0c;并將這種技術應用于產品展示、虛擬展覽、甚至是互動游戲之中&#xff0c;其潛力無窮。今天主要介紹基礎的大理石貼圖。 vueth…