精通CSS 高階Web標準解決方案(第2版)

2021-06-26 17:14:19 字數 2998 閱讀 3131

跳轉至:

導航、

搜尋層疊重要度:(也就是說,使用者!important可以覆蓋inline style)

!important、使用者》作者、最後是瀏覽器/使用者**

規則特殊性(次序)的計算:a,b,c,d如果相同,後定義的優先如果是inline style,a=1

b=id選擇器(#id)的個數

c=類、偽類、屬性選擇器的個數

d=型別、偽元素選擇器的個數

=> 大**複雜內容情況下如何管理規則次序???

@import比link慢?

p41 (垂直)margin疊加(=max(upper's margin-bottom, down's margin-top))

元素巢狀包含、空元素都會發生疊加

only for 普通文件流的block框,inline、float、position:absolute的不會疊加

inline:設定高度、寬度沒有作用,line-height

=> inline-block

無法直接對應用樣式

position:relative:可以指定left、top「相對於」原來位置,元素仍然佔據原來的空間

position:absolute:元素不佔據文件流空間(這相當於提公升其z-index?)

相對於距離它最近的祖先元素定位(由此可以看出css是先定位祖先元素,後子孫元素的?)

position:float:可以(脫離文件流)左右移動,直到碰到包含框(containing box)或另乙個浮動框如果包含塊(containing block?)無法水平容納下所有元素,其他float元素將下移

文字元素會受float的影響,造成類似於word『文字環繞』的效果

要阻止之,對這些文字行clear float。

可使用乙個空元素clear:both,使得父容器包含浮動元素。(也可以直接float容器,但這會影響下乙個元素)

.clearfloat:after

ie 6-中的『holly hack』

p56 利用背景圖象建立專案符號

p65 圓角框在css 3裡很容易處理,在css 2.1時代的各種tricks略過

9切分的border-image: url(user-corner.gif) 25% 25% 25% 25% / 25px round round;

css投影:box-shadow

css視差:background-position: 20% 0;

圖象替換(css 2.1):

phark:使用text-indent:-5000px; 對於關閉圖象但開啟css的情況無效

sifr(js+flash)

p87 css 3允許:target偽類?(恩,這麼做沒有資訊洩露問題)

外鏈樣式(常見於wiki)

p92 文字在行框中總是垂直居中的(??),設定line-height即可,使用height會導致文字不是垂直居中,從而必須設定額外的padding

css tooltip:不如最簡單的title屬性吧?

p105 在導航條中突出顯示當前頁面:使用2個id,其中乙個應用到body元素上,進行組合匹配(這樣,導航條的後台不需要特殊處理。。。)酷!

p114 ie老版本不支援在非錨元素上使用:hover,可以用js或.htc行為檔案啟用這個功能

css圖象對映:用乙個div包住img,設定其大小等於圖象並position:relative; 然後讓各個li元素相對於div定位,用:hover顯示border線。。。

p129 遠距離翻**實際上很簡單,讓錨元素包住乙個div/span/li,然後用絕對定位把這些包含元素移動到頁面其他位置,設定錨元素的:hover即可。

p136 table元素border的2種模型:collapse|separate

表單元素

fieldset:分塊標題(group panel/box)

label的2種使用方式:巢狀包含input;使用for屬性關聯input(id)

p153 『所有css布局的根本都是3個基本概念:定位、浮動、margin操縱。』

ie 6-不支援margin:auto; 幸運的是,ie把text-align:center;誤解為讓所有東西居中,而不僅僅是文字(。。。)

p159 在符合標準的瀏覽器中,如果元素的內容太大,它只會超出box之外。但是,ie會擴充套件整個元素(。。。-_-)

3列布局:分解為2個巢狀的兩列布局???

p166 彈性布局:相對於字型大小(em單位)布局(對支援頁面縮放的瀏覽器而言沒有必要)

body 只以em為單位設定容器的寬度,內部寬度仍然使用%

p170 faux列(略)

bug與修復bug

ie的『擁有布局』(haslayout)

設定以下屬性會使元素擁有布局:float、display:inline-block;、width/height、zoom、writing-mode:tb-rl;

ie7中增加了:overflow、min-width:任何值、max-width:除none外任何值

例如:ie中文字段落擁有布局,不會出現環繞float元素的效果

又如:ie 6-中,擁有布局的元素會錯誤地擴充套件以適應內容尺寸 ...

hack和過濾器(略)

ie 6-上的常見bug:

任何浮動元素的margin加倍???改為display:inline;

3px文字偏移

一系列浮動元素的最後元素的最後幾個字元重複:刪除注釋(。。。!)

*ie6的『peek-a-boo』bug

*相對容器中的絕對定位(o, i c,****):.rel-container

案例研究

roma italia

cufon?用所選的字型顯示html,不需要任何圖象或@font-face(???):所選字型的eula必須允許在web上進行字型嵌入

climb the mountains

:first-child

組合class 

精通CSS高階Web標準解決方案

內容簡介 精通css 高階web標準解決方案 將最有用的css技術彙總在一起,還總結了css設計中的最佳實踐,討論了解決各種實際問題的技術,填補了一直以來css圖書的空白。正因如此,英文版出版後,一時洛陽紙貴,多次重印,並迅速登上amazon圖書排行榜前列,最高時甚至與 哈利 波特 並駕齊驅,創造了...

精通CSS 高階Web標準解決方式(第2版)

跳轉至 導航 搜尋層疊重要度 也就是說。使用者 important能夠覆蓋inline style important 使用者 作者 最後是瀏覽器 使用者 規則特殊性 次序 的計算 a,b,c,d假設同樣。後定義的優先假設是inline style,a 1 b id選擇器 id 的個數 c 類 偽類...

web十五講,CSS高階

css display屬性值描述 none 此元素不會顯示。block 此元素將顯示為塊級元素,前後有換行符。inline 預設。此元素會被顯示為內聯元素,前後無換行符。inline block 行內塊元素。list item 此元素會作為列表顯示。run in 此元素會根據上下文作為塊級元素或內聯...