19-元素顯示模式及浮動(CSS3)

知識目標

  1. 掌握標準文檔流的解析規則
  2. 掌握元素的顯示模式
  3. 掌握元素浮動屬性語法與使用
  4. 掌握浮動塌陷解決方法

1. 標準文檔流

在這里插入圖片描述

2. 元素顯示模式

元素顯示模式就是元素(標簽)以什么方式進行顯示,比如<div>獨占一行,一行可以放多個<span>。HTML元素一般分為塊元素行內元素兩種類型。

2.1 塊狀元素

常見的塊狀元素
<div>、<p>、<h1> - <h6>、<ul>、<ol>、<li>、<form> 等。
特點:

  • 獨占一行:塊狀元素在頁面中會獨自占據一行空間,無論其內容多少,后續元素會自動換行顯示。
  • 可設置寬度和高度:能夠通過 CSS 的 width 和 height屬性來明確指定其寬度和高度。若未設置寬度,默認會占據父元素的全部寬度。
  • 可設置內外邊距:可以使用 padding(內邊距)和 margin(外邊距)屬性來調整元素與內容、其他元素之間的距離。
  • 寬度默認是容器(父級寬度)的100%
  • 是一個容器/盒子,里面可以放行內或者塊級元素。

注意:

  • 文字類的元素內不能包含塊級元素,如<h1>~<h6>
  • <p>標簽主要用于存放文字,因此<p>里面不能放塊級元素,特別是不能放<div>

2.2 行內元素

常見的行內元素
<a>、<img>、<input>、<label>、<select>、<textarea>、<span> 等。

特點:

  • 不獨占一行:行內元素會在同一行內顯示,不會強制換行,多個行內元素可以并排顯示。
  • 寬度和高度由內容決定無法通過 CSS 的 width 和 height 屬性來設置其寬度和高度,其大小取決于元素內部的內容。
  • 內外邊距設置受限:水平方向的 padding 和 margin 可以正常設置,但垂直方向的 padding 和 margin設置可能不會產生預期效果。
  • 行內元素只能容納文本或其他行內元素。

注意:

  • 鏈接里面不能再放鏈接
  • 特殊情況鏈接<a>里面可以放塊級元素,但是給<a>轉換一下塊級模式最安全。

2.3 行內塊元素

在行內元素中有幾個特殊的標簽——<img />、<input />、<td>, 它們同時具有塊元素和行內元素的特點。沒有專門的學名,只是有些資料稱它們們行內塊元素
特點:

  • 和相鄰內元素(行內塊)在一行上,但是他們之間會有空白縫隙,一行可以顯示多個(行內元素特點)。
  • 默認寬度就是它本身內容的寬度(行內元素特點)。
  • 高度、行高、外邊距以及內邊距都可以控制(塊級元素特點)。

2.4 顯示模式總結

顯示模式總結

2.5 顯示模式轉換-display屬性

在這里插入圖片描述
question: 為什么要對元素進行轉換?
回答:網頁是由多個塊元素行內元素構成的盒子排列而成的。如果希望行內元素具有塊元素的某些特性,例如可以設置寬高,或者需要塊元素具有行內元素的某些特性,例如不獨占一行排列,可以使用display屬性對元素的類型進行轉換。

3. 盒子浮動屬性語法與使用

3.1 float屬性

元素的浮動是指設置了浮動屬性的元素會脫離標準文檔流的控制,移動到其父元素中指定位置的過程。
設置浮動屬性的語法格式:選擇器{float:屬性值;}
常用屬性值:left 左浮動 right 右浮動 none 不浮動(默認值)

3.2 clear屬性

為什么要清除浮動?在網頁中,由于浮動元素不再占用原文檔流的位置,使用浮動時會影響后面相鄰的固定元素,這時,如果要避免浮動對其他元素的影響,就需要清除浮動
清除浮動的語法格式: 選擇器{clear:屬性值;}
在這里插入圖片描述
clear屬性只能清除元素左右兩側浮動的影響。然而在制作網頁時,經常會遇到一些特殊的浮動影響。
由于子元素和父元素為嵌套關系,不存在左右位置,所以使用clear屬性并不能清除子元素浮動對父元素的影響。

3.3 浮動塌陷解決辦法

3.3.1 浮動塌陷產生的原因

在正常的文檔流中,元素會按照從上到下、從左到右的順序依次排列,父元素的高度會根據子元素的高度自動調整。但當子元素設置了 float 屬性(如 float: left 或 float: right)后,子元素會脫離正常的文檔流,不再占據原有的空間,此時父元素就無法感知到子元素的高度,從而導致父元素的高度塌陷為 0。
如下案例:因子類浮動導致父類高度為0。
在這里插入圖片描述

3.3.2 浮動塌陷解決方案

