成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

CSS中的語法與概念

funnyZhang / 2539人閱讀

摘要:屬性語法層面僅對(duì)屬性作粗略分類。重點(diǎn)還是概念均決定了布局基礎(chǔ)模式。常規(guī)布局的重心與難點(diǎn)。對(duì)應(yīng)標(biāo)準(zhǔn)第章布局上下文格式化上下文在常規(guī)流中的框,都屬于一個(gè)格式化的上下文中規(guī)則脫胎自文字排印,核心概念是。

發(fā)端自此。本文細(xì)節(jié)從略,只做主干梳理。

這個(gè)樹主要還是在借CSS2.1標(biāo)準(zhǔn)的骨架,填充進(jìn)一些新的CSS3標(biāo)準(zhǔn)。要不然CSS3各個(gè)module一填進(jìn)去,這個(gè)樹就過于龐大了。

語法

本段分類方式部分參考了wiki《Comparison of Layout Engines》。

屬性

語法層面僅對(duì)屬性作粗略分類。重點(diǎn)還是概念(display, position, float均決定了布局基礎(chǔ)模式)。

本段整理自標(biāo)準(zhǔn)http://www.w3.org/TR/css3-values

概念 規(guī)則匹配

根據(jù)來源和重要程度,這樣排序:

user agent declarations

user normal declarations

author normal declarations

author important declarations

user important declarations

p.s. User Agent、User和Author即三個(gè)不一樣的樣式聲明來源:瀏覽器、用戶和(頁面)作者

同級(jí)別比較才會(huì)再計(jì)算特化程度(specificity)。

tag

class

id

inline style

計(jì)算

計(jì)算階段的各個(gè)值:

指定值Specified values:在樣式表中指定的值

將確定一個(gè)屬性使用的是聲明值、繼承值還是初始值

計(jì)算值Computed values:格式化文檔之前,根據(jù)樣式表計(jì)算出的值

相對(duì)的URI將轉(zhuǎn)化為絕對(duì)URI

float: left將導(dǎo)致計(jì)算值為display:block也發(fā)生在這一步

相對(duì)單位em將轉(zhuǎn)化為px或類似單位(當(dāng)然,如果font-size中用到了em,則需要到下一步才能算出)

使用值Used values:格式化文檔之后,根據(jù)樣式表及層疊關(guān)系計(jì)算出的值

百分比值轉(zhuǎn)化為px或類似單位

line-height的相應(yīng)計(jì)算

真實(shí)值A(chǔ)ctual values:使用值在一些UA中可能不允許被使用,因此還可能發(fā)生針對(duì)UA的轉(zhuǎn)化

比如在chrome里面,px不允許有小數(shù),因此就算使用值是33.333px,真實(shí)值將是33px。這可能導(dǎo)致一些subpixel bug

比如在kindle的瀏覽器里面,UA本身不支持灰度以外的顏色,因此所有的顏色將會(huì)轉(zhuǎn)化會(huì)灰色

布局 盒模型 Box model

對(duì)應(yīng)CSS2.1第8章 Box model,十分基礎(chǔ),介紹的文章很少出問題,就不多說了。

這幾個(gè)概念將在“包含塊”里面再次提到:

Margin Edge

Border Edge

Padding Edge

Content Edge

參考:包含塊 Containing block

不理解“包含塊”的概念,永遠(yuǎn)無法完全理解width:100%、width:auto、top: 0;等究竟是相對(duì)何而言的。參考W3Help《包含塊( Containing block )》:

參考:替換元素與非替換元素 Replaced Element & Non-replaced Element

替換元素,定義見W3C《第三章:定義》。在W3C的第十章有專門針對(duì)替換元素的定位進(jìn)行闡述。

內(nèi)容區(qū)塊超出CSS格式化模型

大多有一些固有寬/高/比例

視口 Viewport

參見quirksmode的《兩個(gè)視口的故事【1】、【2】》。

Visible Viewport

Layout Viewport

布局體系 Positioning

布局體系,決定元素出現(xiàn)在哪里及相互影響的方式。

常規(guī)布局

CSS2.1的重心與難點(diǎn)。
本部分網(wǎng)絡(luò)非常多謬誤,很容易被各路水貨帶進(jìn)坑。
最好參照W3Help《CSS 定位體系概述》和后面幾章,對(duì)應(yīng)標(biāo)準(zhǔn)CSS2.1《第9章 Visual formatting model》,《第10章 Visual formatting model details》來理解。

常規(guī)布局又分為三大塊:

Normal Flow
出現(xiàn)inline-boxline-box、block-box的概念,同時(shí)又提出了BFC和IFC。

Float

Absolute positioning

