前端基礎(chǔ)之CSS(二)

1.11 瀏覽器是怎樣解析CSS選擇器的?

CSS選擇器的解析是從右向左解析的

原因:

從右向左的匹配在第一步就篩選掉了大量的不符合條件的最右節(jié)點(diǎn)(葉子節(jié)點(diǎn))挤巡,而從左向右的匹配規(guī)則的性能都浪

費(fèi)在了失敗的查找上面

1.12 width:auto 和 width:100%的區(qū)別

  • width:100%會(huì)使元素box的寬度等于父元素的contentbox的寬度
  • width:auto會(huì)使元素?fù)螡M整個(gè)父元素心铃,margin、border、padding姑子、content區(qū)域會(huì)自動(dòng)分配水平空間。

1.13 display测僵、position和float的相互關(guān)系街佑?

  • 首先我們判斷display屬性是否為none,如果為none捍靠,則position和float屬性的值不影響元素最后的表現(xiàn)
  • 然后判斷position的值是否為absolute或者fixed沐旨,如果是,則float屬性失效榨婆,并且display的值應(yīng)該被 設(shè)置為table或者block磁携,具體轉(zhuǎn)換需要看初始轉(zhuǎn)換值
  • 如果position的值不為absolute或者fixed,則判斷float屬性的值是否為none良风,如果不是谊迄,則display 的值則按上面的規(guī)則轉(zhuǎn)換闷供。注意,如果position的值為relative并且float屬性的值存在统诺,則relative相對(duì) 于浮動(dòng)后的最終位置定位
  • 如果float的值為none歪脏,則判斷元素是否為根元素,如果是根元素則display屬性按照上面的規(guī)則轉(zhuǎn)換粮呢,如果不是唾糯, 則保持指定的display屬性值不變

總的來(lái)說(shuō),可以把它看作是一個(gè)類似優(yōu)先級(jí)的機(jī)制鬼贱,"position:absolute"和"position:fixed"優(yōu)先級(jí)最高移怯,有它存在 的時(shí)候,浮動(dòng)不起作用这难,'display'的值也需要調(diào)整舟误;其次,元素的'float'特性的值不是"none"的時(shí)候或者它是根元素 的時(shí)候姻乓,調(diào)整'display'的值嵌溢;最后,非根元素蹋岩,并且非浮動(dòng)元素赖草,并且非絕對(duì)定位的元素,'display'特性值同設(shè)置值剪个。

1.14 IFC 是什么秧骑?

IFC指的是行級(jí)格式化上下文,它有這樣的一些布局規(guī)則:

  • 行級(jí)上下文內(nèi)部的盒子會(huì)在水平方向扣囊,一個(gè)接一個(gè)地放置乎折。
  • 當(dāng)一行不夠的時(shí)候會(huì)自動(dòng)切換到下一行。
  • 行級(jí)上下文的高度由內(nèi)部最高的內(nèi)聯(lián)盒子的高度決定

1.15 為什么不建議使用統(tǒng)配符初始化 css 樣式

  • 采用*{pading:0;margin:0;}這樣的寫法好處是寫起來(lái)很簡(jiǎn)單侵歇,但是是通配符骂澄,需要把所有的標(biāo)簽都遍歷一遍,當(dāng)網(wǎng)站較大時(shí)惕虑, 樣式比較多坟冲,這樣寫就大大的加強(qiáng)了網(wǎng)站運(yùn)行的負(fù)載,會(huì)使網(wǎng)站加載的時(shí)候需要很長(zhǎng)一段時(shí)間溃蔫,因此一般大型的網(wǎng)站都有分層次的一 套初始化樣式
  • 出于性能的考慮健提,并不是所有標(biāo)簽都會(huì)有padding和margin,因此對(duì)常見(jiàn)的具有默認(rèn)padding和margin的元素初始化即 可酒唉,并不需使用通配符*來(lái)初始化

