搜尋
首頁web前端css教學如何用CSS快速佈局— 佈局元素詳細

要快速進行網頁排版佈局,則必須對佈局的元素有清晰的了解,才不會總是在細節處出錯。這篇先詳解有關佈局的因素作為佈局基礎:區塊級元素and內聯元素、盒子模型、準確定位、元素對齊、樣式繼承。下一篇則重點描述快速佈局思路。

一、什麼是塊級元素和內聯元素

1,塊級元素:

display:block表現出來的特點是折行的, 一般來說可以包含區塊級元素和內聯元素;

例外:

  P 元素,只能包含內聯元素,而不能包含區塊級元素。

  "form"這個塊元素比較特殊,它只能用來容納其他塊元素。

 

2,內嵌元素:

display:inline表現出來是不換行的,內部只能包含內聯元素。

像「span」這樣的行內元素,沒有自己的獨立空間,它是依附於其他區塊級元素存在的,因此,對行內元素設定高度、寬度、內外邊距等屬性,都是無效的。 其實你需要知道的行內元素就是span 和a 

 

3,浮動元素自動設定為"block"元素

不管是block還是inline定義了浮動之後,可以定義高度,寬度.

正常情況下是不能定義高度的。寬度倒是可以定義,但是對滑鼠有反應的只有文字部分

如果加上float:left的話,能定義高寬,整塊對滑鼠有反應但是它是橫向選單,

設定display:inline;這個屬性能夠修復著名的IE雙倍浮動邊界問題。 ↓(看起來這個問題只存在於IE6?)

http://www.zzzszy.com/a/2016/0927/896160.html

 

塊元素(block element) 內聯元素(inline element)

* address - 位址

* blockquote - 區塊引用

* center - 舉中對齊區塊

* dir - 目錄清單

* p - 常用區塊級容易,也是css layout的主要標籤

* dl - 定義清單

* fieldset - form控制組

* form- 互動表單

* h1 - 大標題

* h2 - 副標題

* h3 - 3級標題

* h4 - 4級標題

* h5 - 5級標題

* h6 - 6級標題

* hr - 水平分隔線

* isindex - input prompt

* menu - 選單清單

* noframes - frames可選內容,(對於不支援frame的瀏覽器顯示此區塊內容

* noscript - )可選腳本內容(對於不支援script的瀏覽器顯示此內容)

* ol - 排序表單

* p - 段落

* pre -格式化文字

* table - 表格

* ul - 非排序清單

* a - 錨點

* abbr - 縮寫

* acronym - 首字

* b - 粗體(不推薦)

* bdo - bidi override

* big - 大字體

* br - 換行

* cite - 引用

* code - 電腦程式碼(在引用原始碼的時候需要)

* dfn - 定義欄位

* em - 強調

* font - 字體設定(不建議)

* i - 斜體

* img - 圖片

* input - 輸入框

* kbd - 定義鍵盤文字

* label - 表格標籤

* q - 短引用

* s - 中劃線(不推薦)

* samp - 定義範例電腦程式碼

* select - 專案選擇

* small - 小字體文字

* span - 常用內嵌容器,定義文字內區塊

* strike - 中劃線

* strong - 粗體強調

* sub - 下標

* sup - 上標

* textarea - 多行文本輸入框

* tt - 電傳文字

* u - 底線

* var - 定義變數

 

4,可變元素

可變元素為根據上下文語境決定該元素為塊元素或內聯元素。

* applet - java applet

* button - 按鈕

* del - 刪除文字

* iframe - inline frame

* ins - 插入的文字

* map - 圖片區塊(map)

* object - object物件

* script - 用戶端腳本

 

5,display:inline-block;


維持區塊級元素可設定寬高,但又能像內聯元素一樣和其他內聯元素置於一行。

 

二、盒子模型

 如何用CSS快速布局— 布局元素详细

 

三、如何定位-相對定位、絕對定位、浮動


相對定位:指相對於文檔流中的其他已定義的元素位置進行定位。

static(預設值):如果使用預設值,在CSS中為元素定義的top,left,right,bottom.z-index都不會生效。

relative:相對元素本身進行移動。

 

絕對定位:會脫離正常的文檔流,不再佔據空間。

absolute:相對一個不為static的父元素進行絕對定位,如果不指定父元素的position,absolute將相對整個html文檔進行絕對定位。會優先顯示於正常文件流定位元素以及float元素。

fixed:相對瀏覽器視窗進行定位,無論網頁如何捲動,該元素始終停留在螢幕的某個位置。

 


浮動:float