解決方案1: 給父元素設置固定的高度
在這里插入圖片描述
解決方案2: 使用clear屬性創建空元素
在浮動元素的末尾添加一個空的塊級元素,并為其設置 clear: both 屬性,強制該元素在浮動元素之后顯示,從而撐開父元素的高度。該方法會多很多無用標簽
在這里插入圖片描述
解決方案3:使用BFC(塊級格式化上下文)
BFC 是一個獨立的渲染區域,規定了內部的塊級元素如何布局,并且與外部元素相互隔離。可以通過為父元素設置一些特定的 CSS 屬性來創建 BFC,從而使其包含浮動的子元素。此種方法代碼簡潔,但無法顯示
溢出
部分。常見的創建 BFC 的方式有:

  • float 值為 left 或 right
  • overflow 值不為 visible(如 overflow: auto 或 overflow: hidden)
  • display 值為 inline-block、table-cell 等
.parent {border: 2px solid red;overflow: auto; /* 創建 BFC */
}

**解決方案4:**使用偽元素清除浮動
這是一種比較常用且推薦的方法,通過為父元素添加偽元素,并為偽元素設置 clear: both 屬性來清除浮動。沒有增加標簽,結構簡單。但是屬性CSS3特性。

.parent::after {content: "";display: block;clear: both;
}

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

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

相關文章

HTML jQuery 項目 PDF 批注插件庫在線版 API 示例教程

本文章介紹 HTML && jQuery Web項目中 PDF 批注插件庫 ElasticPDF 在線版 API 示例教程&#xff0c;API 包含 ① 導出批注后PDF數據&#xff1b;② 導出純批注 json 數據&#xff1b;③ 加載舊批注&#xff1b;④ 切換文檔&#xff1b;⑤ 切換用戶&#xff1b;⑥ 清空批…

CATIA裝配體全自動存儲解決方案開發實戰——基于遞歸算法的產品結構樹批量處理技術

一、功能定位與技術架構 本工具針對CATIA V5裝配體文件管理場景&#xff0c;實現了一套全自動遞歸存儲系統&#xff0c;主要功能包括&#xff1a; ?智能路徑選擇&#xff1a;通過Tkinter目錄對話框實現可視化路徑選擇?產品結構遞歸解析&#xff1a;深度優先遍歷裝配體中的子…

C#:接口(interface)

目錄 接口的核心是什么&#xff1f; 1. 什么是接口&#xff08;Interface&#xff09;&#xff0c;為什么要用它&#xff1f; 2. 如何定義和使用接口&#xff1f; 3.什么是引用接口&#xff1f; 如何“引用接口”&#xff1f; “引用接口”的關鍵點 4. 接口與抽象類的區…

基于卷積神經網絡CNN實現電力負荷多變量時序預測(PyTorch版)

前言 系列專欄:【深度學習:算法項目實戰】?? 涉及醫療健康、財經金融、商業零售、食品飲料、運動健身、交通運輸、環境科學、社交媒體以及文本和圖像處理等諸多領域,討論了各種復雜的深度神經網絡思想,如卷積神經網絡、循環神經網絡、生成對抗網絡、門控循環單元、長短期記…

關于inode,dentry結合軟鏈接及硬鏈接的實驗

一、背景 在之前的博客 缺頁異常導致的iowait打印出相關文件的絕對路徑-CSDN博客 里 2.2.3 一節里&#xff0c;我們講到了file&#xff0c;fd&#xff0c;inode&#xff0c;dentry&#xff0c;super_block這幾個概念&#xff0c;在這篇博客里&#xff0c;我們針對inode和dentr…

游戲引擎學習第201天

倉庫:https://gitee.com/mrxiao_com/2d_game_5 回顧之前的內容&#xff0c;并遇到了一次一階異常&#xff08;First-Chance Exception&#xff09;。 歡迎來到新一期的開發過程&#xff0c;我們目前正在編寫調試接口代碼。 當前&#xff0c;我們已經在布局系統上進行了一些工…

計算機視覺算法實戰——基于YOLOv8的行人流量統計系統

?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ??? ????????? ?? 引言:智能客流分析的市場需求 在零售、交通、安防等領域,準確的行人流量統計對于商業決策、公共安全管理…

Redis是什么?架構是怎么樣的?

目錄 前言 一,Redis架構 1.1 本地緩存 1.2 遠程緩存 二,強大的Redis優點 2.1 支持多種數據類型 2.2 內存過期策略 2.3 內存淘汰策略 2.4 持久化 三,Redis是什么 前言 我是一個程序員,維護了一個商品服務,它的背后直連Mysql數據庫,假設商品服務對外每秒需要提供1萬次…

藍橋杯真題——傳送陣