1.16 CSS3 新特新

  1. 新增各種 CSS 選擇器 :not(p) 選擇每個(gè)非p的元素矩桂; p:empty 選擇每個(gè)沒(méi)有任何子級(jí)的p元素(包括文本節(jié)點(diǎn))
  2. 邊框(Borders)
  3. 背景 background-clip(規(guī)定背景圖的繪制區(qū)域)沸移,background-origin痪伦,background-size
  4. 線性漸變 (Linear Gradients) 向下/向上/向左/向右/對(duì)角方向
  5. 文本效果 陰影text-shadow侄榴,textwrap,word-break网沾,word-wrap
  6. 2D 轉(zhuǎn)換 transform:scale(0.85,0.90) | translate(0px,-30px) | skew(-9deg,0deg) |rotate() 3D轉(zhuǎn)換 perspective()癞蚕;transform是向元素應(yīng)用 2D 或者 3D 轉(zhuǎn)換
  7. 過(guò)渡 transition
  8. 動(dòng)畫
  9. 多列布局 (multi-column layout)
  10. 盒模型
  11. flex 布局
  12. 多媒體查詢 **定義兩套css,當(dāng)瀏覽器的尺寸變化時(shí)會(huì)采用不同的屬性

1.17 position 跟 display辉哥、float 這些特性相互疊加后會(huì)怎么樣桦山?

  • display 屬性規(guī)定元素應(yīng)該生成的框的類型;position屬性規(guī)定元素的定位類型醋旦;float屬性是一種布局方式恒水,定義元素在哪個(gè)方向浮動(dòng)。
  • 類似于優(yōu)先級(jí)機(jī)制:position:absolute/fixed優(yōu)先級(jí)最高饲齐,有他們?cè)跁r(shí)钉凌,float不起作用,display值需要調(diào)整捂人。float 或者absolute定位的元素御雕,只能是塊元素或表格。

1.18 什么是CSS 預(yù)處理器滥搭?為什么使用酸纲?

  • Less、Sass瑟匆、Stylus闽坡,用來(lái)預(yù)編譯Sass或less,增強(qiáng)了css代碼的復(fù)用性愁溜,還有層級(jí)无午、mixin、變量祝谚、循環(huán)宪迟、函數(shù)等,具有很方便的UI組件模塊化開(kāi)發(fā)能力交惯,極大的提高工作效率

為什么要使用次泽?

  • 可嵌套性
  • 變量
  • Mixins(混合@mixin):可重用性高,可以注入任何東西
  • @extend:允許一個(gè)選擇器繼承另一個(gè)選擇器
  • @function:函數(shù)功能席爽,用戶使用@function 可以去編寫自己的函數(shù)
  • 引用父元素&:在編譯時(shí)意荤,&將被替換成父選擇符
  • 計(jì)算功能
  • 組合連接: #{} :變量連接字符串
  • 循環(huán)語(yǔ)句:(很少用到)
  • if 語(yǔ)句:(很少用到)

1.19 瀏覽器是怎樣解析的?

  1. HTML 被 HTML 解析器解析成 DOM 樹(shù)只锻;2. CSS 被 CSS 解析器解析成 CSSOM 樹(shù)玖像;
  2. 結(jié)合 DOM 樹(shù)和 CSSOM 樹(shù),生成一棵渲染樹(shù)(Render Tree)齐饮,這一過(guò)程稱為 Attachment捐寥;
  3. 生成布局(flow)笤昨,瀏覽器在屏幕上“畫”出渲染樹(shù)中的所有節(jié)點(diǎn);
  4. 將布局繪制(paint)在屏幕上握恳,顯示出整個(gè)頁(yè)面瞒窒。

1.20 在網(wǎng)頁(yè)中的應(yīng)該使用奇數(shù)還是偶數(shù)的字體?為什么呢乡洼?

  • 使用偶數(shù)字體
  • Windows 自帶的點(diǎn)陣宋體(中易宋體)從 Vista 開(kāi)始只提供 12崇裁、14、16 px 這三個(gè)大小的點(diǎn)陣束昵,而 13拔稳、15、17 px時(shí)用的是小一號(hào)的點(diǎn)锹雏。(即每個(gè)字占的空間大了 1 px壳炎,但點(diǎn)陣沒(méi)變),于是略顯稀疏

