1. 程式人生 > >大前端學習筆記整理【三】行內元素與塊級元素的區別以及絕對定位與固定定位的差異

大前端學習筆記整理【三】行內元素與塊級元素的區別以及絕對定位與固定定位的差異

1.簡要說明: 1. 行內元素會再一條直線上,是在同一行的。比如span和strong; 2. 塊級元素各佔一行。是垂直方向的!比如div和p 假如你要將行內元素變成塊級元素,那麼就只需要在該標籤上加上樣式 display:block; 塊級元素可以用樣式控制其高、寬的值,而行內元素不可以 行內元素和width W3C CSS2 標準規定行內元素、非置換元素不會應用width屬性。 以下例子中,對行內元素<a>應用了width:200px,你可以看到,根本就沒有什麼效果。 行內元素和height W3C CSS2 標準規定行內元素、非置換元素不會應用height屬性,但是盒子高度可以通過line-height來指定。 以下例子,對行內元素<a>應用了height:50px,你可以看到什麼效果都沒。 行內元素和padding
你可以給行內元素設定padding,但只有padding-left和padding-right生效。 以下例子,行內元素<a>應用了padding:50px。你可以看到對左右的內容有影響,但是對上下沒影響。 行內元素和margin margin屬性也是和padding屬性一樣,對行內元素左右有效,上下無效。
  1. 設定寬度width   無效。
  2. 設定高度height  無效,可以通過line-height來設定。
  3. 設定margin 只有左右margin有效,上下無效。
  4. 設定padding 只有左右padding有效,上下則無效。注意元素範圍是增大了,但是對元素周圍的內容是沒影響的,看圖上效果就知道了
text-align屬性是兩者表現的又以不同之處  在W3C CSS2.1規範第16.2節對text-align 有詳細地描述: ------------------------------------------ 值: left | right | center | justify | inherit 初始值:匿名值,由'direction'的值而定,如果'direction'為'ltr'則為'left',如果'direction'為'rtl'則為'right'。 應用於: 塊級元素,表格單元格,行內塊元素 繼承性: 是 計算後的值:初始值或指定值 ------------------------------------------   這個特性描述瞭如何使一個塊元素的行內內容對齊。   注意一點,標準裡說這個屬性是用來對齊行內內容的,所以,不應該對塊級內容起作用。   解釋一下,行內內容是說由行內元素組成的內容,行內元素大家都知道吧,比如 SPAN 元素,IFRAME元素和元素樣式的 ‘display : inline’ 的都是行內元素;塊級內容跟則是由塊級元素構成,DIV 是最常用的塊級元素。塊級元素和行內元素的區別是,塊級元素會佔一行顯示,而行內元素可以在一行並排顯示。   這樣,我們對這個特性的認識應該就清楚了。但是,雖然標準裡這麼規定,那麼是不是所有瀏覽器都遵守呢?答案是否定的。猜猜是哪個瀏覽器這麼特立獨行啊? IE!!   IE6/7及IE8混雜模式中,text- align:center可以使塊級元素也居中對齊。其他瀏覽器中,text-align:center僅作用於行內內容上。
  解決上面的問題比較好的方式,就是為所有需要相對父容器居中對齊的塊級元素設定“margin-left:auto; margin-right:auto”。但這個方式 IE6/IE7/IE8的混雜模式中不支援,所以還要設定父容器的 "text-align:center;"。若居中對齊的子元素內的行內內容不需要居中對齊,則還需要為其設定“text-align:left”。 元素的總結暫時先到這裡,然後由此我們需要再次引入一個網頁佈局中常用的一種手段,定位。

常用的定位就兩種,絕對定位與相對定位,除此之外position這個屬性還接受的引數有:fixed,固定定位,定位基於瀏覽器視窗;static,預設值,說明元素沒有定位;切元素處於正常的流中;

那麼,元素的相對定位於絕對定位有什麼區別呢?我通過各位大神的部落格整理了以下特點