原題連接&#xff1a;藍橋杯2024年第十五屆省賽真題-傳送陣 - C語言網 知識點&#xff1a;并查集 題目描述 小藍在環球旅行時來到了一座古代遺跡&#xff0c;里面并排放置了 n 個傳送陣&#xff0c;進入第 i 個傳送陣會被傳送到第 ai 個傳送陣前&#xff0c;并且可以隨時選擇…

彩虹表攻擊

1. 引言 密碼安全一直是信息安全領域的重要課題。攻擊者可以利用**暴力破解(Brute-Force Attack)和字典攻擊(Dictionary Attack)等方式嘗試破解密碼。然而,計算機性能的提升使得這些方法的效率不斷提高,其中彩虹表攻擊(Rainbow Table Attack)**是一種極具威脅性的密碼…

Vue2 監聽器 watcher

文章目錄 前言監聽器的作用&#xff1a;工作流程&#xff1a;基本用法1. 簡單監聽2. 對象形式配置 使用場景1. 執行異步操作2. 監聽路由變化3. 復雜對象/數組變化 關鍵配置項與計算屬性的區別動態添加監聽器注意事項 前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&a…

Linux系統程序設計:從入門到高級Day02

這一篇 我帶大家復習一下&#xff0c;C語言中的文件 那一部分 大家注意 這里的圖并非原創 是當時我老師的圖片 本片作用主要是 后續會有文件相關操作&#xff0c;這篇幫大家復習C語言文件中的內容 有助于大家后面的理解。 文章中代碼大多是圖片格式&#xff0c;是因為這是我…

N元語言模型的時間和空間復雜度計算

對于N元語言模型&#xff0c;時間復雜度是O(V ^ {N-1})&#xff0c;空間復雜度是O(V ^ {N})&#xff0c;N是詞匯表的大小。 空間復雜度&#xff1a;存儲所有可能的N-1元組及其對應的詞的頻次需要大量的存儲空間。例如&#xff0c;對于一個三元模型&#xff08;N3&#xff09;&…

Tmux 核心操作速查指南

Tmux 最常用操作筆記 1. 基本概念 會話&#xff08;Session&#xff09;&#xff1a;一個tmux會話可以包含多個窗口&#xff0c;適合長期任務管理。窗口&#xff08;Window&#xff09;&#xff1a;每個窗口是一個獨立的終端界面&#xff0c;可包含多個面板。面板&#xff08…

哈希表系列一>兩數之和

目錄 題目&#xff1a;方法&#xff1a;暴力代碼&#xff1a;優化后代碼&#xff1a; 題目&#xff1a; 鏈接: link 方法&#xff1a; 暴力代碼&#xff1a; public int[] twoSum(int[] nums, int target) {解法一&#xff1a;暴力解法&#xff1a;int n nums.length;for(int…

端到端機器學習流水線(MLflow跟蹤實驗)

目錄 端到端機器學習流水線(MLflow跟蹤實驗)1. 引言2. 項目背景與意義2.1 端到端機器學習流水線的重要性2.2 MLflow的作用2.3 工業級數據處理需求3. 數據集生成與介紹3.1 數據集構成3.2 數據生成方法4. 機器學習流水線與MLflow跟蹤4.1 端到端機器學習流水線4.2 MLflow跟蹤實驗…

英語學習:讀科技論文的難處

如果讀起科技論文&#xff0c; 我們就知道自己到底欠缺什么知識了&#xff0c; 那是一個挨著一個的缺。 而且還沒有維基百科可用。 怎么辦&#xff1f;沒辦法&#xff01;硬看&#xff01; 而且還要面臨語言的差異性困難。比如這一句怎么翻譯比較合適&#xff1f;還是直接不翻譯…

001 使用單片機實現的邏輯分析儀——吸收篇

本內容記錄于韋東山老師的畢設級開源學習項目&#xff0c;含個人觀點&#xff0c;請理性閱讀。 個人筆記&#xff0c;沒有套路&#xff0c;一步到位&#xff0c;歡迎交流&#xff01; 00單片機的邏輯分析儀與商業版FPGA的邏輯分析儀異同 對比維度自制STM32邏輯分析儀商業版邏…

基數排序算法解析與TypeScript實現

基數排序&#xff08;Radix Sort&#xff09;是一種高效的非比較型整數排序算法&#xff0c;通過逐位分配與收集的方式實現排序。本文將深入解析其工作原理&#xff0c;并給出完整的TypeScript實現。 一、算法原理 1. 核心思想 多關鍵字排序&#xff1a;將整數按位數切割成不同…

最新全開源碼支付系統,贈送3套模板

最新全開源碼支付系統&#xff0c;贈送3套模板 碼支付是專為個人站長打造的聚合免簽系統&#xff0c;擁有卓越的性能和豐富的功能。它采用全新輕量化的界面UI 讓您能更方便快捷地解決知識付費和運營贊助的難題&#xff0c;同時提供實時監控和管理功能&#xff0c;讓您隨時隨地…