摘要:設(shè)計思想兼容已有內(nèi)容避免不必要的復(fù)雜性解決現(xiàn)實問題優(yōu)雅降級尊重事實標準變化新增語義化標簽去除純表示性的標簽拖拽離線語法標簽不區(qū)分大小寫推薦小寫空標簽可以不閉合屬性不必引號。遇到這種情況時,會生成匿名塊級盒來包含行級盒。
瀏覽器
瀏覽器 | 渲染引擎 | JavaScript引擎 |
---|---|---|
IE | Trident | JScript |
Edge | EdgeHTML | Chakra |
Safari | Webkit | Nitro |
Chrome | Blink | V8 |
FireFox | Gecko | SpiderMonkey |
Opera | Prasto -> blink | Carakan -> V8 |
360瀏覽器
UC瀏覽器
QQ瀏覽器
搜狗瀏覽器
HyperText Markup Language
使用標簽來描述頁面的內(nèi)容和結(jié)構(gòu)
Doctype的作用指定頁面的使用標準和版本
決定使用哪種渲染模式
渲染模式Quirks Mode (怪異模式)
Almost standard Mode (標準準模式)
Standard Mode (標準模式)
HTML設(shè)計思想注意: 如果當(dāng)我們不指定Doctype時,IE6、IE7會采用怪異模式渲染頁面,IE8以標準模式渲染頁面,firefox11也是以標準模式渲染頁面。
兼容已有內(nèi)容
避免不必要的復(fù)雜性
解決現(xiàn)實問題
優(yōu)雅降級
尊重事實標準
HTML5變化Doctype、meta
新增語義化標簽
去除純表示性的標簽
WebStorage、canvas、video、audio、拖拽、離線
語法標簽不區(qū)分大小寫、推薦小寫
空標簽可以不閉合
屬性不必引號。推薦雙引號
某些屬性值可以省略,如required、readonly
圖片 圖片寬高不指定高寬:原圖大小顯示
指定寬度:按比例縮放到指定寬度
指定高度:按比例縮放到指定高度
指定高寬:強制按照指定高寬顯示
圖片格式jpg:照片
png:色彩較少時使用,png24可以半透明
gif:無法半透明,可以多幀做動畫
WebP
語義化注意: WebP 的優(yōu)勢體現(xiàn)在它具有更優(yōu)的圖像數(shù)據(jù)壓縮算法,能帶來更小的圖片體積,而且擁有肉眼識別無差異的圖像質(zhì)量;同時具備了無損和有損的壓縮模式、Alpha 透明以及動畫的特性,在 JPEG 和 PNG 上的轉(zhuǎn)化效果都非常優(yōu)秀、穩(wěn)定和統(tǒng)一。更多...
提升代碼的可讀性、可維護性
搜索引擎的優(yōu)化(利于SEO)
提升無障礙性
通配選擇器 *
標簽選擇器 p
id選擇器 #id
類選擇器 .class
屬性選擇器[attr]只使用屬性名,但沒有確定任何屬性值;
[attr="value"]指定屬性名,并指定了該屬性的屬性值;
[attr~="value"]指定屬性名,并且具有屬性值,此屬性值是一個詞列表以空格隔開,其中詞列表中包含了一個value;
[attr^="value"]指定了屬性名,并且有屬性值,屬性值以value開頭;
[attr$="value"]指定了屬性名,并且有屬性值,而且屬性值以value結(jié)尾;
[attr*="value"]指定了屬性名,并且有屬性值,而且屬值中包含value;
[attr|="value"]指定了屬性名,并且屬性值是value或者以“value-”開頭的值;
偽類 (pseudo-classes)基于 DOM 之外的信息去(比如根據(jù)用戶和網(wǎng)頁的交互狀態(tài))選擇元素。
a:link { ... } /* 未訪問過的鏈接 */ a:visited { ... } /* 已訪問過的鏈接 */ a:hover { ... } /* 鼠標移到鏈接上的樣式 */ a:active { ... } /* 鼠標在連接上按下時的樣式 */ a:focus { ... } /* 獲得焦點時的樣式 */選擇器組合
直接組合
E[foo="bar"] E.warning E#myid #myid.warning .warning[foo="bar"]
后代組合
/* 后代選擇器 */ article p {...} /* 親子選擇器 */ article > p {...}
相鄰兄弟
input[type="check"] + label {...}
通用兄弟
.active ~ li {...} /* 選擇所有兄弟 */
同時為一組選擇器定義樣式
body, h1, h2, h3, h4, h5, h6, ul, ol, li { margin: 0; padding: 0; } [type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; }選擇器優(yōu)先級根據(jù)特異度判斷(Specificity)
選擇器 | 內(nèi)聯(lián)? | id個數(shù) | (偽)類個數(shù) | 標簽個數(shù) | 特異度 |
---|---|---|---|---|---|
#nav .list li a:link | 0 | 1 | 2 | 2 | 0122 |
.hd ul.links a | 0 | 0 | 2 | 2 | 0022 |
哪條聲明起作用?css文本樣式可繼承 font-family找出匹配到的該屬性所有聲明
根據(jù)規(guī)則來源,優(yōu)先級從低到高:
瀏覽器預(yù)設(shè)
用戶設(shè)置
網(wǎng)頁樣式
同一來源中,按照特異度排序,越特殊優(yōu)先級越高
特異度一樣時,按照樣式書寫順序,后面的優(yōu)先級高
有 !important 時的變化找出匹配到的該屬性所有聲明
根據(jù)規(guī)則來源, 優(yōu)先級從低到高:
瀏覽器預(yù)設(shè)
用戶設(shè)置
網(wǎng)頁樣式
含 !important 的網(wǎng)頁樣式
含 !important 的用戶設(shè)置樣式
同一來源中,按照特異度排序,越特殊優(yōu)先級越高
特異度一樣時,按照樣式書寫順序,后面的優(yōu)先級高
使用逗號分隔的字體族名稱
初始值由瀏覽器設(shè)置決定,可繼承
瀏覽器先獲取一個系統(tǒng)字體列表
對于元素中每一個字符,使用 font-family 屬性及其它屬性進行匹配,如果能匹配就暫定該字體
如果步驟2沒有匹配上,選擇下一個可選的 font-family 執(zhí)行步驟2
如果匹配到一個字體,但是字體中沒有該字符,繼續(xù)對下一個可選的 font-family 執(zhí)行步驟2
如果沒有匹配到字體,使用瀏覽器默認字體。
英文字體放在中文字體前面
最后總是添加通用字體族
font-size定義文字的大小,可使用px、百分比、em等做單位
取值
絕對值 xx-small | x-small | small | medium | large | x-large | xx-large
相對值 larger | smaller
長度
百分數(shù),相對于父元素計算值
初始值為 medium(由瀏覽器設(shè)置決定,一般16px),可繼承
一般是相對于元素 font-size 的計算值的
用在 font-size 屬性上時,是相對于父元素的 font-size 計算值
font-style定義文字以斜體還是正常方式顯示
取值:normal | italic | oblique
初始值為 normal,可繼承
font-weight定義文字的粗細程度
取值:normal | bold | bolder | lighter | 100 | 200 | ... | 900
初始值為 normal,可繼承
line-height元素所屬的 line box 所占高度
初始值為normal(具體值由瀏覽器決定),可繼承
取值:<長度> | <數(shù)字> | <百分比>
段落文字一般取值1.4~1.8
line-height:26px; 表示行高為26個像素
line-heigth:120%;表示行高為當(dāng)前字體大小的120%
line-height:2.6em; 表示行高為當(dāng)前字體大小的2.6倍
帶單位的行高都有繼承性,其子元素繼承的是計算值,如父元素的字體大小為14px,定義行高line-height:2em;則計算值為 28px,不會因其子元素改變字體尺寸而改變行高。(例如:父元素14px,子元素12px,那么行高就是28px,子元素雖然字體是12,行高還是父元素的行高)
line-height:2.6;表示行高為當(dāng)前字體大小的2.6倍
不帶單位的行高是直接繼承,而不是計算值,如父元素字體尺寸為14px,行高line-height:2;他的行高為28px;子元素尺寸為12px,不需要再定義行高,他默認的行高為24px。(例如:子元素12px,他的行高是24,不會繼承父元素的28)
定義文本在容器內(nèi)的對齊方式
取值:left | right | center | justify
初始值由 HTML 的 dir 屬性決定,可繼承
letter-spacing指定字符之間的間距
取值:normal |
初始值為 normal,可繼承
word-spacing指定單詞之間的間距
取值:normal |
初始值為 normal,可繼承
text-indent指定文本縮進
取值:normal |
初始值為 0,可繼承
text-decoration定義了文本的一些裝飾效果,比如下劃線、刪除線等
初始值為none,可繼承
其它值:underline | line-through | overline
white-space指定空白符如何處理
取值:normal | nowrap | pre
word-break指定是否允許在單詞中間換行
取值: normal | break-all | keep-all
box model塊級元素(Block-level Elements)width的值為百分比時,參考的是父元素盒子的width;
height的值為百分比時,參考的是父元素盒子的height;
padding的值為百分比時,參考的是父元素的width;
margin的值為百分比時,參考的是父元素的width;
會被格式化成塊狀的元素
例如 p、div、section 等
將 display 設(shè)置為 block、list-item、table 使元素變?yōu)閴K級
行級元素(Inline-level Elements)不會為其內(nèi)容生成塊級框
讓其內(nèi)容分布在多行中
display 設(shè)置為 inline、inline-block、inline-table 使元素變?yōu)樾屑?/p>
塊級盒子中的子盒子的生成margin:行級盒的 margin-top 和 margin-bottom 不會產(chǎn)生效果
padding:行級盒的 padding-top 和 padding-top 不影響行布局
塊級盒子中可以包含多個子塊級盒子
可以包含多個行級盒子
不在行級元素里面的文字,會生成匿名行級盒。比如:
SomeText
塊級盒子中不能同時包含塊級和行級盒子。遇到這種情況時,會生成匿名塊級盒來包含行級盒。比如:
行級盒子內(nèi)的子盒子的生成標題
2016-12-12
行級盒子內(nèi)可以包含行級盒子
行級盒子包含一個塊級盒子時,會被塊級盒子拆成兩個行級盒子,這兩個盒子又分別被匿名塊級盒包含
定位模式常規(guī)流(Normal Flow)
浮動(Float)
絕對定位(Absolute Positioning)
常規(guī)流除根元素、浮動元素和絕對定位元素外,其它元素都在常規(guī)流之內(nèi)(in-flow)
而根元素、 浮動和絕對定位的元素會脫離常規(guī)流(out of flow)
常規(guī)流中的盒子,屬于塊級格式化上下文或行級格式化上下文
盒子在容器(包含塊)內(nèi)從上到下一個接一個地放置
兩個兄弟盒之間的豎直距離由 margin 屬性決定
同一個 BFC 內(nèi)垂直 margin 會合并
盒子的左外邊緣挨著容器(包含塊)的左邊
塊級格式化上下文(BFC) 的特性:
BFC 內(nèi)的浮動不會影響到BFC外部的元素
BFC 的高度會包含其內(nèi)的浮動元素
BFC 不會和浮動元素重疊
BFC 可以通過 overflow:hidden 等方法創(chuàng)建
BFC 的創(chuàng)建:
浮動框
絕對定位框
非塊級的塊容器(inline-block)
overflow 屬性非 visible 的塊框
BFC的作用:
清除浮動
防止 margin 折疊
雙欄布局
盒子一個接一個水平放置
盒之間的水平 margin,border和padding 都有效
同一行的盒子所在的矩形區(qū)域叫行盒(Line box)
當(dāng)一個行盒放不下上下文內(nèi)所有盒子時,會被分到多個垂直堆疊的行盒里
行盒內(nèi)的水平分布由"text-align"屬性決定
如果一個行級塊無法分割(單詞、inline-block),該元素會被作為一個整體決定分布在哪一個行盒
浮動(float)浮動元素從常規(guī)流中脫離,被漂浮在容器(包含塊)左邊或右邊
浮動盒會一直漂到其外邊緣挨到容器邊緣或另外的浮動盒
浮動元素不會影響其后面的流內(nèi)塊級盒
但是浮動元素后面的行級盒子會變短以避開浮動元素
positionstatic,非定位,默認值
relative,相對定位(相對自己)
absolute,絕對定位,相對非 static 祖先元素定位
fixed,相對于視口絕對定位
在常規(guī)流里面布局
相對于自己本應(yīng)該在的位置進行偏移
使用 top、left、bottom、right 設(shè)置偏移長度
流內(nèi)其它元素當(dāng)它沒有偏移一樣布局
脫離正常流
相對于最近的非 static 祖先的 padding box 定位
不會對流內(nèi)元素布局造成影響
可以有 margin,但不會折疊
相對于 Viewport 定位
不會隨頁面滾動發(fā)生位置變化
為定位元素指定其在 z 軸的上下等級
用一個整數(shù)表示,數(shù)值越大,越靠近用戶
初始值為 auto,可以為負數(shù)、0、正數(shù)
注意: z-index大的不一定在上面,要考慮到層疊上下文
關(guān)于層疊上下文
Root 元素
z-index 值不為 auto 的定位元素
設(shè)置了某些 CSS3 屬性的元素,比如 opacity、transform、animation 等
在每一個堆疊上下文中,從下到上:
形成該上下文的元素的 border 和 background
z-index 為負值的子堆疊上下文
常規(guī)流內(nèi)的塊級元素非浮動子元素
非定位的浮動元素
常規(guī)流內(nèi)非定位行級元素
z-index 為 0 的子元素或子堆疊上下文
z-index 為正數(shù)的子堆疊上下文
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/50685.html
摘要:前端與一枚大三學(xué)生,非常感謝前端星計劃,在這里學(xué)習(xí)了很多,非常幸運獲得的校招實習(xí),非常感謝面試我的王峰老師和盧岳文老師總的來說,這天的學(xué)習(xí),讓我堅定了走前端這條路。使用在模式下可以使元素水平居中,但在模式下卻會失效。 前端與HTML 一枚大三學(xué)生,非常感謝360前端星計劃,在這里學(xué)習(xí)了很多,非常幸運獲得360的校招實習(xí)offer~,非常感謝面試我的王峰老師和盧岳文老師!總的來說,這7天...
摘要:設(shè)計思想兼容已有內(nèi)容避免不必要的復(fù)雜性解決現(xiàn)實問題優(yōu)雅降級尊重事實標準變化新增語義化標簽去除純表示性的標簽拖拽離線語法標簽不區(qū)分大小寫推薦小寫空標簽可以不閉合屬性不必引號。遇到這種情況時,會生成匿名塊級盒來包含行級盒。 瀏覽器 瀏覽器 渲染引擎 JavaScript引擎 IE Trident JScript Edge EdgeHTML Chakra Safari We...
摘要:課程一繼承某些元素會自動繼承其父元素的計算值舉例上述代碼,標簽里的就會繼承父元素的,為。顯示繼承給設(shè)置顯示繼承根元素下所有元素除獨自設(shè)置如的都是。二初始值當(dāng)向上繼承到頂點還是沒找到值的話,就需要初始值了。 課程ppt 一、css繼承 1.1 某些元素會自動繼承其父元素的計算值 舉例: This is a test of inherit. p { color: #666; ...
摘要:深入課程鏈接一的版本規(guī)范在之前,把所有標準放在一起去管理,這樣推進起來版本升級比較難,后來在的版本中,將標準分成幾個模塊來管理。 深入CSS 課程ppt鏈接 一、CSS的版本(level) css Level 1 css Level 2(CSS2.2規(guī)范) css Level 3 Color Module Level 3 Selectors Level 3 Media Queri...
閱讀 2066·2021-10-12 10:12
閱讀 787·2021-09-24 09:47
閱讀 1187·2021-08-19 11:12
閱讀 3461·2019-08-29 13:06
閱讀 681·2019-08-26 11:43
閱讀 2563·2019-08-23 17:20
閱讀 1146·2019-08-23 16:52
閱讀 2593·2019-08-23 14:27