css --- [讀書筆記] 浮動(float) 與 清除浮動

說明

  • 源代碼
  • 學習

1. 浮動

1.1 CSS布局的三種機制

網頁布局的核心 — 利用 CSS 來擺放盒子

CSS提供了3種機制來設置盒子的擺放位置: 標準流、浮動和定位.

  1. 標準流:
    • 塊級元素(div、hr、p、h1~h6、ul、ol、dl、form、table)會獨占一行,從上向下順序排列
    • 行內元素(span、a、i、em)按照順序從左到右排列,遇到父元素邊緣自動換行
  2. 浮動:
    • 讓多個盒子一行顯示
  3. 定位:
    • 將盒子定在瀏覽器的某一個位置

1.2 浮動

1.2.1 讓多個盒子在同一行顯示

div{float: left;
}
  • 元素的浮動式值: 設置了浮動屬性的元素會: 脫離普通標準流、移動到指定位置.

1.3 什么是浮動(float)

  • 浮動: 會改變float屬性的display屬性(會變為類似于inline-block)
div{width: 200px;height: 200px;background-color: pink;
}
  • 注意: 浮動的元素互相貼靠一起的,但是如果父級寬度裝不下這些盒子,多出的盒子會另起一行對齊

1.4 浮動的目的(float)

我們使用浮動的核心目的 — 讓多個塊級盒子在同一行顯示.

1.5 浮動的應用

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

我們直到,浮動式脫標的,會影響下面的標準流元素,此時,我們需要給浮動的元素添加一個標準流的父親,這樣,最大化的減小了對其他標準流的影響.

一個完整的網頁,是 標準流 + 浮動 + 定位

1.6 浮動的擴展

1) 浮動元素與父盒子的關系

  • 子盒子的浮動參照父盒子對齊
  • 不會與父盒子的邊框重疊,也不會超過父盒子的內邊距

2) 浮動元素與兄弟盒子的關系

在一個父級盒子種,如果前一個兄弟盒子是:

- 浮動的,那么當前盒子會與前一個盒子的頂部對齊
- 普通流,那么當前盒子會顯示在前一個兄弟盒子的下方

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

建議:如果一個盒子里面有多個盒子,如果其中一個盒子浮動了,其他兄弟也應該浮動


2. 為什么要清除浮動

2.1 為什么要清除浮動

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

  • 總結:
    • 由于浮動元素不再占用文檔里的位置,所以它會對后面的元素排版產生影響
    • 準確地說,并不是清除浮動,而是清除浮動后造成的影響

2.2 清除浮動的本質

清除浮動主要是為了解決父級元素因為子級元素浮動引起內部高度為0的問題

2.3 清除浮動的方法

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

  • 語法:
選擇器{clear: both;}
屬性值描述
left不允許左側有浮動元素
right不允許右側有浮動元素
both同時清除左右兩側浮動的影響

但是我們實際工作做那個,幾乎只用 clear: both

1) 額外標簽法(隔墻法)

W3C推薦的做法是通過在浮動元素末尾添加一個空的標簽<div style="clear: both">,或其他標簽br等亦可
  • 優點: 通俗易懂,書寫方便
  • 缺點: 添加許多無意義的標簽,結構化較差

2) 父級元素添加overflow屬性方法

可以給父級添加: overflow為 hidden| auto | scroll 都可以實現
  • 優點: 代碼簡潔
  • 缺點: 內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢出的元素

3) 使用after偽元素清除浮動

:after方式為空元素額外標簽法的升級版,好處是不再單獨加標簽了

使用方法:

.clearfix:after{content: "";display: block;height: 0;clear:both;visibility: hidden;
}
.claerfix {*zoom: 1;			/* ie6,7清除浮動的樣式 */
}
  • 優點: 符合閉合浮動思想,結構語義化明確
  • 缺點: ie6~7不支持after

4) 使用雙偽元素清除浮動

使用方法:

