」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > CSS 佈局技術 - 浮動、清除和傳統佈局:老派酷炫

CSS 佈局技術 - 浮動、清除和傳統佈局:老派酷炫

發佈於2024-08-21
瀏覽:254


本文是我自己的網站上提供的更大系列文章的一部分。按此處了解有關 CSS 101:系列的更多資訊。完全免費!

歡迎來到過去的爆炸!在 Flexbox 和 Grid 像現代網頁設計的超級英雄一樣席捲全球之前,曾經有一段時間浮動和清除統治了 CSS 世界。如果您是網頁設計新手,您可能會想,「浮動和清除到底是什麼?我為什麼要關心?」好吧,請繫好安全帶,因為我們即將踏上 CSS 歷史的懷舊之旅。

劇透:今天您可能會發現一些很酷的技巧!

CSS Layout Techniques - Floats, Clears, and Legacy Layouts: The Old School Cool

浮動:最初的佈局騙子

將 float 想像成 CSS 世界中叛逆的少年 - 總是突破界限並造成一些混亂。浮動最初設計用於將文字包裹在圖像周圍,但聰明的開發人員很快就意識到他們也可以使用它們來創建佈局。

img {
    float: left;
    margin-right: 15px;
}

上例中,float: left;使圖像「浮動」到左側,允許文字環繞它。在 Flexbox 和 Grid 出現之前,浮動是建立多列佈局的熱門選擇。然而,它們可能有點挑剔,如果使用不小心,很容易導致佈局問題。

通關:和平衛士

花車可能有點叛逆,但清除者是他們的維和者。清晰的屬性就像調解者,介入解決浮動可能造成的混亂。如果您使用浮動並發現元素重疊或未按預期運行,則清除可以提供協助。

.clearfix::after {
    content: "";
    display: table;
    clear: both;
}

透過使用上述 CSS 添加clearfix 類,您可以確保所有浮動元素都包含在其父容器中。這是防止那些惱人的佈局故障(元素似乎漂浮到深淵中)的好方法。

傳統佈局技術:復古復興

在 Flexbox 和 Grid 搶盡風頭之前,CSS 還有一些其他的技巧。下面來看一些經典的版面技巧:

  • Inline-Block:建立水平佈局的簡單方法。將元素設為 display: inline-block;,您可以將它們並排排列,而不需要浮動。
.box {
    display: inline-block;
    width: 30%;
    margin-right: 2%;
}
  • 表格佈局:是的,表格不僅僅用於表格資料!您可以使用 display: table;、display: table-row; 和 display: table-cell;來建立類似網格的版面。
.container {
    display: table;
    width: 100%;
}

.item {
    display: table-cell;
    width: 33%;
}

這些方法在很大程度上被現代佈局技術所掩蓋,但仍然可以讓我們一窺網頁設計的演變。

現代應用:新舊融合

那麼,浮動和透明在現代網頁設計世界中仍然佔有一席之地嗎?絕對地!雖然 Flexbox 和 Grid 現在是建立佈局的首選工具,但浮動和清除在某些情況下仍然有用,例如簡單佈局或使用遺留程式碼時。

例如,您可以使用浮動來進行文字換行,或者當您想要以簡單的方式對齊少量元素時。但對於複雜的響應式佈局,Flexbox 和 Grid 是您最好的朋友。

總結一下

浮動、清除和其他遺留佈局技術可能看起來像是過去的遺物,但它們是 CSS 豐富歷史的一部分。了解它們可以為您奠定堅實的基礎,並幫助您欣賞現代佈局系統的強大功能。另外,在處理較舊的專案或奇怪的設計挑戰(或那些可怕的面試輪次)時,了解這些老派技巧可以派上用場。

編碼愉快!


噓!如果您喜歡所讀內容,請按此處查看 CSS 101:系列。完全免費!