1.21 元素豎向的百分比設(shè)定是相對(duì)于容器的高度嗎逼侦?

當(dāng)按百分比設(shè)定一個(gè)元素的寬度時(shí)匿辩,它是相對(duì)于父容器的寬度計(jì)算的,但是榛丢,對(duì)于一些表示豎向距離的屬性铲球,例如 padding-top , padding-bottom , margin-top , margin-bottom 等,當(dāng)按百分比設(shè)定它們時(shí)晰赞,依據(jù)的也是父容器的寬度稼病,而不是高度

1.22 怎么讓谷歌支持小于12px的文字?

使用 scale

1.23 li 與 li 之間有看不見(jiàn)的空白間隔是什么原因引起的掖鱼?有什么解決辦法然走?

行框的排列會(huì)受到中間空白(回車空格)等的影響,因?yàn)榭崭褚矊儆谧址?這些空白也會(huì)被應(yīng)用樣式戏挡,占據(jù)空間芍瑞,所以會(huì)有間隔,把字符大小設(shè)為0褐墅,就沒(méi)有空格了

解決方法:

  1. 可以將代碼全部寫在一排
  2. 浮動(dòng)li中float:left
  3. 在ul中用font-size:0(谷歌不支持)拆檬;
  4. 可以將 ul{letter-spacing: -4px;};li{letter-spacing: normal;}

1.24 display:inline-block 什么時(shí)候會(huì)顯示間隙?

  1. 有空格時(shí)候會(huì)有間隙 解決:s除空格
  2. margin正值的時(shí)候 解決:margin使用負(fù)值
  3. 使用font-size時(shí)候 解決:font-size:0妥凳、letter-spacing竟贯、word-spacing

1.25 png、jpg逝钥、gif 這些圖片格式解釋一下叙甸,分別什么時(shí)候用锨能。有沒(méi)有了解過(guò)webp慢显?

  • png是便攜式網(wǎng)絡(luò)圖片(Portable Network Graphics)是一種無(wú)損數(shù)據(jù)壓縮位圖文件格式.優(yōu)點(diǎn)是:壓縮比高,色彩好沃琅。 大多數(shù)地方都可以用。
  • jpg是一種針對(duì)相片使用的一種失真壓縮方法选酗,是一種破壞性的壓縮阵难,在色調(diào)及顏色平滑變化做的不錯(cuò)岳枷。在www上芒填,被用來(lái)儲(chǔ)存和傳輸照片的格式。
  • gif是一種位圖文件格式空繁,以8位色重現(xiàn)真色彩的圖像殿衰。可以實(shí)現(xiàn)動(dòng)畫效果.
  • webp格式是谷歌在2010年推出的圖片格式盛泡,壓縮率只有jpg的2/3闷祥,大小比png小了45%。缺點(diǎn)是壓縮的時(shí)間更久了傲诵,兼容性不好凯砍,目前谷歌和opera支持。

1.26 style 標(biāo)簽寫在 body 后與 body前有什么區(qū)別拴竹?

頁(yè)面加載自上而下 當(dāng)然是先加載樣式悟衩。
寫在 body 標(biāo)簽后由于瀏覽器以逐行方式對(duì)HTML文檔進(jìn)行解析,當(dāng)解析到寫在尾部的樣式表(外聯(lián)或?qū)懺?style 標(biāo)簽)會(huì)導(dǎo)致瀏覽器停止之前的渲染栓拜,等待加載且解析樣式表完成之后重新渲染座泳,在windows的IE下可能會(huì)出現(xiàn) FOUC 現(xiàn)象(即樣式失效導(dǎo)致的頁(yè)面閃爍問(wèn)題)

1.27 ::before 和::after 中雙冒號(hào)和單冒號(hào)有什么區(qū)別、作用幕与?

區(qū)別

在css中偽類一直用:表示挑势,如 :hover:active

偽元素在CSS1中已存在啦鸣,當(dāng)時(shí)語(yǔ)法使用 : 表示 潮饱,如::before:after

后來(lái)在CSS3中修訂,偽元素用 ::表示诫给,如 ::before::after饼齿,以此區(qū)分偽元素和偽類