相對定位(Relative positioning) 一旦一個盒子被定位或者浮動,它可以相對於這個位置進行一定的偏移。這就叫做相對定位。偏移的盒子(B1)對緊跟著它的盒子(B2)沒有任何影響:B2的位置就像B1沒有發生偏移一樣。因此,相對定位可能導致盒子重疊(overlap)。但是,如果相對定位導致了"overflow:auto"或者"overflow:scroll"的盒子溢位了,那麼UA必須允許使用者(通過滾動條等)能夠訪問到盒子的內容。 一個相對定位的盒子保持原有的正常大小,包括換行和一開始就保有的空間。 對於相對定位的元素來說,left和right將盒子不改變大小的水平移動。left將盒子右移,right將盒子左移。因為left或right的結果都不會導致盒子被分隔或拉伸,所以實際上最終使用的值總是: left=-right。 如果left和right的取值都是auto,那最終生效的值都為0(也就是說盒子呆在原來的位置)。 如果left取值為auto,那麼最終使用的值是-right(也就是說盒子最終左移了right的數值)。 如果right取值為auto,那麼最終使用的值是-left。 如果left和right都不是auto,那麼二者之中必須要忽略一個。如果包含塊的direction屬性值為ltr,那麼使用left,right的值為-left;如果包含塊的direction為rtl,那麼使用right,left的值為-right。 top和bottom屬性將盒子不改變大小的上下移動。top將盒子下移,bottom將盒子上移。因為盒子不會被分隔或者拉伸,所有最終使用的值總是:top=-bottom。如果兩個都是auto,那麼最終使用的值都為0。如果其中之一為auto,那麼設為auto的那個屬性最終使用的值是另一個的負值。如果都不是auto,那麼bottom被忽略(也即是說bottom最終使用的值是-top)。 絕對定位(Absolute positioning) 在絕對定位模型中,盒子被從正常文件流中完全移除,並只相對於它的包含塊進行偏移定位。絕對定位的盒子會為它的正常文件流後代盒子以及非fixed的絕對定位後代盒子建立一個包含塊。絕對定位的盒子可能會遮蓋其他元素,具體取決於堆疊層次。 固定佈局(Fixed positioning) 固定佈局是絕對佈局的一個子類,唯一的不同在於固定佈局的盒子的包含塊由視口(viewport)產生。 我們通常通過fixed佈局來建立頁面的框架,比如:

相關推薦

前端學習筆記整理元素元素區別以及絕對定位固定定位差異

1.簡要說明: 1. 行內元素會再一條直線上,是在同一行的。比如span和strong; 2. 塊級元素各佔一行。是垂直方向的!比如div和p 假如你要將行內元素變成塊級元素,那麼就只需要在該標籤上加上樣式 display:block; 塊級元素可以用樣式控制其高、寬的值,而行內元素不可以。 行內元素和wi

前端學習筆記整理rempx換算的計算方式

前言 這段時間的小專案中算是真正意義上使用了rem來進行移動端的頁面佈局,專案結束了我反思了一下之前的對於rem的使用...原來我以前對rem用法完全是在搞笑啊!!結合這次這個小專案,我覺得我也有必要對rem佈局以及用法進行一次總結。 ps.文筆可能不太好... 1.什麼是rem 來自於鵝廠ISUX團隊的解釋

前端學習筆記整理CSS盒模型基於盒模型的6種元素居中方案

概覽 CSS盒模型,規定了元素框來處理元素的 內容、內邊距、邊框和外邊距的方式 元素部分是指內容部分,也是最實際的內容,包圍內容的稱之為內邊距,內邊距外圍是邊框,邊框外圍就是外邊距;且外邊距是透明的,所以並不會阻擋其後的元素   * {     margin: 0;     padding: 0;   }

前端學習筆記整理HTTP協議以及httphttps的區別

前言 還是老樣子,新部落格開始前總是想先囉嗦幾句...HTTP協議其實在當初學習java時老師就有提過...但是...反正就那麼過去了... 這段時間公司的專案正好要求做https的轉換和遷移,然後自己思考了一下,好像自己對於http連一知半解都算不上...更不提http與https的區別...想想作為一個未

前端學習筆記整理關於JavaScript中的關鍵字——this

寫在前面 工作有那麼一段時間了,但是在工作中,發現自己的理論知識還是有所欠缺。特別是在javascript上,很多東西其實自己屬於知道要用這個,但是不知道為什麼要這麼用...這種情況很是尷尬了,所以寫部落格的很重要一個目的就是鍛鍊我自己的總結能力,把學到的東西總結出來,感覺這樣能讓我更快的去理解所學到的東西。

前端學習筆記整理CSS視覺格式化模型