版本聲明 本文轉載於:https://dev.to/gdebojyoti/css-layout-techniques-floats-clears-and-legacy-layouts-the-old-school-cool-2apj?1如有侵犯,請洽study_golang@163 .com刪除
最新教學 更多>
  • 如何從PHP中的數組中提取隨機元素?
    如何從PHP中的數組中提取隨機元素?
    從陣列中的隨機選擇,可以輕鬆從數組中獲取隨機項目。考慮以下數組:; 從此數組中檢索一個隨機項目,利用array_rand( array_rand()函數從數組返回一個隨機鍵。通過將$項目數組索引使用此鍵,我們可以從數組中訪問一個隨機元素。這種方法為選擇隨機項目提供了一種直接且可靠的方法。
    程式設計 發佈於2025-04-20
  • 在所有瀏覽器中實現左對齊文本的斜線方法
    在所有瀏覽器中實現左對齊文本的斜線方法
    ] 在傾斜行上的文本對齊背景在傾斜行上實現左對齊的文本可能會構成挑戰,在nectera時尤其是挑戰。兼容性(返回IE9)。 通過引入一系列平方元素併計算其尺寸,我們可以創建一個有效的解決方案: .loop(@i) when (@i > 0){ .loop((@i - ...
    程式設計 發佈於2025-04-20
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。為了解決此問題,您正在嘗試使用“ mb_convert_encoding”和“ iconv”轉換受...
    程式設計 發佈於2025-04-20
  • 您如何在Laravel Blade模板中定義變量?
    您如何在Laravel Blade模板中定義變量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配變量對於存儲以後使用的數據至關重要。在使用“ {{}}”分配變量的同時,它可能並不總是最優雅的解決方案。 幸運的是,Blade通過@php Directive提供了更優雅的方法: $ old_section =...
    程式設計 發佈於2025-04-20
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript [#1089-不正確的前綴鍵在嘗試在表中創建一個prefix鍵時會出現。前綴鍵旨在索引字符串列的特定前綴長度長度,可以更快地搜索這些前綴。 了解prefix keys `這將在整個Movie_ID列上創建標準主鍵。主密鑰對於唯一識...
    程式設計 發佈於2025-04-20
  • 在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    程式設計 發佈於2025-04-20
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-04-20
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,輸出...
    程式設計 發佈於2025-04-20
  • 在JavaScript中如何並發運行異步操作並正確處理錯誤?
    在JavaScript中如何並發運行異步操作並正確處理錯誤?
    同意操作execution 在執行asynchronous操作時,相關的代碼段落會遇到一個問題,當執行asynchronous操作:此實現在啟動下一個操作之前依次等待每個操作的完成。要啟用並發執行,需要進行修改的方法。 第一個解決方案試圖通過獲得每個操作的承諾來解決此問題,然後單獨等待它們: c...
    程式設計 發佈於2025-04-20
  • 圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    在chrome 在使用Chrome and IE9中的圖像時遇到的一個頻繁的問題是圍繞圖像的持續薄薄邊框,儘管指定了圖像,儘管指定了;和“邊境:無;”在CSS中。要解決此問題,請考慮以下方法: Chrome具有忽略“ border:none; none;”的已知錯誤,風格。要解決此問題,請使用以下...
    程式設計 發佈於2025-04-20
  • 為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    在CSS 問題:不正確的代碼: 全球範圍將所有餘量重置為零,如提供的代碼所建議的,可能會導致意外的副作用。解決特定的保證金問題是更建議的。 例如,在提供的示例中,將以下代碼添加到CSS中,將解決餘量問題: body H1 { 保證金頂:-40px; } 此方法更精確,避免了由全局保證金重置...
    程式設計 發佈於2025-04-20
  • Java為何沒有無符號整數?
    Java為何沒有無符號整數?
    Understanding Java's Absence of Unsigned IntegersDespite the potential benefits of unsigned integers, such as reduced risk of overflow, self-docum...
    程式設計 發佈於2025-04-20
  • PHP刷新後為什麼會丟失會話數據?
    PHP刷新後為什麼會丟失會話數據?
    故障排除PHP會話數據損失 在這種特定情況下,用戶遇到了一個特殊情況,在這些情況下,在頁面刷新後未保留會話數據。 Investigation revealed no apparent changes to the PHP scripts.To determine the root cause, t...
    程式設計 發佈於2025-04-20
  • 使用SQL Server中的NOLOCK提升性能嗎?
    使用SQL Server中的NOLOCK提升性能嗎?
    SQL Server 中的 NOLOCK:性能提升與風險並存 SQL Server 的事務隔離級別確保並發事務的數據修改對彼此不可見。然而,這種安全機制可能會導致爭用和性能瓶頸。為了緩解這些問題,開發人員經常求助於在 SQL 語句中使用 NOLOCK 提示。 雖然使用 NOLOCK 可以消除表鎖...
    程式設計 發佈於2025-04-20
  • 如何使用FormData()處理多個文件上傳?
    如何使用FormData()處理多個文件上傳?
    )處理多個文件輸入時,通常需要處理多個文件上傳時,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    程式設計 發佈於2025-04-20

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3