【前端】CSS浮動(學習筆記)

一、浮動

1、傳統網頁布局

網頁布局的本質:用 CSS 來擺放盒子,把盒子擺放到相應位置。

CSS 提供了三種傳統布局方式(盒子如何進行排列順序)

  1. 普通流(標準流)
  2. 浮動
  3. 定位

實際開發中,一個頁面基本都包含了這三種布局方式(后面移動端學習新的布局方式) 。

2、標準流

標準流:就是標簽按照規定好默認方式排列,標準流是最基本的布局方式。

  1. 塊級元素會獨占一行,從上向下順序排列
  2. 行內元素會按照順序,從左到右順序排列,碰到父元素邊緣則自動換行

3、浮動的用途

有很多的布局效果,標準流沒有辦法完成,此時就可以利用浮動完成布局。 因為浮動可以改變元素標簽默認的排列方式。

浮動最典型的應用:可以讓多個塊級元素一行內排列顯示。

網頁布局第一準則:多個塊級元素縱向排列找標準流,多個塊級元素橫向排列找浮動。

4、浮動的概述

float 屬性用于創建浮動框,將其移動到一邊,直到左邊緣或右邊緣觸及包含塊或另一個浮動框的邊緣

選擇器 { float: 屬性值; }
屬性值描述
none元素不浮動(默認值)
left元素向左浮動
right元素向右浮動

5、浮動特性

1)浮動元素會脫離標準流(脫標):浮動的盒子不再保留原先的位置

2)浮動的元素會一行內顯示并且元素頂部對齊

浮動的元素是互相貼靠在一起的(不會有縫隙),如果父級寬度裝不下這些浮動的盒子,多出的盒子會另起一行對齊。

3)浮動的元素會具有行內塊元素的特性

任何元素都可以浮動。不管原先是什么模式的元素,添加浮動之后具有行內塊元素相似的特性。

  • 如果塊級盒子沒有設置寬度,默認寬度和父級一樣寬,但是添加浮動后,它的大小根據內容來決定。
  • 浮動的盒子中間是沒有縫隙的,是緊挨著一起的。

6、浮動元素經常和標準流父級搭配使用

先用標準流的父元素排列上下位置,之后內部子元素采取浮動排列左右位置。

先設置盒子的大小,之后設置盒子的位置。

7、浮動布局注意點

1)浮動和標準流的父盒子搭配。

先用標準流的父元素排列上下位置,之后內部子元素采取浮動排列左右位置。

2)一個元素浮動了,理論上其余的兄弟元素也要浮動。

一個盒子里面有多個子盒子,如果其中一個盒子浮動了,那么其他兄弟也應該浮動,以防止引起問題。

浮動的盒子只會影響浮動盒子后面的標準流,不會影響前面的標準流。

二、清除浮動

1、 為什么需要清除浮動?

由于父級盒子很多情況下,不方便給高度,但是子盒子浮動又不占有位置,最后父級盒子高度為 0 時,就會影響下面的標準流盒子。

  1. 父級沒高度
  2. 子盒子浮動了。
  3. 影響下面布局了,我們就應該清除浮動了

由于浮動元素不再占用原文檔流的位置,所以它會對后面的元素排版產生影響

2、清除浮動本質

清除浮動的本質是清除浮動元素造成的影響

如果父盒子本身有高度,則不需要清除浮動

清除浮動之后,父級就會根據浮動的子盒子自動檢測高度。父級有了高度,就不會影響下面的標準流了。

3、清除浮動

清除浮動的策略是閉合浮動

選擇器 {clear: both;
}
1)額外標簽法

額外標簽法也稱為隔墻法,是 W3C 推薦的做法。

額外標簽法會在浮動元素末尾添加一個空的標簽。例如 <div style="clear:both"></div>,或者其他標簽(如<br />等)。

  • 優點: 通俗易懂,書寫方便
  • 缺點: 添加許多無意義的標簽,結構化較差
  • 注意: 要求這個新的空標簽必須是塊級元素
2)父級添加 overflow

可以給父元素添加 overflow 屬性,將其屬性值設置為 hidden、 auto 或 scroll 。

  • 優點:代碼簡潔
  • 缺點:無法顯示溢出的部分
3):after 偽元素法

:after 方式是額外標簽法的升級版。也是給父元素添加