脫離文檔流——相對父元素大小調整位置。若父元素寬度為100,則兩個子元素寬度分別為200,則依舊顯示為上下層次,而非左右。

外盒子-會優先顯示於正常文件流定位元素。內盒子-弱於塊級元素,強於內嵌元素

 

重點! 定位元素與文件流顯示關係

1,正常文件流之間的內部和外部盒子顯示關係:

代码结构如下(粗略展示)<p>黄色块正方形
  </p><p>红色块</p>  <p>红色块</p><p>蓝色块正方形</p>

黃色和藍色為外部文檔流,紅色的為黃色區塊的兩個內部文檔流。

如何用CSS快速布局— 布局元素详细


外部盒子為外部文檔流,內部盒子有自己的文檔流,互不干擾,但(非自身父元素的)外部文檔流會優先顯示於內部文檔流。

 

2,內部盒子浮動元素和內部文檔流元素關係:

  • 內聯元素和浮動元素的優先權:

正常文檔流中,內嵌元素和區塊級元素各佔一行。

如何用CSS快速布局— 布局元素详细

 

然而當設定為浮動元素後,文件流內聯元素讓位給浮動元素(先後於

定義結果一樣)。如下:

如何用CSS快速布局— 布局元素详细

也會出現文字包繞現象:

 如何用CSS快速布局— 布局元素详细

 

  •  區塊級元素與浮動元素優先權

當塊級元素先於浮動元素定義時,浮動元素換行排後。當浮動元素先定義時,脫離文件流,不會對正常文件流的區塊級元素造成影響。

 

3,內部盒子浮動元素和外部文檔流內部元素關係:

 浮動元素覆蓋外部文檔流元素,但不佔據空間。

 如何用CSS快速布局— 布局元素详细

 

綠色區塊和圖片是藍色區塊的內部元素,可見,區塊級元素照正常文件流顯示,但內嵌元素img還是會讓步於浮動元素,即使是外部文件流的浮動元素。

如何用CSS快速布局— 布局元素详细

 

4,兄弟元素絕對定位和浮動的優先關係

藍色塊為黃色內部區塊的absolute定位元素,且先於紅色區塊設定p。紅色塊為Float定位元素,被absolute覆蓋。

如何用CSS快速布局— 布局元素详细

5,絕對定位和文檔流元素的優先關係&相對定位元素的優先關係

絕對定位position:absolute。

1,相對一個不為static的父元素進行絕對定位,如果不指定父元素的position,absolute將相對整個html文件進行絕對定位。

2,如果沒有設定topleftbottomright,則其頂端和左側將與原始文檔流位置一致(即跟沒有設定position一樣),但又會覆蓋掉外部文檔流內部浮動元素多出部分。

下圖為藍色區塊設定position:absolute;

 如何用CSS快速布局— 布局元素详细 (註:黃色區塊(內含紅色和綠色子元素)和藍色區塊(內含綠色子元素)是兄弟元素)

調換下順序,藍色區塊先設定p,position為absolute。黃色區塊沒設定position,即預設static。因為脫離了文件流,absolute元素優先顯示。

 如何用CSS快速布局— 布局元素详细

設定黃色區塊position為relative,黃色區塊覆蓋絕對定位元素。即相對定位元素後於絕對定位元素定位時,相對定位元素優先顯示。

如何用CSS快速布局— 布局元素详细

 

總結:

1,正常文件流下,外部盒子優先顯示於先定義元素的內盒子(如果超出會被覆蓋)。區塊級元素和內聯元素不會在同一行。

    如何用CSS快速布局— 布局元素详细

2,對內部和外部文檔流,浮動元素脫離文檔流,對於先定義的元素按正常文檔流顯示(讓位塊級,擠開內聯) ,對後定義的元素不造成佈局影響,但卻影響正常文檔流的內聯元素展示,表現為內聯元素依舊會被浮動元素“擠開”(不論哪裡的內聯元素,都不會被覆蓋在浮動元素之下)

    如何用CSS快速布局— 布局元素详细 如何用CSS快速布局— 布局元素详细

3,絕對定位元素優先顯示於浮動元素。

    如何用CSS快速布局— 布局元素详细

4,不設定具體值的絕對定位元素會依正常文件流排列,但脫離文件流,不對後定義元素造成影響。

    如何用CSS快速布局— 布局元素详细

5,如果兄弟元素設定了position:relative;當先於絕對定位元素定義時,絕對定位元素優先顯示於相對定位元素。

