CSS清除浮動

来源:http://www.cnblogs.com/wowoniuzailushang/archive/2016/09/28/5916610.html
-Advertisement-
Play Games

今天看到一篇文章關於清除浮動的,突然間腦袋短路了,咦?為什麼要清除浮動?原諒我的無知,搜了下原來是這樣,又倒騰出原來的筆記,唉,本來就有記錄啊,而且也會經常用到,用的久了連原理都忘了。恩,防止自己再犯同樣的錯誤,我還是自己總結整理出來吧!話不多說,代碼為證! 恩,各個瀏覽器運行的效果圖如下: 其中A ...


  今天看到一篇文章關於清除浮動的,突然間腦袋短路了,咦?為什麼要清除浮動?原諒我的無知,搜了下原來是這樣,又倒騰出原來的筆記,唉,本來就有記錄啊,而且也會經常用到,用的久了連原理都忘了。恩,防止自己再犯同樣的錯誤,我還是自己總結整理出來吧!話不多說,代碼為證!

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>為什麼要清除浮動</title>
 6         <style>
 7             .wrapper{width:50%;background: cornflowerblue;border:2px solid black;}
 8             .box1{width: 30%;height: 100px;background: red;}
 9             .box2{width: 30%;height: 100px;background: black;}
10             .box3{width: 30%;height: 100px;background: chocolate;}
11         </style>
12     </head>
13     <body>
14         <div class="wrapper">
15             <div class="box1"></div>
16             <div class="box2"></div>
17             <div class="box3"></div>
18         </div>
19     </body>
20 </html>

恩,各個瀏覽器運行的效果圖如下:

其中A-B-C分別是I元素里的子元素,如果沒有浮動的情況它們是按照標準文檔流佈局(塊級元素從上至下,行內元素從左至右),一個網頁需要合理的佈局才能夠吸引住用戶,我們需要在有限的空間內展示更多的信息,有時候需要a,b,c,排在一行,咱不用高大上的Flexbox(彈性盒佈局)因為IE8及以下都不支持,你要問我怎麼知道的,給大伙兒甩個網址http://caniuse.com/#home,自行搜索哦!另外IE不支持VW和VH單位,用的小朋友謹慎! 通常情況

我們是不需要給父元素定寬高的,而且想讓它寬高自適應,但是如果我們給子元素添加了float:left;之後會是什麼情況呢?咱們用圖說話:

 

父元素哪裡去了?!恩,這裡咱要說明下浮動是什麼原理了,打個比方吧,原諒我的想象力不豐富,我們把父元素想象為一個可以自動收縮的盒子,當我們不停地往裡面放子盒子的時候,它就會自動被撐開,給子元素加float(英文原義指飄動浮動的意思)的時候,就相當於子元素飄在了父盒子之上,那麼顯然父盒子空了就自動收縮回去了,現在我們要做的是如何不讓它收縮回去:

1.給父元素加overflow:hidden;恩,要說這個方法的優劣,我剛纔查了下,可能會對SEO不友好,但具體有多大的嚴重影響我還沒有這方面的經驗,姑且就這樣解釋吧,待我遇到了再回過來修改。

.wrapper{width:50%;background: cornflowerblue;border:2px solid black;overflow:hidden;}

 2.給子元素的下方添加空的div

1 <body>
2         <div class="wrapper">
3             <div class="box1"></div>
4             <div class="box2"></div>
5             <div class="box3"></div>
6             <div class="box4"></div>
7         </div>
8     </body>

 box4就是我們添加的空元素,這個空元素的具體寫法如下:(有相容~有相容~有相容~萬惡的IE6不支持,因為人家有預設的最小高度)

1 .box4{clear:both;height: 0;overflow: hidden;}

3.採用偽類選擇器的方式來達到清除浮動的目的,我工作中採用的就是這種方式,屢試不爽哦!(不好意思,剛纔自己給自己挖了一個坑,目前還在坑裡,我再試試...

.wrapper:after{clear:both;content:".";display:block;height: 0;overflow: hidden;visibility: hidden;}    

恩,好了,就是上面的那樣,content: '.'; display:block;對於五大瀏覽器來說不可缺少,visibility:hidden;的作用是允許瀏覽器解析它,但是用戶看不到哦。


 原創文章,轉載請註明出處 蝸蝸牛在路上[http://www.cnblogs.com/wowoniuzailushang]

同步發表於: http://blog.csdn.net/wowoniuzailushang  CSDN


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 效果圖: 進入工作目錄,運行 react-native init NavigatorProject 創建項目NavigatorProject 延伸:傳參。 以上面的代碼為基礎。 一: 效果圖: 二: 效果圖: ...
  • 1.director.js 支持中文路徑 390行 return mod str ? "([._a-zA-Z0-9-%()]+)" : mod; 修改正則 return mod str ? "([._a-zA-Z0-9-%()]+|[\u4E00-\u9FFF]+)" : mod; 2.ie8bug ...
  • 此博客用來收錄一些常用的正則表達式,希望能不斷修正,不斷完善 ...
  • 宋體 SimSun黑體 SimHei微軟雅黑 Microsoft YaHei微軟正黑體 Microsoft JhengHei新宋體 NSimSun新細明體 PMingLiU細明體 MingLiU標楷體 DFKai-SB仿宋 FangSong楷體 KaiTi仿宋_GB2312 FangSong_GB2 ...
  • 一、浮動導航條 ...
  • ...
  • 使用 @ 定義變數變數可以做運算@color : #000;@width : 1000px;使用 & 表示當前類.box{&:hover{color : #000;}}css 可以嵌套ul{display : block;li{float : left;a{font-size : 18px;}}}繼 ...
  • 系列文章 -- ES6筆記系列 很久很久以前,在做Node.js聊天室,使用MongoDB數據服務的時候就遇到了多重回調嵌套導致代碼混亂的問題。 JS非同步編程有利有弊,Promise的出現,改善了這一格局,讓非同步編程表現出類似“同步式代碼”的形式,更好地體現了它的價值。 一、基本概念 1. Prom ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...