.clearfix:after { content: ""; display: block; height: 0; clear: both; visibility: hidden; 
} 
.clearfix { /* IE6、7 專有 */ *zoom: 1;
}
  • 優點:沒有增加標簽,結構更簡單
  • 缺點:照顧低版本瀏覽器
4)雙偽元素清除浮動

給父元素添加

.clearfix:before,.clearfix:after {content:"";display:table; 
}
.clearfix:after {clear:both; 
}
.clearfix {*zoom:1;
}
  • 優點:代碼更簡潔
  • 缺點:照顧低版本瀏覽器

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

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

相關文章

Go 反射技術判斷結構體字段數據為空

Api介紹 在Go語言中&#xff0c;反射API用于在運行時檢查類型信息、獲取和修改變量的值以及調用對象的方法。反射API包含了一組函數和類型&#xff0c;可以在程序運行時動態地操作對象。 以下是一些常用的反射API&#xff1a; reflect.TypeOf&#xff1a;返回一個值的類型信息。…

并查集基礎模板

題目我上面有人兒 代碼 #include <bits/stdtr1c.h> using namespace std; const int N 1005; int f[N]; int n; int siz[N]; // 初始化并查集 // void init() // { // for (int i 1; i < n; i) // { // f[i] i; // 初始化所有的節點都是自己的父節點 //…

Tomcat頭上有個叉叉

問題原因&#xff1a; 這是因為它就是個空的tomcat,并沒有導入項目運行 解決方案&#xff1a; war模式&#xff1a;發布模式&#xff0c;正式發布時用&#xff0c;將WEB工程以war包的形式上傳到服務器 war exploded模式&#xff1a;開發時用&#xff0c;將WEB工程的文件夾直接…

【網絡協議】LACP(Link Aggregation Control Protocol,鏈路聚合控制協議)

文章目錄 LACP名詞解釋LACP工作原理互發LACPDU報文確定主動端確定活動鏈路鏈路切換 LACP和PAgP有什么區別&#xff1f;LACP與LAG的關系LACP模式更優于手動模式LACP模式對數據傳輸更加穩定和可靠LACP模式對聚合鏈路組的故障檢測更加準確和有效 推薦閱讀 LACP名詞解釋 LACP&…

day11 前k個高頻元素

// 小頂堆 class mycomparison { public: bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) { return lhs.second > rhs.second; } }; vector<int> topKFrequent(vector<int>& nums, int k) { // 要統計元素出現…

智能外呼有什么好處?

智能外呼是一種自動化的電話營銷方式&#xff0c;利用AI智能外呼技術和大量數據分析&#xff0c;幫助企業實現與客戶之間的高效、精準、個性化的客戶溝通&#xff0c;還可以在客戶服務、市場營銷和銷售等方面帶來助力。那么&#xff0c;智能外呼有什么好處呢&#xff1f; 1. 提…

spring IOC bean為什么默認是單例的

首先解釋一下什么是單例 bean&#xff1f; 單例的意思就是說在 Spring IoC 容器中只會存在一個 bean 的實例&#xff0c;無論一次調用還是多次調用&#xff0c;始終指向的都是同一個 bean 對象 用代碼來解釋單例 bean public class UserService {public void sayHello() {Syst…

交叉編譯工具鏈makefile

linux系統默認搜索頭文件地址&#xff1a;/usr/include/文件夾&#xff1b; Windows系統默認搜索頭文件地址&#xff1a;不同軟件好像可以設置不同的地址&#xff1b;例如visual studio好像可以設置附加包含目錄&#xff0c;包含目錄等 Linux系統庫文件路徑&#xff1a;/lib文…

通過生成模擬釋放無限數據以實現機器人自動化學習

該工作推出RoboGen&#xff0c;這是一種生成機器人代理&#xff0c;可以通過生成模擬自動大規模學習各種機器人技能。 RoboGen 利用基礎模型和生成模型的最新進展。該工作不直接使用或調整這些模型來產生策略或低級動作&#xff0c;而是提倡一種生成方案&#xff0c;該方案使用…

命運天注定?

羅翔老師經常說&#xff1a;人這一生&#xff0c;能自己決定的也許只有5&#xff05;&#xff0c;有95%是你決定不了的。 不是說事在人為&#xff0c;人定勝天嗎&#xff1f; 哪吒也在電影的高潮喊出了&#xff1a;我命由我不由天。 聽上去很熱血&#xff0c;但實際咱們每個…

