【css筆記】css中的盒模型和三種定位機制(固定定位,絕對定位,浮動)

来源:http://www.cnblogs.com/libra-yong/archive/2017/05/06/6816393.html
-Advertisement-
Play Games

html頁面上的元素都可以看成是框組成的,框通過三種定位機制排列在一起就過程了我們看到的頁面.而框就是盒模型. 盒模型 1.頁面上的每個元素可以看成一個矩形框,每個框由元素的內容,內邊距,邊框和外邊距組成。 2.如果在元素上添加背景,則背景是邊框, 內邊距和內容組成的區域. 3.在css中width ...


html頁面上的元素都可以看成是框組成的,框通過三種定位機制排列在一起就過程了我們看到的頁面.而框就是盒模型.

盒模型

 

 

1.頁面上的每個元素可以看成一個矩形框,每個框由元素的內容,內邊距,邊框和外邊距組成。

2.如果在元素上添加背景,則背景是邊框, 內邊距和內容組成的區域.

3.csswidthheight指的是內容區域的寬度和高度。增加內邊距,邊框和外邊距不會影響內容區域的尺寸,但會增加元素框的總尺寸。即width=element

註意ie的盒模型中,width指的是內容,內邊距,和邊框的寬度總和(沒有外邊距)。即:width=element+padding+border

 

外邊距疊加:當兩個或更多的垂直外邊距相遇時,它們將形成一個新外邊距。這個新外邊距的高度等於兩個發生疊加的外邊距的高度中的較大者。

註意:只有普通文檔流中的塊框的垂直外邊距才會發生外邊距疊加。行內框,浮動框或絕對定位框之間的外邊距不會疊加.

會有以下四種情況:

 

 

 

html中的元素分為塊級元素和行內元素,對應的生成的框即為塊框和行內框.

塊框從上到下一個接著一個排列,塊框之間的距離由垂直外邊距決定.

行內框在一行中水平排列.

註意:可通過設置display屬性改變框的類型.

 

css的三種定位機制

css3中基本的定位機制:普通流,浮動和絕對定位.

若非通過css樣式指定,所有的框都在普桶流中,普通流中的元素框位置由元素在html中的位置決定.

相對定位(視為普通流定位):因為是相對定位元素的位置是”相對於”元素在普通流中的初始位置而定,所以視為普通流定位的一種.相對定位的元素任占據原來的空間,並且可以覆蓋其他框.

將屬性position設置為relative.通過設置topleft使框相對於原來元素的起點移動

 

絕對定位:絕對定位的元素的位置是相對於距離它最近的那個已定位的祖先元素確定的.絕對定位的元素位置與文檔流無關,因此不占據空間.

註意:

相對定位元素的位置是”相對於”元素在普通流中的初始位置而定.

絕對定位是”相對於”距離它最近的已定位祖先元素,如不存在,則相對於初始包含塊.

註意:絕對定位因為與文檔流無關,因此也會覆蓋頁面上的其他元素.p47

當絕對定位的元素由重合時刻通過z-index設置疊放次序.

將屏幕看成湖面,z-index設置的值越高,離湖面越近,則顯示的優先順序就越高.z-index值高的元素顯示優先順序高於z-index值低的元素.

固定定位:視為絕對定位的一種. 固定元素的包含塊為瀏覽器視窗.

 

浮動:浮動會讓元素脫離文檔流.浮動框可以左右移動知道它的外邊距碰到包含框或者另一個浮動框的邊緣.

若浮動的元素後面有一個文檔流中的元素,那麼浮動元素旁邊的行框將被縮短.文檔流中的元素會緊跟浮動框之後(例如文本圍繞圖像).

解決方法:對行框應用clear屬性,屬性值為left,right,both,none.而在具體實現時,瀏覽器會在元素頂上添加足夠的外邊距,是元素的頂邊緣垂直下降到浮動框下麵.

css定位有關的屬性(第一個屬性值為預設屬性):

position

規定元素的定位類型

static, absolute, fixed, relative

top

設置定位元素的上外邊距邊界與其包含塊上邊界之間的偏移

auto, 百分數, 數值

right

設置定位元素右外邊距邊界與其包含塊右邊界之間的偏移

auto, 百分數, 數值

bottom

設置定位元素下外邊距邊界與其包含塊下邊界之間的偏移

auto, 百分數, 數值

left

設置定位元素左外邊距邊界與其包含塊左邊界之間的偏移

auto, 百分數, 數值

float

規定框的浮動

none, left, right

clear

規定元素的哪一側不允許其他浮動元素

none, left, right, both

display

規定元素應生成框的類型

inline, none, block, inline-block

clip

剪裁絕對定位元素

auto, 形狀rect (top, right, bottom, left)

overflow

規定當內容溢出元素框時發生的事情

visible, hidden, scroll, auto

vertical-align

設置元素的垂直對齊方式

baseline, sub, super, top, bottom, 數值,百分數

visibility

規定元素是否可見

visible, hidden, collapse

Z-index

設置元素的堆疊順序

auto, 數值

cursor

規定要顯示的游標的類型

Auto, text, help,pointer, move


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

-Advertisement-
Play Games
更多相關文章
  • 一、認識CSS樣式 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>認識CSS樣式</title> 6 <style ...
  • 我們這裡所說的devicePixelRatio其實指的是window.devicePixelRatio, 被所有WebKit瀏覽器以及Opera所支持。 概念 devicePixelRatio ,它是設備上物理像素和設備獨立像素( device-independent pixels (dips) ) ...
  • 不管是左是右,反正就是一邊寬度固定,一邊寬度自適應。 博客園的很多主題也是這樣設計的,我的博客也是右側固定寬度,左側自適應屏幕的佈局方式。 html代碼: 實現方式方式有如下幾種: 1.固定寬度區浮動,自適應區不設寬度而設置 margin 我們以右側寬度固定,左側寬度自適應為例: css代碼: 實現 ...
  • window.onload事件處理函數在頁面載入完畢後調用。 問題是有時我們給window.onload事件處理函數綁定不止一個函數,並且有一些函數函數帶有參數的。 下麵是兩個參數函數,其中一個有參數,另一個沒有參數。 一、以前的做法是直接綁定。 二、addLoadEvent()函數 綁定不帶參數的 ...
  • wx.getUserInfo(OBJECT) 微信官方的這個獲取用戶信息的方法,需要對介面返回的加密數據( encryptedData )進行對稱解密。 ...
  • 六、使用下拉列表框進行多選 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>使用下拉列表框進行多選</title> 6 ...
  • 例題一枚:在input框中輸入內容,會相應的顯示在下麵的div中的不同做法: js:原生DOM操作 指點迷津:getElementById獲取DOM節點,innerHTML:設置或者獲取節點內部的所有HTML代碼; 這裡需要註意獲取到input裡面的節點內容需要獲取value值。 這裡使用的是inn ...
  • ECMAScript語言類型對應於使用ECMAScript語言的ECMAScript程式員直接操作的值。ECMAScript語言類型有以下幾種Undefined,Null,Boolean,String,Symbol,Number和Object。ECMAScript語言值是以ECMAScript語言類 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...