由于低版本 IE 對(duì)雙冒號(hào)不兼容,開(kāi)發(fā)者為了兼容性各瀏覽器蝙搔,繼續(xù)使使用 :after 這種老語(yǔ)法表示偽元素

單冒號(hào): CSS3表示偽類缕溉;雙冒號(hào)::CSS3偽元素

作用:

::before 和::after 的主要作用是在元素內(nèi)容前后加上指定內(nèi)容

偽類與偽元素都是用于向選擇器加特殊效果

偽類與偽元素的本質(zhì)區(qū)別就是是否抽象創(chuàng)造了新元素

偽類只要不是互斥可以疊加使用

偽元素在一個(gè)選擇器中只能出現(xiàn)一次,并且只能出現(xiàn)在末尾

偽類與偽元素優(yōu)先級(jí)分別與類吃型、標(biāo)簽優(yōu)先級(jí)相同

1.28 CSS3新增偽類证鸥,以及偽元素?

CSS3 新增偽類

p:first-of-type 選擇屬于其父元素的首個(gè)<p>元素的每個(gè)<p>元素

p:last-of-type 選擇屬于其父元素的最后<p>元素的每個(gè)<p>元素

p:nth-child(n) 選擇屬于其父元素的第 n 個(gè)子元素的每個(gè)<p>元素

p:nth-last-child(n) 選擇屬于其父元素的倒數(shù)第 n 個(gè)子元素的每個(gè)<p>元素

p:nth-of-type(n) 選擇屬于其父元素第 n 個(gè)<p>元素的每個(gè)<p>元素

p:nth-last-of-type(n)

選擇屬于其父元素倒數(shù)第 n 個(gè)<p>元素的每個(gè)<p>元素

p:last-child 選擇屬于其父元素最后一個(gè)子元素的每個(gè)<p>元素

p:target

選擇當(dāng)前活動(dòng)的<p>元素

:not(p) 選擇非<p>元素的每個(gè)元素

:enabled 控制表單控件的可用狀態(tài)

:disabled

控制表單控件的禁用狀態(tài)

:checked

單選框或復(fù)選框被選中

偽元素

::first-letter 將樣式添加到文本的首字母

::first-line 將樣式添加到文本的首行

::before 在某元素之前插入某些內(nèi)容

::after 在某元素之后插入某些內(nèi)容

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市枉层,隨后出現(xiàn)的幾起案子泉褐,更是在濱河造成了極大的恐慌,老刑警劉巖鸟蜡,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膜赃,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡揉忘,警方通過(guò)查閱死者的電腦和手機(jī)跳座,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)泣矛,“玉大人疲眷,你說(shuō)我怎么就攤上這事∧啵” “怎么了狂丝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)哗总。 經(jīng)常有香客問(wèn)我几颜,道長(zhǎng),這世上最難降的妖魔是什么讯屈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任蛋哭,我火速辦了婚禮,結(jié)果婚禮上耻煤,老公的妹妹穿的比我還像新娘具壮。我一直安慰自己,他們只是感情好哈蝇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布棺妓。 她就那樣靜靜地躺著,像睡著了一般炮赦。 火紅的嫁衣襯著肌膚如雪怜跑。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天吠勘,我揣著相機(jī)與錄音性芬,去河邊找鬼。 笑死剧防,一個(gè)胖子當(dāng)著我的面吹牛植锉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峭拘,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼俊庇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼狮暑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起辉饱,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤搬男,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后彭沼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體缔逛,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年姓惑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褐奴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挺益,死狀恐怖歉糜,靈堂內(nèi)的尸體忽然破棺而出乘寒,到底是詐尸還是另有隱情望众,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布伞辛,位于F島的核電站烂翰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蚤氏。R本人自食惡果不足惜甘耿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竿滨。 院中可真熱鬧佳恬,春花似錦、人聲如沸于游。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)贰剥。三九已至倾剿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蚌成,已是汗流浹背前痘。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留担忧,地道東北人芹缔。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瓶盛,于是被迫代替她去往敵國(guó)和親最欠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坡锡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容