Java泛型:詳解使用技巧及舉例說明

Java泛型&#xff1a;詳解使用技巧及舉例說明 1. 引言 Java泛型是一項強大的編程概念&#xff0c;它允許我們編寫通用的代碼&#xff0c;在編寫代碼時不需要預先指定具體的數據類型。泛型的引入解決了在傳統的編程中需要頻繁進行類型轉換的問題&#xff0c;提高了代碼的安全性…

simulink MATLABFunction模塊中實時函數調用函數的使用

樣例 function Predyy matlabceshi(input, Time_s) input1 input; Time_s1 Time_s; Predyy ee(input1) mm(Time_s1); end 上面是主要部分&#xff0c;下面是被調用部分 function A ee(input1) A input1 * 100; end function B mm(Time_s1) B Time_s1 * 100; end 模型…

算法競賽---反悔貪心

反悔貪心 Work Scheduling G 什么是返回貪心呢&#xff0c;就是先選擇&#xff0c;遇到更好的之后在反悔選擇更好的&#xff0c;這是符合貪心的邏輯的。 #include <bits/stdc.h> // https://www.luogu.com.cn/problem/P2949 using namespace std; struct node {int d,…

Linux(ubuntu)利用ffmpeg+qt設計rtsp_rtmp流媒體播放器(完全從0開始搭建環境進行開發)

一、前言 從0開始搭建Linux下Qt、ffmpeg開發環境。 從安裝虛擬機開始、安裝Linux(Ubuntu)系統、安裝Qt開發環境、編譯ffmpeg源碼、配置ffmpeg環境、編寫ffmpeg項目代碼、完成項目開發。 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開…

公務員國考省考小白需知

文章目錄&#xff1a; 一&#xff1a;分類 1.國考 2.省考 二&#xff1a;必備途徑 1.相關網站 1.1 官網 1.1.1 必須知道的 1.1.2 比較好用的 1.1.3 事業單位的 1.2 機構 ??1.3 時事 ??1.4 資源 1.5 題庫 1.6 真題 ?2.相關公主號 3.應用 4.群聊如何找 三…

笙默考試管理系統-MyExamTest----codemirror(53)

笙默考試管理系統-MyExamTest----codemirror&#xff08;53&#xff09; 目錄 笙默考試管理系統-MyExamTest----codemirror&#xff08;51&#xff09; 一、 笙默考試管理系統-MyExamTest----codemirror 二、 笙默考試管理系統-MyExamTest----codemirror 三、 笙默考試…

【TwinCAT學習筆記 1】TwinCAT開發環境搭建

寫在前面 作為技術開發人員&#xff0c;開啟任何一項開發工作之前&#xff0c;首先都要搭建好開發環境&#xff0c;所謂磨刀不誤砍材工&#xff0c;一定要有耐心&#xff0c;一次不行卸載再裝。我曾遇到過一個學生&#xff0c;僅搭建環境就用了兩周&#xff0c;這個過程也是一…

ATM的轉賬

【 1 】明確我們要實現的功能 # 用戶功能菜單 # 1.注冊 # 2.登陸 # 3.取款 # 4.轉賬 # 5.充值余額 # 6.查看流水 # 7.查看銀行信息(查看自己…

基于Redis在定時任務里判斷其他定時任務是否已經正常執行完的方案

執行的定時任務是基于其他定時任務計算得到的結果基礎上做操作的&#xff0c;那么如何來確定其他存在數據依賴的定時任務已經執行完成呢&#xff1f; 在分布式環境里&#xff0c;可通過集群的redis來解決這個問題&#xff1a; 即&#xff0c;在跑批任務開始時&#xff0c;將任…

SSD數據在寫入NAND之前為何要隨機化?-part2

接part1介紹&#xff1a; 如何達到這個目的&#xff1f;業內常用的是對寫入數據的數據進行隨機化處理&#xff0c;這部分主要在SSD控制器中通過硬件實現。 上圖b/c&#xff1a;在控制器芯片通過硬件方式實現隨機化的讀寫流程&#xff0c;這個也是業內通常做法。隨機化處理是在寫…