.clearfix:before, .clearfix:after {content:"";display: table;
}
.clearfix:after {clear: both;
}
.clearfix {*zoom: 1;
}
  • 優點: 代碼更簡潔
  • 缺點: 由于IE6~IE7不支持:after, 使用zoom:1觸發hasLayout.

2.4 清除浮動總結

  1. 父級沒高度
  2. 子盒子浮動
  3. 影響兄弟元素布局
清除浮動的方式優點缺點
額外標簽法(隔墻法)通俗易懂,書寫方便添加許多無意義的標簽,結構化較差
父級overflow: hidden書寫簡單溢出隱藏
父級偽元素結構語義化正確兼容性問題(ie6~ie7)
父級偽元素結構語義化正確兼容性問題(ie6~ie7

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

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

相關文章

Shiro身份認證---轉

目錄1.Shro的概念2.Shiro的簡單身份認證實現3.Shiro與spring對身份認證的實現前言&#xff1a; Shiro 可以非常容易的開發出足夠好的應用&#xff0c;其不僅可以用在 JavaSE 環境&#xff0c;也可以用在 JavaEE 環境。Shiro 可以幫助我們完成&#xff1a;認證、授權、加密、會話…

模板 Trie樹

模板 Trie樹 code&#xff1a; #include <iostream> #include <cstdio>using namespace std;const int wx20017;inline int read(){int sum0,f1; char chgetchar();while(ch<0||ch>9){if(ch-)f-1; chgetchar();}while(ch>0&&ch<9){sum(sum<…

css --- [練手小項目]樣式小結(字體、顏色的語義 清除浮動的使用)

說明 源代碼 1.1 CSS屬性書寫順序(重點) 建議遵循以下順序: 1.布局定位屬性: display / position / float / clear / visibility / overflow (建議display第一個寫, 畢竟關系到模式) 2.自身屬性: width / height / margin / padding / border / background 3.文本屬性: co…

《Hive編程指南》14.3 投影變換的實踐出錯原因分析

自己在學習14.3節投影變換執行SQL語句hive (default)> SELECT TRANSFORM(col1, col2) USING /bin/cut -f1 AS newA, newB FROM a;時出現了這個錯誤 Ended Job job_local1231989520_0004 with errors Error during job, obtaining debugging information... FAILED: Executi…

鏈式前向星(轉)

轉自大佬博客https://blog.csdn.net/ACdreamers/article/details/16902023 我們首先來看一下什么是前向星. 前向星是一種特殊的邊集數組,我們把邊集數組中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序, 并記錄下以某個點為起點的所有邊在數組中的起始位…

javascript --- [FormData的使用] 表單元素轉換成表單 對象二進制文件上傳

1. FormData的作用 1.1 將Form表單元素,轉換成表單對象 在使用Ajax進行表單提交的時候,采用原生的js獲取dom,然后添加屬性.當表單項很多的時候,代碼會很多.不利于后期閱讀、維護. 這時,可以使用FormData對象,將HTML中的表單元素轉換成表單對象,如下: <!-- 表單對象 -->…

android studio gradle 國內代理

使用阿里云的國內鏡像倉庫地址&#xff0c;就可以快速的下載需要的文件 修改項目根目錄下的文件 build.gradle &#xff1a; buildscript { repositories { maven{ url http://maven.aliyun.com/nexus/content/groups/public/} } } allprojects { …

爬蟲—01-爬蟲原理與數據抓取

爬蟲的更多用途 12306搶票 網站上的頭票 短信轟炸關于Python網絡爬蟲&#xff0c;我們需要學習的有&#xff1a; Python基礎語法學習&#xff08;基礎知識&#xff09;對HTML頁面的內容抓取&#xff08;數據抓取&#xff09;對HTML頁面的數據提取&#xff08;數據提取&#xff…

javascript --- [FormData的使用] 文件上傳進度條展示 文件上傳圖片即使預覽

1. 準備工作 因為要發送Ajax請求,而Ajax技術的運行需要網站環境,因此其中一個解決方案是,將頁面作為網站的靜態資源暴露出來,然后通過瀏覽器進行訪問. 1.1 靜態資源 使用express將public下面的資源暴露出來在根目錄下面新建一個public文件夾和一個app.js文件 // app.js con…

2018年春閱讀計劃---閱讀筆記4

uml圖的幾大特點&#xff1a;容易掌握 2.面向對象 3.可視化&#xff0c;表達能力強大 4.容易掌握使用 5.與編程語言的關系。用c&#xff0c;java等編程語言可以實現一個系統&#xff0c;支持uml 的一些工具&#xff0c;可以根據uml所建立的系統模型自動產生代碼框架。 uml的5類…

TP5之安全機制

防止sql注入 1、查詢條件盡量使用數組方式&#xff0c;具體如下&#xff1a; 1 $wheres array(); 2 3 $wheres[account] $account; 4 5 $wheres[password] $password; 6 7 $User->where($wheres)->find(); 2、如果必須使用字符串&#xff0c;建議使用預處理機制&am…

javascript --- [jsonp] script標簽的妙用(繞過同源限制)

1. 同源 1.1 什么是同源 協議、域名、端口號相同 1.2 為什么有同源政策 同源政策是為了保護用戶信息的安全,放置惡意的網站竊取數據。最初的同源政策是指A網站再客戶端設置的Cookie,B網站是不能訪問的. 隨著互聯網的發展,同源政策也越來越嚴格,在不同源的情況下,其中有一項…

SQL登錄報錯

在安裝完SQL后&#xff0c;發現報出了error40和53的錯誤&#xff0c;作為小白的我也是一臉懵逼&#xff0c;明明一切都是按照默認加下一步安裝的&#xff0c;為什么到了連接數據庫的時候就出現了問題呢&#xff1f; 后來經過調查&#xff0c;發現需要將sql配置管理的ip中的一項…

復活

此刻--復活轉載于:https://www.cnblogs.com/lyqlyq/p/9881646.html

javascript --- 瀑布流的實現

說明 源代碼 1. 瀑布流 出現問題: 設計給的圖片不是同一個尺寸大小,因此不能規則的放入到給定的DOM結構中.此時,需要使用瀑布流技術來解決這個問題 解決的思路: 讓圖片等寬、不等高 核心: 用到了定位 img {position: absolute;left: 最小的索引 * 圖片的寬度;top: 最小的圖…

不同權限訪問詳細細節

1 package com.package1;2 3 /**4 * 程序執行入口和調用方法在不同類但在同一個包中&#xff0c;除了private方法&#xff0c;其他任何權限的方法都可以都可相互調用5 * author Administrator6 *7 */8 public class Source {9 public static void main(String[] args) …

洛谷P2822組合數問題

傳送門啦 15分暴力&#xff0c;但看題解說暴力分有30分。 就是找到公式&#xff0c;然后套公式。。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std;long long read(){char ch;bool f false;wh…

基于Docker的GoldenGate部署

前言Docker最近幾年異常火爆&#xff0c;主要是因為其方便、快捷、輕量&#xff0c;相對于VM&#xff0c;它不需要占用太多資源&#xff0c;隨時可以創建、刪除&#xff0c;或在已有image上添加一些軟件&#xff0c;再制作成另一個模板image供日后使用。Docker提供的Hub或priva…

javascript --- 防抖與節流

說明 源碼 1. 防抖與節流 1.1 防抖 防抖: 觸發事件后,在n秒內函數只執行一次 記憶: 你手比較抖,不小心按了按鈕2下…你只希望它只執行一次.且按第二次結束時間算…這就用到了防抖技術 1.2 節流 節流: 連續發生的事件,在n秒內只執行一次函數 1.3 防抖與節流的區別 在一段…

bugku_本地包含

先上payload: 1、?hello);show_source(%27flag.php%27);// 2、?hello);include $_POST[zzz];// POST傳參:zzzphp://filter/readconvert.base64-encode/resourceflag.php 3、?hellofile(%27flag.php%27) 4、?helloshow_source(flag.php) 首先我們來看源碼&#xff1a; <?…