摘要:任務(wù)五一個(gè)最常見(jiàn)的移動(dòng)端頁(yè)面完成的事情學(xué)習(xí)張?chǎng)涡袷澜缦嚓P(guān)章節(jié)張?chǎng)涡裣盗辛私馔ㄅ浞x擇器性能優(yōu)化瀏覽器渲染原理學(xué)習(xí)各屬性及效果完成任務(wù)五學(xué)習(xí)編碼規(guī)范編碼規(guī)范并按照編碼規(guī)范優(yōu)化代碼完成深度思考計(jì)劃的事情找時(shí)間把前面任務(wù)的官方提供鏈接過(guò)一遍,查缺
任務(wù)五、 一個(gè)最常見(jiàn)的移動(dòng)端頁(yè)面 完成的事情
float學(xué)習(xí)
張?chǎng)涡瘛禖SS世界》相關(guān)章節(jié)
張?chǎng)涡?float系列
了解CSS通配符 & 選擇器性能優(yōu)化/瀏覽器渲染原理
background學(xué)習(xí)(各屬性及效果)
完成任務(wù)五
學(xué)習(xí)CSS編碼規(guī)范CSS編碼規(guī)范, 并按照編碼規(guī)范優(yōu)化代碼
完成深度思考
計(jì)劃的事情[ ] 找時(shí)間把前面任務(wù)的官方提供鏈接過(guò)一遍,查缺補(bǔ)漏
[ ] 深度思考:手機(jī)分辨率和網(wǎng)頁(yè)px的區(qū)別(TODO:周末補(bǔ)學(xué))
link1
link2
link3
遇到的問(wèn)題[ ] IE10下自我介紹一行右側(cè)無(wú)法自動(dòng)自動(dòng)換行(flex).
[ ] 不清楚圖片效果的實(shí)現(xiàn)方式,可能需要了解以下圖片用了什么處理再找編碼對(duì)策
收獲 一、任務(wù)五計(jì)劃及開(kāi)發(fā)明確效果:目標(biāo)是開(kāi)發(fā)一個(gè)屏幕自適應(yīng)的護(hù)工個(gè)人主頁(yè),最終效果如下:
開(kāi)發(fā)步驟
截取效果圖 & 通過(guò)PSD中獲取資源圖 & 獲取header底色#5fc0cd、價(jià)格顏色#e26163
界面組成分析:
header: header用display:fixed,左側(cè)后退+居中title,可用float或absolute解決. 為了實(shí)現(xiàn)灰色半透明層效果需加多一層div.transparent
main: 按照上節(jié)的學(xué)習(xí)為了防止移動(dòng)端fixed出Bug,main也用position:absolute然后再在main中使用一個(gè)div.content來(lái)承載內(nèi)容并支持滾動(dòng).
info: 定高,圖片做背景,左邊圖片浮動(dòng)并設(shè)置margin,右邊用overflow:hidden清除浮動(dòng)完成定位.
skill: title欄左border,condition欄使用flex左靠,接下來(lái)都用flex包含label+span來(lái)完成
footer: footer用display:fixed, 兩個(gè)btn高度不變自適應(yīng)屏幕寬度可用flex解決,為了保證伸縮3個(gè)margin不變故margin用rem寫(xiě).
效果對(duì)比:
對(duì)比優(yōu)化
學(xué)習(xí)背景圖知識(shí)并嘗試實(shí)現(xiàn)背景圖效果
完成background學(xué)習(xí)
學(xué)習(xí)了fliter屬性,不過(guò)只是將圖像模糊化并調(diào)整了亮度, 為此將原本的文字及圖片abosulte開(kāi)來(lái), 然后原本的背景也改成用div.bg來(lái)實(shí)現(xiàn)模糊&亮度的修改.
順便修繕了下location,使其支持多行地點(diǎn)文字布局不變形.
技能高度每行都減少
底部button高度提高,并取消縱向margin
footer加入padding
float學(xué)習(xí) 參考:張?chǎng)涡瘛禖SS世界》
學(xué)習(xí)總結(jié)
float本質(zhì): 本質(zhì)是為了實(shí)現(xiàn)文字環(huán)繞效果. 因此在界面布局方面只是簡(jiǎn)單堆疊的話(huà)會(huì)造成彈性缺失.
float特性
包裹性: "包裹" + "自適應(yīng)性"
包裹:float元素的子元素如果寬度更小,則float元素寬度將表現(xiàn)為其子元素寬度
自適應(yīng)性:float元素的子元素旁若有文字,則將自適應(yīng)為子元素+文字寬度(非連續(xù)長(zhǎng)串英文情況下,最大寬度為float元素寬度)
塊狀化并格式化上下文:若float屬性值不為none,則其display計(jì)算值為block或者table.
破壞文檔流(文字環(huán)繞圖片效果實(shí)現(xiàn)原理):
場(chǎng)景描述:場(chǎng)景代碼如下,img可添加float:left屬性觸發(fā)文字環(huán)繞效果,p元素為塊狀盒子,可能被分為多行,每行的文字都處于一個(gè)內(nèi)聯(lián)盒子中.
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
讓父元素高度塌陷:讓跟隨的內(nèi)容(文字)可以和浮動(dòng)元素(圖片)在一個(gè)水平線(xiàn)上
行框盒子和浮動(dòng)元素的不可重疊性:
行框盒子(每行內(nèi)聯(lián)元素所在的盒子)被float限制故和浮動(dòng)元素(圖片)完全不重疊,且永遠(yuǎn)無(wú)法通過(guò)CSS改變大小.
塊狀盒子(內(nèi)聯(lián)元素上級(jí)盒子)與浮動(dòng)元素(圖片)完全重疊,
抗浮動(dòng)
結(jié)合任務(wù)四的header布局實(shí)現(xiàn)實(shí)例,有三種方案可以先讓兩個(gè)標(biāo)簽左右float,再對(duì)設(shè)置text-align:center; & 設(shè)置抗浮動(dòng):
margin法: 設(shè)置
clear法: 設(shè)置
overflow法: 設(shè)置
CSS通配符
觀點(diǎn):
查詢(xún)次數(shù)多&匹配效率低,會(huì)影響性能但是影響不大
影響可維護(hù)性 & 容易造成樣式?jīng)_突
所有需要設(shè)置的元素放在一起設(shè)置
建議使用css reset文件
necolas/normalize.css
jgthms/minireset.css
選擇器性能優(yōu)化 參考:網(wǎng)站CSS選擇器性能討論
樣式系統(tǒng)從最右的選擇符開(kāi)始向左進(jìn)行匹配規(guī)則,只要左邊還有選擇符就會(huì)繼續(xù)向左移動(dòng).
CSS選擇器效率排序(快到慢):
id選擇器(#myid)
類(lèi)選擇器(.myclassname)
標(biāo)簽選擇器(div,h1,p)
相鄰選擇器(h1+p)
子選擇器(ul < li)
后代選擇器(li a)
通配符選擇器(*)
屬性選擇器(a[rel=”external”])
偽類(lèi)選擇器(a:hover,li:nth-child)
優(yōu)化方法:
id選擇器最快,不要同時(shí)使用其他選擇器
類(lèi)選擇器盡量不合標(biāo)簽選擇器同時(shí)用
明確DOM結(jié)構(gòu)情況下優(yōu)先使用子選擇器
使用類(lèi)選擇器替代后代選擇器&子選擇器
盡量用繼承避免編寫(xiě)重復(fù)樣式
瀏覽器渲染原理
參考:
前端必讀:瀏覽器內(nèi)部工作原理
瀏覽器的渲染:過(guò)程與原理
A 網(wǎng)頁(yè)加載耗時(shí)分布:
DNS查詢(xún)
TCP連接
HTTP請(qǐng)求及響應(yīng)
服務(wù)器響應(yīng)
客戶(hù)端渲染(瀏覽器渲染)
B 渲染引擎
Geoko: Firefox(新版用Quantum)
Webkit: Safari & Chrome
Trident: IE
Edge: Edge
C 渲染流程:
1) 解析html構(gòu)建DOM樹(shù): 將標(biāo)簽轉(zhuǎn)化為內(nèi)容樹(shù)的DOM節(jié)點(diǎn)
2) 構(gòu)建render樹(shù):解析外部CSS及style標(biāo)志中的樣式信息,用以構(gòu)建render樹(shù). render樹(shù)由一些包含顏色和大小等屬性的矩形(??)組成,他們將被按照正確順序顯示到屏幕上.(CSS->CSSOM樹(shù),DOM+CSSOM樹(shù)->render樹(shù))
3) 布局render樹(shù):確定每個(gè)節(jié)點(diǎn)在屏幕上的確切坐標(biāo)
4) 繪制render樹(shù):遍歷render樹(shù),并使用UI后端層繪制每個(gè)節(jié)點(diǎn)
Tip:以上過(guò)程是逐步完成的,為了更好的用戶(hù)體驗(yàn)渲染引擎將會(huì)盡可能早地呈現(xiàn)內(nèi)容,也就是邊解析邊顯示.
渲染優(yōu)化知識(shí)點(diǎn)
關(guān)鍵渲染路徑:與當(dāng)前用戶(hù)操作有關(guān)的內(nèi)容,即用戶(hù)打開(kāi)網(wǎng)頁(yè)時(shí)首屏的顯示.具體到瀏覽器就是HTML&CSS&JS等資源的接收及處理后渲染出頁(yè)面.了解的目的就是為了優(yōu)化,優(yōu)化需要針對(duì)具體問(wèn)題,比如保證首屏內(nèi)容的最快顯示,可以推出PWA也就是漸進(jìn)式頁(yè)面渲染,由此可以再推到資源拆分、場(chǎng)景策略等.
CSS & JS加載:
Tip
CSS會(huì)阻塞渲染直至CSSOM構(gòu)建完畢
穿插在HTML中的script標(biāo)簽將阻塞HTML解析
JS的defer&async
對(duì)inline-script無(wú)效
defer用于延遲執(zhí)行引入并且不阻塞HTML解析.待整個(gè)文檔解析完畢后執(zhí)行defer的JS,最后觸發(fā)DOMContentLoaded事件.
async用于異步引入JS,如果已經(jīng)加載好就會(huì)開(kāi)始執(zhí)行,但是執(zhí)行順序不確定.
優(yōu)化方法:
優(yōu)先引入CSS,JS盡量少影響DOM的構(gòu)建
實(shí)際工程中經(jīng)常將JS放到文檔底部
前(非框架文件)
三、background學(xué)習(xí)定義:用于定義HTML元素的背景.
屬性:
background-color: 背景色
設(shè)定方式:
十六進(jìn)制: #ff0000
RGB: rgb(255, 0, 0)
顏色名稱(chēng): red
RGBA(???)
透明:transparent
inherit:繼承父元素背景色
background-image: 背景圖像(默認(rèn)平鋪重復(fù))
設(shè)定方式: url("[path]")
background-repeat:
水平平鋪:repeat-x
垂直平鋪: repeat-y
不平鋪:no-repeat
background-attachment:是否隨頁(yè)面滾動(dòng)
scroll: 跟隨頁(yè)面滾動(dòng)
fixed:跟隨進(jìn)度條位置
inherit: 繼承自父元素
background-position: 設(shè)置背景圖像的起始位置(Firefox和Opera需要先設(shè)置為fixed才能正常工作)
設(shè)定方式:
top|center|bottom(垂直) left|center|right(水平)
x%(水平) y%(垂直)
xpos(水平) ypos(垂直)
background-origin: 相對(duì)位置
值:padding-box|border-box|content-box
background-size: 背景圖片大小
值: length(寬度,高度)|percentage(寬度,高度)|cover(保持縱橫比并縮放成完全覆蓋背景定位區(qū)域的最大大小)|contain(保持縱橫比并縮放成合適背景定位區(qū)域的最大大小,即只滿(mǎn)足短的方向的等比例縮放)
三、深度思考1.css可以繪制哪些常見(jiàn)的特殊形狀?
參考:
奇妙的 CSS shapes(CSS圖形)
The Shapes of CSS
梯形、三角形、六邊形、圓形、心型、五角星...
SharpsDemo演示
2.如何理解vertical-align與line-height?
參考:
深入理解line-height與vertical-align
CSS深入理解vertical-align和line-height的基友關(guān)系
line-height: 行高.只影響inline元素及內(nèi)容.
可選值:
默認(rèn)值:normal(通常是font-size的1.2倍)
內(nèi)容區(qū):行內(nèi)文本,font-size決定了其高度;
行內(nèi)框:等于行間距(上半)+內(nèi)容區(qū)+行間距(下半),line-height決定了其高度;當(dāng)font-size>line-height時(shí)行內(nèi)框小于內(nèi)容區(qū);
行框:行內(nèi)的最高行內(nèi)框頂端到最低行內(nèi)款底端的距離,且各行框頂端挨著上一行框的底端;
框?qū)傩裕?/p>
padding、border、margin的top&bottom都不影響行高(行框高度), 其left&right都會(huì)應(yīng)用到元素的開(kāi)始結(jié)尾;
行內(nèi)元素的邊框邊界由font-size控制而非line-height;
行內(nèi)替換元素:根據(jù)元素的標(biāo)簽屬性來(lái)決定其顯示的具體內(nèi)容的元素,如 & . 其位于基線(xiàn)(vertical-align:bashline)上, 替換元素的基線(xiàn)是正常流中最后一個(gè)行框的基線(xiàn),除非元素內(nèi)容為空或者本身的overflow屬性值不是visible,這種情況下基線(xiàn)是marigin底邊緣.
vertical-align
可選值:
關(guān)鍵字值: baseline|sub|super|text-top|text-bottom|middle|top|bottom
長(zhǎng)度值:??em|??px
百分比值:?% (vertical-align的百分比相對(duì)于line-height進(jìn)行計(jì)算)
全局值:inherit|initial|unset
默認(rèn)值:baseline
關(guān)系
對(duì)于內(nèi)聯(lián)元素各種想得通或者想不通的行為表現(xiàn),基本上都可以用vertical-align和line-height來(lái)解釋?zhuān)约斑M(jìn)行行為矯正
vertical-align的百分比相對(duì)于line-height進(jìn)行計(jì)算
學(xué)習(xí)演示地址
3.請(qǐng)解釋一下CSS3的Flexbox(彈性盒布局模型)以及適用場(chǎng)景?
Flex布局用于簡(jiǎn)潔、完整、響應(yīng)式地實(shí)現(xiàn)各種頁(yè)面布局,給盒模型提供最大的靈活性. 采用Flex布局的元素稱(chēng)為Flex容器(flex container), 其所有子元素自動(dòng)成為容器成員即Flex項(xiàng)目(flex item). 容器默認(rèn)存在兩根軸,水平的主軸(main axis)和交叉軸(cross axis),Flex項(xiàng)目默認(rèn)沿主軸排列.
適用場(chǎng)景:
網(wǎng)格布局:設(shè)置flex
百分比布局:先設(shè)置flex:1, 再設(shè)置flex: 0 0 %
圣杯布局: 該填滿(mǎn)的用flex:1
輸入框布局:一側(cè)定長(zhǎng),其他flex:1填滿(mǎn)
懸掛式布局:一側(cè)定長(zhǎng),其他flex:1填滿(mǎn)
固定底欄:方向column,定高
流式布局: 參考任務(wù)一
4.title與h1、b與strong、i與em、img的alt與title、src與href有什么區(qū)別 參考:Web品質(zhì)
& : 為無(wú)意義的加粗,現(xiàn)在的Web標(biāo)準(zhǔn)不建議直接元素設(shè)計(jì)具體表現(xiàn)形式,故建議少用; 表更強(qiáng)的強(qiáng)調(diào),可以用CSS替換其加粗樣式,比較符合Web標(biāo)準(zhǔn);
& : 為無(wú)意義的斜體,現(xiàn)在的Web標(biāo)準(zhǔn)不建議直接元素設(shè)計(jì)具體表現(xiàn)形式,故建議少用; 表示一般強(qiáng)調(diào),可以用CSS替換其斜體樣式,比較符合Web標(biāo)準(zhǔn);
的alt & title屬性、src & href屬性:
alt:無(wú)法顯示圖片時(shí)起到文本替代的作用, 瀏覽器在特殊瀏覽器上有輔助作用;
title: 鼠標(biāo)劃過(guò)時(shí)的文本提示;
src:資源對(duì)應(yīng)路徑,將資源加載到文檔中;
href:指向的鏈接,不加載資源;
5.如何使用IconFont? 參考:IconFont使用
unicode引用:
使用:拷貝字體到項(xiàng)目然后加入font-face, css定義iconfont樣式, 選擇圖標(biāo)及字體編碼應(yīng)用于頁(yè)面;
特點(diǎn):兼容性好(IE6+);支持按字體方式動(dòng)態(tài)調(diào)整圖標(biāo)大小顏色;不支持多色;
font-class引用:
使用:拷貝fontclass代碼,直接選圖標(biāo)并在應(yīng)用上應(yīng)用類(lèi)名;
解決問(wèn)題:解決unicode書(shū)寫(xiě)不直觀 & 語(yǔ)意不明確的問(wèn)題;
特點(diǎn):兼容性良好(IE8+);語(yǔ)意明確;改圖標(biāo)只需要修改class的unicode引用;不支持多色;
symbol引用:
使用:拷貝symbol代碼,引入CSS代碼,直接選圖標(biāo)并在應(yīng)用上應(yīng)用類(lèi)名;
特點(diǎn):支持多色圖標(biāo);可以像字體用font-size & color調(diào)整樣式;兼容性較差(IE9+);svg渲染性能一般,遜于png.
解決問(wèn)題:?jiǎn)紊拗茊?wèn)題.
6.HTML中dl、ul、ol用哪個(gè)比較好?
dl: 定義列表,包含自定義列表項(xiàng)
ul: 無(wú)序列表,默認(rèn)用小圓點(diǎn)進(jìn)行標(biāo)記.適用于無(wú)序列表清單.但是由于自帶的效果在不同瀏覽器效果不同,故一般會(huì)去掉標(biāo)記.
ol: 有序列表,默認(rèn)用數(shù)字進(jìn)行標(biāo)記.適用于有序列表清單.
效果Github
線(xiàn)上展示
系列文章【CSS練習(xí)】IT修真院--練習(xí)1-九宮格
【CSS練習(xí)】IT修真院--練習(xí)2-開(kāi)發(fā)工具
【CSS練習(xí)】IT修真院--練習(xí)3-簡(jiǎn)單界面
【CSS練習(xí)】IT修真院--練習(xí)4-移動(dòng)端界面
【CSS練習(xí)】IT修真院--練習(xí)5-護(hù)工個(gè)人界面
【CSS練習(xí)】IT修真院--練習(xí)6-護(hù)工列表界面
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/113487.html
摘要:任務(wù)六護(hù)工列表頁(yè)完成的事情規(guī)劃任務(wù)六完成基本界面編寫(xiě)計(jì)劃的事情限制最小寬度使用雪碧圖替換當(dāng)前的多張圖片引入完成模擬下拉框編寫(xiě)屏幕過(guò)窄時(shí),列表項(xiàng)左邊文字被截?cái)喑霈F(xiàn)省略號(hào)復(fù)習(xí)之前的代碼規(guī)范,優(yōu)化代碼查看驗(yàn)收標(biāo)準(zhǔn)查看深度思考遇到的問(wèn)題收獲頁(yè)面原生 任務(wù)六、 護(hù)工列表頁(yè) 完成的事情 1.規(guī)劃任務(wù)六2.完成基本界面編寫(xiě) 計(jì)劃的事情 [x] 限制最小寬度 [x] 使用雪碧圖替換當(dāng)前的多張圖片引入...
摘要:任務(wù)三一個(gè)最簡(jiǎn)單的移動(dòng)端頁(yè)面今天完成的事情運(yùn)用布局知識(shí)跟隨設(shè)計(jì)圖進(jìn)行布局,完成簡(jiǎn)單并繼續(xù)學(xué)習(xí)優(yōu)化讓布局更好適應(yīng)屏幕變化使用了盒模型及百分比了解區(qū)別在中應(yīng)用圖片處理學(xué)習(xí)明天計(jì)劃的事情深度思考手機(jī)分辨率和網(wǎng)頁(yè)的區(qū)別周末補(bǔ)學(xué)任務(wù)四計(jì)劃及簡(jiǎn)單編寫(xiě)遇 任務(wù)三、 一個(gè)最簡(jiǎn)單的移動(dòng)端頁(yè)面 今天完成的事情 運(yùn)用布局知識(shí)跟隨設(shè)計(jì)圖進(jìn)行布局,完成簡(jiǎn)單Demo并繼續(xù)學(xué)習(xí)優(yōu)化. 讓布局更好適應(yīng)屏幕變化(使用...
摘要:任務(wù)二認(rèn)識(shí)開(kāi)發(fā)工具今天完成的事情編輯器對(duì)比版本管理工具學(xué)習(xí)基本操作代碼托管平臺(tái)對(duì)比服務(wù)器使用學(xué)習(xí)明天計(jì)劃的事情分析任務(wù)三完成規(guī)劃及部分開(kāi)發(fā)遇到的問(wèn)題暫無(wú)收獲編輯器對(duì)比參考三者比較,各有哪些優(yōu)勢(shì)和弱勢(shì)一款成熟的,對(duì)網(wǎng)站開(kāi)發(fā)者友好,插件齊全功能 任務(wù)二. 認(rèn)識(shí)開(kāi)發(fā)工具 今天完成的事情 IDE & 編輯器對(duì)比 版本管理工具學(xué)習(xí) Git基本操作 代碼托管平臺(tái)對(duì)比 服務(wù)器使用學(xué)習(xí) 明天計(jì)劃的...
摘要:用于顯示日志信息及輸入一些命令請(qǐng)求監(jiān)聽(tīng)。可獲得請(qǐng)求列表,點(diǎn)開(kāi)某一項(xiàng)將看到數(shù)據(jù)頭部數(shù)據(jù)。包含本次請(qǐng)求的請(qǐng)求方法狀態(tài)碼請(qǐng)求服務(wù)器的地址其他一些設(shè)置響應(yīng)頭部包含用戶(hù)代理,幫服務(wù)器識(shí)別設(shè)備用預(yù)覽。 九宮格——用html+css制作一個(gè)網(wǎng)頁(yè) 一. 目標(biāo)效果: showImg(https://segmentfault.com/img/bVbbxBA?w=872&h=644); 二. 效果描述 圓角...
摘要:任務(wù)四一個(gè)最常見(jiàn)的移動(dòng)端頁(yè)面完成的事情完成簡(jiǎn)單布局,然后填充界面與效果圖對(duì)比優(yōu)化完成驗(yàn)收要求擴(kuò)展性頂欄固定進(jìn)行樣式兼容性研究完成任務(wù)四深度思考跟隨深度思考師兄建議進(jìn)行修改輸入欄左側(cè)換用輸入限制電話(huà)位,密碼位根據(jù)結(jié)構(gòu)的語(yǔ)義化修改嘗試下再加一 任務(wù)四、 一個(gè)最常見(jiàn)的移動(dòng)端頁(yè)面 完成的事情 完成簡(jiǎn)單布局,然后填充界面 與效果圖對(duì)比優(yōu)化 完成驗(yàn)收要求:header擴(kuò)展性 & 頂欄固定 進(jìn)行p...
閱讀 1520·2021-08-09 13:47
閱讀 2777·2019-08-30 15:55
閱讀 3504·2019-08-29 15:42
閱讀 1125·2019-08-29 13:45
閱讀 3019·2019-08-29 12:33
閱讀 1752·2019-08-26 11:58
閱讀 995·2019-08-26 10:19
閱讀 2419·2019-08-23 18:00