普通流的高度計(jì)算流程,可一窺各個(gè)box影響布局的方式:

根據(jù) "line-height" 屬性計(jì)算出每個(gè)行內(nèi)元素的inline-box高度;

根據(jù) "vertical-align" 屬性計(jì)算出每個(gè)inline-box的垂直對(duì)齊方式;

line-box的高度是垂直對(duì)齊排列最上面inline-box的頂邊和最下邊inline-box的底邊距離;
如果inline-box字號(hào)設(shè)置大于行內(nèi)框的 "line-height" 設(shè)置,文字將溢出當(dāng)前l(fā)ine-box,他可能造成多行時(shí)文字相互覆蓋;

在沒有其他塊級(jí)內(nèi)容的情況下,整個(gè)block-box的高度取決于多個(gè)line-box累計(jì)的高度
每個(gè)計(jì)算出的行框在垂直高度上排列沒有間隙

表格布局

表格布局很復(fù)雜,對(duì)外部的影響可屬于Normal Flow,內(nèi)部又區(qū)別于Normal Flow元素相互影響的方式。對(duì)應(yīng)標(biāo)準(zhǔn)CSS2.1《第17章 Tables》

Flex布局 上下文 格式化上下文 Formatting Context

在常規(guī)流中的框,都屬于一個(gè)格式化的上下文中:

IFC:Inline Formatting Context
規(guī)則脫胎自文字排印,核心概念是vertical-align、line-height。

BFC:Block Formatting Context
這個(gè)概念的細(xì)則可見Smallni的《hasLayout && Block Formatting Contexts》

層疊上下文 Stacking Context

決定元素有重合時(shí)的相互覆蓋情況。
CSS2.1時(shí)期的規(guī)則可參考W3Help《分層的顯示( Layered presentation )》
進(jìn)入CSS3以后,Stacking Context不僅僅由z-index創(chuàng)建,而這導(dǎo)致了它的復(fù)雜性??蓞⒖糓DN《The stacking context》。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/111091.html

相關(guān)文章

  • HTML補(bǔ)充+CSS基礎(chǔ)

    摘要:文件的編碼格式頁面的編碼格式設(shè)置當(dāng)前頁面的編碼格式在瀏覽器運(yùn)行當(dāng)前頁面時(shí),告訴瀏覽器當(dāng)前的編碼格式字符集概念存放所使用的所有的字符漢字分類美國歐洲中國萬國碼主要使用計(jì)算機(jī)的存儲(chǔ)方式利用二進(jìn)制方式和中國存儲(chǔ)將 文件的編碼格式 - UTF-8 HTML頁面的編碼格式 - UTF-8 設(shè)置當(dāng)前HTML頁面的編碼格式 在瀏覽器運(yùn)行當(dāng)前HTML頁面時(shí),告訴瀏覽器當(dāng)前的編碼格式 字符...

    CoorChice 評(píng)論0 收藏0
  • 關(guān)于sass、scss、less的概念性知識(shí)匯總

    摘要:而使用預(yù)處理器,提供缺失的樣式層復(fù)用機(jī)制減少冗余代碼,提高樣式代碼的可維護(hù)性。所以我們?cè)趯?shí)際項(xiàng)目中衡量預(yù)編譯方案時(shí),還是得想想,比起帶來的額外維護(hù)開銷,預(yù)處理器有沒有解決更大的麻煩。也是成熟的預(yù)處理器之一,而且有一個(gè)穩(wěn)定,強(qiáng)大的團(tuán)隊(duì)在維護(hù)。 這篇文章主要解答以下幾個(gè)問題,供前端開發(fā)者的新手參考。 1、什么是Sass和Less? 2、為什么要使用CSS預(yù)處理器? 3、Sass和Less的...

    HmyBmny 評(píng)論0 收藏0
  • 關(guān)于sass、scss、less的概念性知識(shí)匯總

    摘要:而使用預(yù)處理器,提供缺失的樣式層復(fù)用機(jī)制減少冗余代碼,提高樣式代碼的可維護(hù)性。所以我們?cè)趯?shí)際項(xiàng)目中衡量預(yù)編譯方案時(shí),還是得想想,比起帶來的額外維護(hù)開銷,預(yù)處理器有沒有解決更大的麻煩。也是成熟的預(yù)處理器之一,而且有一個(gè)穩(wěn)定,強(qiáng)大的團(tuán)隊(duì)在維護(hù)。 這篇文章主要解答以下幾個(gè)問題,供前端開發(fā)者的新手參考。 1、什么是Sass和Less? 2、為什么要使用CSS預(yù)處理器? 3、Sass和Less的...

    xuweijian 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<