搜尋
首頁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,如果沒有設定top\left\bottom\right,則其頂端和左側將與原始文件流位置一致(即跟沒有設定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%;                 -相對於父級元素向左移動55%#-#left);移回自身寬度的一半

 

垂直居中

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:50%; transform:50%; 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  

更多一用CSS 元件快速佈局(如何設計使用模式###########1更多一用CSS 元素:快速佈局。詳細 相關文章請關注PHP中文網! ###
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
'訂閱播客”鏈接應在哪裡?'訂閱播客”鏈接應在哪裡?Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

瀏覽器引擎多樣性瀏覽器引擎多樣性Apr 16, 2025 pm 12:02 PM

當他們在2013年去Chrome時,我們失去了歌劇。與Edge今年早些時候也進行了同樣的交易。邁克·泰勒(Mike Taylor)稱這些變化為“減少

網絡共享的UX注意事項網絡共享的UX注意事項Apr 16, 2025 am 11:59 AM

從垃圾點擊誘餌網站到大多數出版物的最多,共享按鈕長期以來一直無處不在。然而,這些

每周平台新聞:Apple部署網絡組件,漸進的HTML渲染,自託管關鍵資源每周平台新聞:Apple部署網絡組件,漸進的HTML渲染,自託管關鍵資源Apr 16, 2025 am 11:55 AM

在本週的綜述中,Apple進入Web組件,Instagram如何插入腳本以及一些思考的食物,以進行自託管關鍵資源。

git Pathspecs以及如何使用它們git Pathspecs以及如何使用它們Apr 16, 2025 am 11:53 AM

當我查看GIT命令的文檔時,我注意到其中許多人都有選擇。我最初以為這只是一個

產品圖像的彩色拾取器產品圖像的彩色拾取器Apr 16, 2025 am 11:49 AM

聽起來有點像一個困難的問題,不是嗎?我們經常沒有成千上萬種顏色的產品鏡頭,以便我們可以隨身攜帶。我們也不是

黑暗模式與React和Themeprovider切換黑暗模式與React和Themeprovider切換Apr 16, 2025 am 11:46 AM

我喜歡網站具有“暗模式”選項時。黑暗模式使我更容易閱讀網頁,並幫助我的眼睛更放鬆。許多網站,包括

帶有HTML對話框元素的一些動手帶有HTML對話框元素的一些動手Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)