當後於絕對定位元素定義時,相對定位元素優先顯示於絕對定位元素。

     如何用CSS快速布局— 布局元素详细 如何用CSS快速布局— 布局元素详细

 

四、如何居中對齊

 水平居中:

1.實現行內元素的居中。 方法:在行內元素外面的塊元素的樣式中添加:text-align:center;

2.實現塊級元素的水平居中。

  方法一:margin:0 auto;

 注意:如果區塊級元素是body的直接子元素,不設定寬,則預設100% ,看不出效果;不設定高,且p沒有內容,則高度預設為0。因此,一定要同時設定塊級元素的寬和高,這樣才能看出來效果。對於在一個p中的另一個p希望居中,也可以使用這個方式,因為這時的margin是相對於其父元素而言的。

  

  方法二:使用絕對定位和負邊距。

    position:absolute;

    left:50%;                 ——相對於父元素向左移動50%寬度

 〠  8% 自身寬度的一半

 

垂直居中

1.行內元素的垂直居中

  

方法一:讓字體垂直居中,line-height設定為父元素高度。

  

方法二:設定padding讓其垂直居中。

    

方法三:父元素設定line-height,行內元素設定vertical-align:middle。

 

2.塊級元素的垂直居中。

   

方法一:使用絕對定位與負邊距。

   

方法二:在父元素中加入display:flex;align-items:center;即可實現垂直居中。

 

實現水平和垂直居中

  方法一:使用絕對定位和負邊距

  方法二:使用display:flex

      在父元素的樣式中加入display:flex;align-items:center實作垂直居中,justify-content:center;實現水平居中

  方法三:同樣使用display:flex.在父元素中設定display:flex;在子元素中設定margin:auto。

  方法四:使用css3屬性-translate()變形函式

      position: absolute; top:50%; left:50%; transform: translate(-50%,-50%);

五、關於樣式繼承

盒模型樣式是不可繼承的,例如width、height(寬高) 、border(邊框)、margin(邊距)、padding(補白)及背景等

vertical-align不可繼承

 

可繼承屬性

    color  

    cursor  

    direction  

    font  +   list-style

    text-align  

    text-indent  

    text-shadow  

    +    word-break   

    word-spacing  

    word-wrap   

    writing-mode   

    writing-mode   

    ++-mode — 佈局元素詳細 相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
錨定位只是不關心來源訂單錨定位只是不關心來源訂單Apr 29, 2025 am 09:37 AM

錨定定位避開HTML源順序的事實是如此之高,因為它在內容和演示文稿之間的另一個關注點是另一個分離的事實。

保證金是什麼:40px 100px 120px 80px表示?保證金是什麼:40px 100px 120px 80px表示?Apr 28, 2025 pm 05:31 PM

文章討論了CSS保證金屬性,特別是“保證金:40px 100px 120px 80px”,其應用程序以及對網頁佈局的影響。

什麼是不同的CSS邊框特性?什麼是不同的CSS邊框特性?Apr 28, 2025 pm 05:30 PM

本文討論了CSS邊境屬性,重點是自定義,最佳實踐和響應能力。主要論點:邊境 - 拉迪烏斯(Border-Radius)對響應式設計最有效。

什麼是CSS背景,列出屬性?什麼是CSS背景,列出屬性?Apr 28, 2025 pm 05:29 PM

本文討論了CSS背景屬性,它們在增強網站設計方面的用途以及避免的常見錯誤。重點是使用背景大小的響應式設計。

什麼是CSS HSL顏色?什麼是CSS HSL顏色?Apr 28, 2025 pm 05:28 PM

文章討論了CSS HSL顏色,其在網絡設計中的使用以及比RGB的優勢。主要重點是通過直觀的顏色操縱來增強設計和可訪問性。

我們如何在CSS中添加評論?我們如何在CSS中添加評論?Apr 28, 2025 pm 05:27 PM

本文討論了CSS中評論的使用,詳細介紹了單線和多行評論語法。它認為註釋可以增強代碼的可讀性,可維護性和協作,但如果無法正確管理,可能會影響網站性能。

什麼是CSS選擇器?什麼是CSS選擇器?Apr 28, 2025 pm 05:26 PM

本文討論了CSS選擇器,其類型和用於造型HTML元素的用法。它比較ID和類選擇器,並與復雜的選擇器解決性能問題。

哪種類型的CSS持有最高優先級?哪種類型的CSS持有最高優先級?Apr 28, 2025 pm 05:25 PM

本文討論了CSS優先級,重點是具有最高特異性的內聯風格。它解釋了特異性級別,覆蓋方法和用於管理CSS衝突的工具。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境