1. 概念 在視覺格式化模型中,文件樹中的每個元素都將會根據盒模型產生零到多個盒子。這些盒子的佈局由如下因素決定: 盒子的尺寸和型別 定位策略(正常文件流,浮動或者絕對定位) 和文件樹中其他元素的關係 額外的資訊(比如視口的大小,圖片的原始尺寸等) 1.1 視口(viewport) 連續媒體(contin

前端學習筆記整理LESS基礎

第一次接觸CSS預編譯,然後對比後發現其實less的上手容易度確實比sass高不少,再加上公司專案也是使用的less。所以想想還是根據網上的各種教程,整理出來了一些比較基礎的、而且比較能讓我們這種初學者快速上手的例子。 菜雞一隻,程式碼要是有錯或者表達不清的地方,請各位批評指正! 那麼,現在我們就開始正文部分

前端學習筆記整理this關鍵字詳解

 這裡有一個微妙但是非常重要的細節,雖然 this 的繫結規則完全取決於呼叫位置,但是隻有 foo() 執行在非 strict mode 下時,預設繫結才能繫結到全域性物件;嚴格模式下與 foo()的呼叫位置無關: function foo() {      console.log( this.a );

C++函數和巨集的區別

行內函數 行內函數指的是用[ inline ]關鍵字修飾的函式,在類體內定義的函式會被預設定義為行內函數 特性 行內函數會在【編譯】期間進行替換,就是將呼叫該函式的地方換成【函式體】(類似於C語言中的巨集,然而巨集是在【預處理】階段進行替換) 行內函數和巨集的不同之處 1、

前端學習筆記關於CSS再次整理

如果你在日常工作中使用 CSS,你的主要目標可能會重點圍繞著使事情“看起來正確”。如何實現這一點經常是遠不如最終結果那麼重要。這意味著比起正確的語法和視覺結果來說,我們更少關心 CSS 的工作原理。 CSS 的視覺結果通常是操作隱藏屬性的間接後果,你可能還沒有意識到這一點。某些 CSS 屬性(比如 backg

Python學習筆記5 轉載基本矩陣運算_20170618

ros class 簡單 lba spa 使用 常見 port 模塊 需要 numpy 庫支持 保存鏈接 http://www.cnblogs.com/chamie/p/4870078.html 1.numpy的導入和使用 from numpy import *;

Deep Learning(深度學習學習筆記整理系列

學習能力 架構 -s 解釋 區別 初始化 filter 大牛 ted Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明

學習筆記案例財政收入影響因素分析及預測模型

6.0 pearson end 4.5 pandas 問題 特征 ase max() 案例來源:《Python數據分析與挖掘實戰》第13章 案例背景與挖掘目標 輸入數據: 《某市統計年鑒》(1995-2014) 挖掘目標: 梳理影響地方財政收入的關鍵特征,分析、識別影響地

學習筆記案例中醫證型關聯規則挖掘

order 卡方檢驗 eat 業務 並行 pen fill lin 區分 案例來源:《Python數據分析與挖掘實戰》第8章 案例背景與挖掘目標 輸入數據: 挖掘目標: 借助三陰乳腺癌患者的病理信息,挖掘患者的癥狀與中醫證型之間的關聯關系 對截斷治療提供依據,挖掘潛性證素

Mongodb知識樹整理pymongo

1.安裝python包 sudo pip install pymongo 2.引入包 from pymongo import * 類MongoClient 建立連線並建立客戶端 無安全認證:client = MongoClient('mongodb://localh

Java基礎筆記整理---07面向物件程式設計-類和物件

int 型別預設值為 0 String型別預設值為null 方法(函式):返回值 方法名(引數型別 引數名稱, ...){方法體(程式碼塊)}this指呼叫的方法中(當前)的變數類與物件1.構造方法:1> 構造物件 構造例項的方法,一個特殊方法,方法名需要與類名相同,

前端姿勢玩docker基於nvm的前端環境構建技巧

### 前言 * 安裝docker啥的就不說了,這裡重點強調一下,docker的環境問題。本人的環境: 虛擬機器centos => docker => NAT => container 因為需要不斷更換網路環境,如若使用橋接,需要不斷調整網絡卡的IP,使虛機與宿主機保持在同一網段,所以乾脆用了NAT,此處

109元素間的換符導致出現空隙。Vue用刪除標籤間換符解決。

場景重現 讀者可以到 這裡寫連結內容 去閱讀整個演示專案的原始碼。本文只給出關鍵程式碼。 檔案結構 blog109 │ ├─.babelrc ├─.npmrc ├─index.template.html ├─package.j

CSS學習——元素元素的轉換

行內元素 span、i、 a、 img等等。 在一行內顯示,一般情況不可以設定寬高的元素就是行內元素。 塊級元素 div、h1、p、li等等。獨佔一行,可以設定寬高的元素就是塊級元素。 行內元素轉換成塊級元素 在行內元素中設定display:block;就可以讓行內元

python學習之網站的編寫(HTML,CSS,JS)(十四)----------CSS的display標籤和標籤的轉換,控制標籤是否顯示

行內標籤:有多大就佔多大,無法設定高度,寬度和邊距。 塊級標籤:佔一行,可以設定高度,寬度和邊距。 塊級標籤轉為行內標籤:display:inline 行內標籤轉為塊級標籤:display:block 還有一個特殊的轉換,既包含塊級標籤的屬性,又具有行內標籤的屬性,自己有多少佔多少,