摘要:或表示紅色,表示綠色,表示藍(lán)色,也可取其他數(shù)值來指定顏色。針對多字節(jié)文字,中文句子也是單詞允許在單詞內(nèi)換行。
一、HTML基礎(chǔ) html常見元素和理解
html常見元素分類
head區(qū)元素:(不會在頁面上留下直接內(nèi)容)
meta
title
style
link
script
base
body區(qū):
div/selection/article/aside/header/footer
p
span/em/strong
table/thead/tbody/tr/td
ul/ol/li/dl/dt/dd
a
form/input/select/textarea/button
// 指定一個(gè)基礎(chǔ)路徑,所有的路徑都是以這個(gè)為基準(zhǔn) //viewport表示視圖的大小 //適配移動端第一步,viewport
HTML重要屬性
a[href,target]
target:打開窗口。也可以設(shè)置框架中在哪個(gè)框架打開
img[src,alt]
alt:圖片不可用時(shí)候,文字顯示出來
table td[colspan,rowspan]
form[target,method,enctype](有表單的地方都建議放上form)
target:表單提交到哪兒
enctype:指定編碼,如果上傳文件指定要用form-data
input[type,value]
button[type]
select>option[value]
label[for]
label與input進(jìn)行關(guān)聯(lián)
如何理解html
HTML“文檔”
描述文檔的結(jié)構(gòu)
有區(qū)塊和大綱
"大綱"作用
更好的讓機(jī)器、搜索引擎、蜘蛛很好的理解結(jié)構(gòu)
html的語義化
html版本
HTML4/4.01(SGML)瀏覽器做很多的容錯(cuò)和修正工作
XHTML(XML)要求非常嚴(yán)格,嚴(yán)格要求編碼習(xí)慣
HTML5(基于HTML4)
html5新增內(nèi)容
新增區(qū)塊標(biāo)簽
section
article
nav
aside //一般不出現(xiàn)在大綱中,表示不重要的廣告類
表單增強(qiáng)
日期、時(shí)間、搜索
表單驗(yàn)證
placehold自動聚焦
html5新增語意
header/footer頭尾
section/article區(qū)域
nav導(dǎo)航
aside不重要內(nèi)容
em/strong強(qiáng)調(diào)
i //icon
元素分類按默認(rèn)樣式分
塊級block
行內(nèi)inline
inline-block
HTML分類法
嵌套關(guān)系默認(rèn)樣式和reset
塊級元素可以包含行內(nèi)元素
塊級元素不一定能包含塊級元素(p標(biāo)簽不能包含div)
行內(nèi)元素一般不能包含塊級元素(a>div 合法,html5中a是transparent元素)
HTML標(biāo)簽在瀏覽器中都有默認(rèn)的樣式,不同的瀏覽器的默認(rèn)樣式之間存在差別。例如ul默認(rèn)帶有縮進(jìn)樣式,在IE下,它的縮進(jìn)是由margin實(shí)現(xiàn)的,而在Firefox下卻是由padding實(shí)現(xiàn)的。開發(fā)時(shí)瀏覽器的默認(rèn)樣式可能會給我們帶來多瀏覽器兼容性問題,影響開發(fā)效率?,F(xiàn)在很流行的解決方式是一開始就將瀏覽器的默認(rèn)樣式全部覆蓋掉,這就是css reset。
Normalize.css
面試題 doctype的意義是什么?讓瀏覽器以標(biāo)準(zhǔn)模式渲染
讓瀏覽器知道元素的合法性
HTML、XHTML、HTML5的關(guān)系HTML屬于SGML
XHTML屬于XML,是HTML進(jìn)行XML嚴(yán)格化的結(jié)果
HTML5不屬于SGML或者XML,比XHTML寬松
HTML5有什么變化新的語義化標(biāo)簽
表單增強(qiáng)(新的元素,表單驗(yàn)證)
新的API(離線、音視頻、圖形、實(shí)時(shí)通信、本地存儲、設(shè)備能力)
Canvas+WEBGL等技術(shù),實(shí)現(xiàn)無插件的動畫以及圖像、圖形處理能力;
本地存儲,可實(shí)現(xiàn)offline應(yīng)用;
websocket,一改http的純pull模型,實(shí)現(xiàn)數(shù)據(jù)推送的夢想;
MathML,SVG等,支持更加豐富的render;
em和i有什么區(qū)別em是語義化的標(biāo)簽,表強(qiáng)調(diào)
i是純樣式的標(biāo)簽,表斜體
HTML5中i不推薦使用,一般用作圖標(biāo)
語義化的意義是什么開發(fā)者容易理解
機(jī)器容易理解結(jié)構(gòu)(搜索、讀屏軟件)
有助于SEO
semantic microdata
哪些元素可以自閉合表單元素input
圖片img
br hr
meta link
HTML和DOM的關(guān)系HTML是‘死’的(字符串,沒有結(jié)構(gòu))
DOM由HTML解析而來,是活的(是樹,有結(jié)構(gòu))
JS可以維護(hù)DOM
property和attribute的區(qū)別attribute是‘死’的(屬性,寫在HTML中)
property是‘活’的(特性,DOM對象中)
attribute不會影響property,property也不會影響attribute
form作用直接提交表單
使用submit/reset按鈕
便于瀏覽器保存表單
第三方庫可以整體提取值
第三方庫可以進(jìn)行表單驗(yàn)證
二、css基礎(chǔ)cascading style sheet層疊樣式表選擇器
選擇器簡介
用于匹配HTML元素
分類和權(quán)重
解析方式和性能
瀏覽器的解析方式是從右往左反著,然后再往前驗(yàn)證,主要出于性能的考慮,更快速的匹配到指定元素(左邊范圍太廣了,比如 值得關(guān)注的選擇器 元素選擇器???????????? a{}
偽元素選擇器???????? ::before{} //真實(shí)存在的容器 類選擇器???????????????? .link{}
屬性選擇器???????????? [type=radio]{}
偽類選擇器???????????? :hover{} //元素的狀態(tài)
ID選擇器?????????????? #id{}
組合選擇器???????????? [type=checkbox] + label{}
否定選擇器???????????? :not(.link){}
通用選擇器???????????? *{}
ID選擇器器???????????? +100 類 屬性 偽類器?????? +10 元素 偽元素器???????? +1 其它選擇器器????????? +0 #id .link a[href] 計(jì)算:
#id????????? +100
.link?????? +10
a?????????????? +1
[href]????? +0 結(jié)果:111 只要有id選擇器,就是最大,類選擇器再多也不會進(jìn)位,只能在自己位上 百位????十位????個(gè)位
!important優(yōu)先級最高 元素屬性優(yōu)先級高 //元素的屬性 > 外部樣式表 (style標(biāo)簽,外部樣式表)
相同權(quán)重后寫的生效
字體、字重、顏色、大小、行高
背景、邊框
滾動、換行
粗體、斜體、下劃線
serif(襯線字體)
sans-serif(非襯線字體)
monospace(等寬字體,例如代碼)
cursive(方正靜蕾體) fantasy 指定多個(gè)字體,如果找不到會按照順序使用其他字體,或者用同類字體 英文字體用Monaco,但是Monaco沒有中文字體,所以如果碰到中文會使用PingFangSC,一個(gè)字體一個(gè)字體的找 字體族不需要引號,因?yàn)椴皇蔷唧w的字體 指定在mac系統(tǒng)上用PingFang SC,windows上用Microsoft Yahei,把單個(gè)平臺獨(dú)有的字體寫到前面 自定義字體 網(wǎng)絡(luò)字體:注意跨域
先把只有一個(gè)平臺才有的寫到最前面 引用遠(yuǎn)程字體有問題的話,要注意跨域問題 阿里巴巴的圖標(biāo)庫,自選 iconfont.cn
行高由line-box決定
line-hight會撐起inline-box的高度,并不會影響本身布局的高度,但是會影響外部元素(line-box)
inline-box組成line-box,line-box高度是由inline-box決定 一般做垂直居中用line-height做就行了 默認(rèn)情況是按照base-line對齊,如果要居中對齊就用vertical-align:middle
底線、頂線和文字的頂和文字的底是不一樣的 原理:按照inline排版,如果按照inline排版的話,默認(rèn)按照基線排版(base-line) 基線和底線之間有距離的,如果12px字體那么縫隙可能就是3px
解決方案:按照底線對齊,vertical-align:bottom 或者display:block
HSL H:Hue(色調(diào))。0(或360)表示紅色,120表示綠色,240表示藍(lán)色,也可取其他數(shù)值來指定顏色。取值為:0 - 360 S:Saturation(飽和度)。取值為:0.0% - 100.0% L:Lightness(亮度)。取值為:0.0% - 100.0% RGB(A) 背景圖 background: webkit-linear-gradient( left, red, green); //老式寫法 background: linear-gradient(to right,red, green) ; background: linear-gradient (45deg, red, green); background: linear-gradient( 135deg, red 0, green 50%, blue 100%) background: linear-gradient ( 135deg, transparent 0, transparent 49.5%,green 50%) background實(shí)現(xiàn)各種漸變背景,可以通過疊加實(shí)現(xiàn),放射漸變
優(yōu)點(diǎn): 減少加載網(wǎng)頁圖片時(shí)對服務(wù)器的請求次數(shù) 提高頁面的加載速度
缺點(diǎn): 單個(gè)圖片大小,考慮網(wǎng)絡(luò)環(huán)境比較差的情況 內(nèi)存使用問題。大量空白你就會最終使用大量的無用的空白。 維護(hù)比較麻煩, 一種文本格式,顯示的是一串文本,而這串文本就是圖片本身
優(yōu)點(diǎn) 傳輸性能,減少http請求
缺點(diǎn):
增大了體積的開銷 圖片本身提交增大1/3 增大css體積 增加了解碼的開銷 適用:小圖標(biāo),例如:loading圖 用法:一般用在構(gòu)建中轉(zhuǎn),打包 線型 大小 顏色 原理:利用邊框銜接過程是斜切
visible:內(nèi)容直接顯示,撐出容器
hidden:超出容器部分隱藏
scroll:超出容器滾動,始終顯示滾動條
auto:超出容器滾動,當(dāng)內(nèi)容比較短不需要滾動條的時(shí)候不顯示滾動條 在mac系統(tǒng)上收系統(tǒng)設(shè)置影響 字重(粗體) font-weight
斜體font-style:itatic
下劃線text-decoration
指針cursor
Hack看起來不合法但生效的寫法 主要用于區(qū)分不同的瀏覽器,只在特定的瀏覽器生效
缺點(diǎn) 難理解 難維護(hù) 易失效
替代方案 特性檢測 針對性加class
使用注意 標(biāo)準(zhǔn)屬性寫到前面,hack寫到后面
作用 瀏覽器兼容性
典型案例 checkbox tabs
早期以table為主(簡單) 解析并不是流式的,以前可能等待時(shí)間長,現(xiàn)在已經(jīng)可以流式布局 后來以技巧性布局為主(難) 現(xiàn)在有flexbox/grid(偏簡單) 響應(yīng)式布局是(必備知識) table表格布局 float浮動+margin inline-block布局 flexbox布局 display:table display:table-row #### display/position block inline inline-block:有寬高有可以與其他元素排在同一行
static:靜態(tài)布局,按照文檔流布局
relative:相對于元素本身的偏移,relative偏移時(shí),元素所占據(jù)的文檔空間不會產(chǎn)生偏移
absolute:從文檔流脫離,相對于最近的父級absolute或者relative,如果父級不是的話,會一直網(wǎng)上到body
fixed:相對于屏幕/可視區(qū)域 定位于relatvie、absolute、fixed都可以設(shè)置z-index,數(shù)值越大附帶 彈性盒子 盒子本來就是并列的 指定寬度即可 ? 低版本IE不支持 出過三個(gè)版本,市面上各個(gè)瀏覽器都有對應(yīng)的解析,會導(dǎo)致一些兼容性問題 移動瀏覽器基本兼容,react Native和微信小程序可以直接用來布局 彈性布局用法詳解 元素“浮動” 脫離文檔流 但不脫離文本流 形成“塊”(BFC),inline元素也可以設(shè)置寬高(BFC背后的神奇原理) 位置盡量靠上 位置盡量靠左(右) float本意就是要做文字環(huán)繞、圖文混排等內(nèi)容的 上面貼著非float元素 旁邊貼float元素 不影響其他塊級元素位置 影響其他塊級元素內(nèi)部文本 從父級元素上“消失” 高度“塌陷”
讓父元素形成BFC來接管自己的高度 overflow:auto/hidden 當(dāng)里面的元素超出的時(shí)候自動滾動 用其他元素?fù)纹饋?/p>
兼容性好
兩欄布局:
float:left(左)
margin-left:左元素的寬度(右)
三欄布局:記住“盡量往左靠,盡量往右靠”
float:left(左)
float:right(右)
中間元素寫在最后,否則右邊的float元素不會對其 margin-left:左元素的寬度 margin-right:右元素的寬度 像文本一樣排block元素 沒有清除浮動等問題 需要處理間隙 間隙來源:html中的空白
處理辦法: 直接把兩塊html寫在一起; 兩塊中間加一個(gè)注釋;
父字體設(shè)置font-size:0;子塊重新加上字體font-sizi:14px;
在不同的設(shè)備上正常使用 一般主要處理屏幕大小的問題
主要方法: 隱藏+折行+自適應(yīng)空間 rem/viewport/media query 適配的第一部永遠(yuǎn)是加上viewport
viewport`可視區(qū)大小=屏幕大小`,有些設(shè)備默認(rèn)屏幕寬度980px
如果固定使用width,可以使不同頁面等比放大 也可以根據(jù)window.innerWidth動態(tài)計(jì)算頁面的寬度 float布局:兼容性好 表格布局 display:table
float+margin布局(清理浮動)
inline-block布局(處理間隙)
flexbox布局(兼容性不是特別好) 前者相對于最近的absolute/relative
后者相對屏幕(viewport) 如果要兼容老的設(shè)備,fixed兼容性不是很好 原因:空白字符 解決:消滅字符(標(biāo)簽寫到一起不要加空白,或者中間寫上注釋)或者消滅間距 清除浮動原理
讓盒子負(fù)責(zé)自己的布局 overflow:hidden(auto)
::after{clear:both}(也可以用多帶帶的元素) 首先適配viewport(頁面寬度和移動端適配)
rem/viewport/media query(大小方面的適配) 設(shè)計(jì)上:隱藏折行自適應(yīng) box-shadow text-shadow border-radius background clip-path 營造層次感(立體感) 充當(dāng)沒有寬度的邊框 特殊效果 一個(gè)div畫xx系列,可以用box-shadow,其他圖形可以通過點(diǎn),確定是可能有性能問題 立體感 印刷的品質(zhì)感 圓角矩形 圓形(圓角足夠大 border-radius:50%) 半圓/扇形 一些奇怪的角角 效果 紋理、圖案 漸變 雪碧圖動畫 背景圖尺寸適應(yīng)方案 對容器進(jìn)行裁剪 常見幾何圖形 自定義路徑 clip-path支持動畫且不改變?nèi)萜鞔笮?/b> clip-path: inset(100px 50px); clip-path: circle(50px at 100px 100px); clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%, 10% 10%, 40px 10px); 支持svg transform translate(translateZ 3D立體) scale skew(斜切) rotate 缺點(diǎn):性能不是很好 復(fù)雜場景下出現(xiàn)渲染不一樣問題 box-shadow outline border-radius:50% clip-path:(svg)
border-radius組合: 有無邊框 邊框粗細(xì) 圓角半徑 視覺暫留作用 畫面逐漸變化 愉悅感 引起注意 操作進(jìn)行反饋 掩飾(程序在后臺加載)
transition補(bǔ)間動畫(中間的過程瀏覽器腦補(bǔ)起來)
keyframe關(guān)鍵幀動畫(也是補(bǔ)間動畫,但是有很多關(guān)鍵幀) 逐幀動畫(特殊的逐幀動畫,無法使用補(bǔ)間動畫) 位置-平移(left/right/margin/transform) 方位-旋轉(zhuǎn)(transform) 大小-縮放(transform) 透明度(opacity) 其他-線性變換(transform) [深入了解transition動畫](https://www.cnblogs.com/xiaoh... transition: [動畫類型] [動畫時(shí)間] transition-delay //延遲多長時(shí)間執(zhí)行 transition-delay:width 1s,background 3s; //多個(gè)效果疊加 transition-timing-function timing(easing):定義動畫進(jìn)度和時(shí)間的關(guān)系 linear ease-in-out 自定義貝塞爾曲線 相當(dāng)于多個(gè)補(bǔ)間動畫 與元素狀態(tài)的變化無關(guān) 定義更加靈活 animation:run 1s linear;
animation-direction //reverse:反向
animation-fill-mode:forword //forwards,backwards決定動畫最終停留在哪里
animation-iteration-count //infinite:循環(huán)次數(shù)
animation-play-state:pause //js控制它的停和動 每幀都是關(guān)鍵幀,中間沒有補(bǔ)間過程 依然使用關(guān)鍵幀動畫 屬于關(guān)鍵幀動畫中的一種特殊情況 適用于無法補(bǔ)間計(jì)算的動畫 資源較大(適合時(shí)間短、資源小的動畫,一定要控制好大小的時(shí)長) 使用steps()
例如:圖片合成的動畫 指定時(shí)間和動畫進(jìn)度關(guān)系 中間不要加?xùn)|西,每個(gè)區(qū)間就只有一個(gè)狀態(tài),靜止
step是指定每個(gè)區(qū)間幀數(shù) transition keyframes(animation) 過度動畫需要有狀態(tài)變化,關(guān)鍵幀動畫不需要有狀態(tài)變化 關(guān)鍵幀動畫能控制更精細(xì) 使用關(guān)鍵幀動畫 去掉補(bǔ)間(steps) 性能不差 部分情況下優(yōu)于JS 但JS可以做到更好 部分高危屬性,box-shadow等 基于CSS的另一種語言 通過工具編譯成CSS 添加了很多CSS不具備的特性(變量) 能提升CSS文件的組織方式
less 基于node
優(yōu)點(diǎn):用JS寫的,編譯速度比較快,有個(gè)瀏覽器中可以直接使用的版本,不需要預(yù)先編譯,入門簡單 缺點(diǎn):在一些復(fù)雜特性上比較繁瑣
sass(scss)
ruby寫的比較慢,但是有解決方案,可以使用它的移植版本node-sass
嵌套 ???????????????? ??????????? 反映層級和約束 變量和計(jì)算?????????????????? 減少重復(fù)代碼
Extend和Mixin ???????? 代碼片段 循環(huán)?????????????????????????????? 適用于復(fù)雜有規(guī)律的樣式
import CSS ???????????????? 文件模塊化 sass的輸出有多重格式 使用這條命令時(shí)候,我們編譯的路徑,不能有中文名,否則會報(bào)錯(cuò),之后只要我們更改scss文件,保存后,就會自動修改編譯后的css文件 變量為了可以參與運(yùn)算,提供了各種運(yùn)算的函數(shù),包括顏色
less:@fontSize
sass:$fontSize
less的理念:盡量的接近c(diǎn)ss的語法
sass的理念:盡量避免產(chǎn)生混淆 CSS中并沒有提供復(fù)用CSS的方法,而是通過HTML復(fù)用 不加括號也可以,不加括號.block{}不會被編譯出來,加了會被編譯出來 區(qū)別在于需要顯示的聲明和調(diào)用,而且不能既做class又做mixin 場景:mixin清除浮動 減少重復(fù)代碼 不會復(fù)制重復(fù)代碼 選擇器提取出來,公共的樣式寫到一起 引用: 生成效果: 引用: 生成效果: 生成效果: mixin方式: sass是支持循環(huán)的,不需要遞歸 使得CSS變得更像一門變成語言 預(yù)處理器的變量跨文件 預(yù)處理器的模塊化,提供了按需使用他人代碼的可能 SASS-Compass Less-Lesshat/EST(國內(nèi)) 提供現(xiàn)成mixin
提供JS類庫,封裝常用功能 有兼容性問題的封裝成mixin統(tǒng)一處理
Less(Node.js)
Sass(Ruby,有Node版本) 幫助更好地組織CSS代碼 提高代碼復(fù)用率 提升可維護(hù)性 嵌套 反應(yīng)層級和約束 變量和計(jì)算 減少重復(fù)代碼
Extend和Mixin 代碼片段 循環(huán) 適用于復(fù)雜有規(guī)律的樣式
import CSS文件模塊化 優(yōu)點(diǎn):提高代碼復(fù)用率和可維護(hù)性 缺點(diǎn):需要引入編譯過程 有學(xué)習(xí)成本 前端工程化發(fā)展起來了,預(yù)處理器的熱度有所下降 一個(gè)CSS框架
twitter出品 提供通用基礎(chǔ)樣式 兼容IE10+(bootstrap3兼容到IE9) 使用flexbox布局 拋棄Nomalize.css
提供布局和reboot版本 基礎(chǔ)樣式 常用組件 JS插件 現(xiàn)在用sass編寫
用于組件交互
dropdown(下拉)
modal( 彈窗)
基于jQuery 依賴Popper.js
bootstrap.js
使用方式 基于data-屬性 基于JS-API
不同的分辨率下面又不同的分配 使用CSS同名類覆蓋 修改源碼重新構(gòu)建 ??????????????????????????? //修改徹底,但是需要了解整個(gè)框架 使用SCSS源文件,修改變量 ????????? //對結(jié)構(gòu)的要求更高 把bootstrap當(dāng)初一個(gè)預(yù)處理文件來使用,十一個(gè)更干凈的使用方式 優(yōu)點(diǎn):CSS代碼結(jié)構(gòu)合理,現(xiàn)成的樣式可以直接使用 缺點(diǎn):定制較為繁瑣,體積大 原理:通過media query設(shè)置不同分辨率的class
使用:為不同分辨率選擇不同的網(wǎng)格class
使用CSS同名覆蓋 修改源碼重新構(gòu)建 引用SCSS源文件,修改變量 組織 優(yōu)化 構(gòu)建 維護(hù)
PostCSS本身只有解析能力 各種神奇的特性全靠插件
目前至少有200多個(gè)插件
import模塊合并
autoprefixier自動加前綴
cssnano壓縮代碼
cssnext使用css新特性
precss 變量 條件 循環(huán)
MIxin Extend
import 屬性值引用
Webpack??????? postcss-loader
Gulp??????????????gulp-postcss
Grunt ?????????? grunt-postcss
Rollup????????? rollup-postcss
css-loader將css文件變成js文件
style-loader將變成js的css文件注入到頁面中 直接將class名全部換掉,確保組件樣式不沖突 var styles = require("component.css"); style.green ...
css-loader????????????????? 將 CSS變成JS
style-loader ?????????????將JS樣式插入head
ExtractTextPlugin???? 將CSS從JS中提取出來
css modules???????????????? 解決css命名沖突的問題(映射表)
less-loader ?????????????? sass-loader各類預(yù)處理器
postcss-loader ????????? PostCSS處理
less sass 等CSS預(yù)處理器
PostCSS插件(postCSS-import/precss等)
webpack處理CSS(css-loader+style-loader)
autoperfixer cssnext precss等,兼容性處理
import模塊合并
css語法檢查、兼容性檢查 壓縮文件 解決類名沖突的問題 使用PostCSS或者webpack等構(gòu)建工具進(jìn)行編譯 在HTML模板中使用編譯過程產(chǎn)生的類名
JS作為入口,管理資源有天然優(yōu)勢 將組件的結(jié)構(gòu)、樣式、行為封裝到一起,增強(qiáng)內(nèi)聚 可以做更多處理(webpack)
Angular.js(1.x) 沒有樣式集成能力
Angular(2+) typeScript 提供了樣式封裝能力 與組件深度集成 邏輯上是一個(gè)DOM
結(jié)構(gòu)上存在子集集合 shadowDOM介紹 限定了范圍的CSS
無法影響外部元素 外部樣式一般不影響內(nèi)部 可以通過/deep/或>>>穿透 兼容性還存在問題 方案一:隨機(jī)選擇器(不支持)
方案二:隨機(jī)屬性 div[abcdefg]{} 模擬Scoped CSS 方案一:隨機(jī)選擇器 CSS modules
方案二:隨機(jī)屬性 vue同時(shí)支持了這兩種方案 官方?jīng)]有集成方案 社區(qū)方案眾多 css modules (babel)react-css-modules styled components styled jsx 文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。 轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/53376.html 摘要:一些知識點(diǎn)有哪些方法方法前端從入門菜鳥到實(shí)踐老司機(jī)所需要的資料與指南合集前端掘金前端從入門菜鳥到實(shí)踐老司機(jī)所需要的資料與指南合集歸屬于筆者的前端入門與最佳實(shí)踐。
工欲善其事必先利其器-前端實(shí)習(xí)簡歷篇 - 掘金
有幸認(rèn)識很多在大廠工作的學(xué)長,在春招正式開始前為我提供很多內(nèi)部推薦的機(jī)會,非常感謝他們對我的幫助?,F(xiàn)在就要去北京了,對第一份正式的實(shí)習(xí)工作也充滿期待,也希望把自己遇到的一些問題和... 摘要:也就正式開始了我的前端之路。在這期間,我還購買并配置了自己的云服務(wù)器,自己的博客系統(tǒng),自己的還學(xué)會了的基本操作。不必說的是高級程序設(shè)計(jì)豆瓣鏈接這本書,也就是大家常說的高程,基本上每個(gè)合格的前端程序員都要熟讀很多很多次,每次讀都會有新發(fā)現(xiàn)。
原創(chuàng) 西安前端交流會: 卡農(nóng) ovenzeze@qq.com 本文章同步發(fā)表在wdShare西安前端交流會網(wǎng)站、我的個(gè)人博客以及segmentF... 摘要:也就正式開始了我的前端之路。在這期間,我還購買并配置了自己的云服務(wù)器,自己的博客系統(tǒng),自己的還學(xué)會了的基本操作。不必說的是高級程序設(shè)計(jì)豆瓣鏈接這本書,也就是大家常說的高程,基本上每個(gè)合格的前端程序員都要熟讀很多很多次,每次讀都會有新發(fā)現(xiàn)。
原創(chuàng) 西安前端交流會: 卡農(nóng) ovenzeze@qq.com 本文章同步發(fā)表在wdShare西安前端交流會網(wǎng)站、我的個(gè)人博客以及segmentF... 摘要:在標(biāo)簽中添加屬性,本質(zhì)上是跟在標(biāo)簽里面寫屬性時(shí)一樣的,所以屬性值最終都會編譯為字符串類型。這個(gè)節(jié)點(diǎn)包括很多,比如,以及一些方法等方法。一個(gè)對象有很多,該集合名字為,里面有其他以及,里面有很多。
一、變量類型和計(jì)算
JS中使用typeof能得到哪些類型
變量類型
值類型:變量本身就是含有賦予給它的數(shù)值的,它的變量本身及保存的數(shù)據(jù)都存儲在棧的內(nèi)存塊當(dāng)中
引用類型:引用類型當(dāng)然是分配到... 摘要:或表示紅色,表示綠色,表示藍(lán)色,也可取其他數(shù)值來指定顏色。針對多字節(jié)文字,中文句子也是單詞允許在單詞內(nèi)換行。
一、HTML基礎(chǔ)
html常見元素和理解
html常見元素分類
head區(qū)元素:(不會在頁面上留下直接內(nèi)容)
meta
title
style
link
script
base
body區(qū):
div/selection/article/aside/header/f... 閱讀 617·2023-04-25 18:37 閱讀 2780·2021-10-12 10:12 閱讀 8315·2021-09-22 15:07 閱讀 564·2019-08-30 15:55 閱讀 3174·2019-08-30 15:44 閱讀 2194·2019-08-30 15:44 閱讀 1625·2019-08-30 13:03 閱讀 1560·2019-08-30 12:55選擇器分類
選擇器權(quán)重
計(jì)算一個(gè)不進(jìn)位的數(shù)字
#id .link.active
#id +100
.link +10
.active +10
結(jié)果:120
不進(jìn)位
其他選擇器權(quán)重
非布局樣式
字體族
多字體fallback機(jī)制
font-family:Monaco PingFangSC
font-family:"Microsoft Yahei",serif
.chinese{
font-family:"PingFang SC","Microsoft Yahei",monospace
}
網(wǎng)絡(luò)字體、自定義字體
@font-face{
font-family:"IF";
src:url("./IndieFlower.ttf");
}
.custom-font{
font-family:IF;
}
iconfont
字體機(jī)制
行高的構(gòu)成
行高的相關(guān)現(xiàn)象
經(jīng)典圖片空隙問題
背景顏色
background:hsl(0,100%,50%)
漸變色背景
多背景疊加
background: linear-gradient( 135deg, transparent 0, transparent 49.5%,green 49.5%,green 50.5%,transparent 50.5%,transparent 100%),linear-gradient( 45deg, transparent 0, transparent 49.5%,green 49.5%,green 50.5%,transparent 50.5%,transparent 100%)
background-size:30px 30px
背景圖片和屬性(雪碧圖)
由所需圖片拼成的一張 GIF 圖片的尺寸會明顯小于所有圖片拼合前的大小。
單張的 GIF 只有相關(guān)的一個(gè)色表,而多帶帶分割的每一張 GIF
都有自己的一個(gè)色表,這就增加了總體的大小。
因此,多帶帶的一張 JPEG 或者 PNG sprite 在大小上非常可能比把一張圖分成多張得來的圖片總尺寸小
一個(gè)例子是來自于WHIT TV的網(wǎng)站。
注意這是一個(gè)1299×15,000像素的PNG圖片。
它也被壓縮的很好——實(shí)際下載大小只有大概26K —
但是瀏覽器并不會渲染壓縮后的圖片數(shù)據(jù)。當(dāng)這個(gè)圖片被下載并被解壓縮之后
base64和性能優(yōu)化
多分辨率適配
邊框
邊框的屬性
邊框背景圖
border-img("./border.img") 30 round;
//repeat:可能會導(dǎo)致不完整
//round:整數(shù)個(gè)拼,可能會有一些空間上的壓縮
邊框銜接(三角形)
width:0px;
border-bottom:30px solid red;
border-left:20px solid transparent;
border-right:20px solid transparent;
滾動
滾動行為和滾動條
overflow-wrap(word-wrap)通用換行控制
- 兼容性不太好,經(jīng)常還用word-wrap
- 是否保留單詞
- `normal` 只在允許的斷字點(diǎn)換行(瀏覽器保持默認(rèn)處理)。
- `break-word` 在長單詞或 URL 地址內(nèi)部進(jìn)行換行。
word-break
- 針對多字節(jié)文字,中文句子也是單詞
- `break-all` 允許在單詞內(nèi)換行。
- `keep-all` 只能在半角空格或連字符處換行,中文句子也不換行,兼容性還有點(diǎn)問題
white-space
- 空白處是否斷行
- 不換行的話 `white-space: nowrap`
overflow-wrap: break-word ;
word-break: keep-all;
white-space: normal ;
裝飾性屬性(粗體、斜體、下劃線)
CSS布局
常用布局方式
布局方式(表格)
盒模型
寬度和高度是只對內(nèi)容區(qū)生效
占據(jù)的空間是content + padding + border
display確定元素的顯示類型:
position確定元素的位置:
float
float對自身的影響:
對兄弟的影響
對父級元素的影響
解決“高度塌陷”的方案
container2::after{
content:"";
clear:"both"; //保證這個(gè)元素左右都是"干凈"的,沒有浮動元素
display:block;
height:0; //不占高度
visibility:hidden //不用顯示
}
//比較經(jīng)典的清除浮動布局的方式
float布局
float和margin實(shí)現(xiàn)兩欄布局和三欄布局
處理間隙
響應(yīng)式設(shè)計(jì)和布局
viewport:
media query:
@media(max-width:640px){
.left{
display:none;
}
}
rem:
html{
font-size:16px; // 默認(rèn)16個(gè)像素,為了好記一般設(shè)置10px,20px
}
@media (maxwidth: 375px){
html{
font-size :24px ;
}
}
@media (max-width: 320px){
html{
fonts ize: 20px;
}
}
@media (max-width: 640px){
intro{
margin: .3rem auto ;
display: block;
}
}
//精確性要求高的地方不要使用`rem`布局
主流網(wǎng)站使用的布局方式
浮動元素不會占據(jù)父元素空間,因此父元素不會管浮動元素,很可能超出父元素,對其他元素產(chǎn)生影響。作為父元素一定要清除浮動,保證對外沒有影響
效果屬性
百分比是寬高的百分比
多背景疊加(顏色、圖片、漸變)
.i{
width: 20px ;
height :20px ;
background: url(./background.png) no repeat;
background-size: 20px 40px;
transition: background-position .4s ;
}
.i:hover{
background-position: 0 20px;
}
clip-path: url(#clipPath);
background-size: cover;
transition:clip-path .4s;
變換transform(2D)
transform:translateX(100px) translateY(100px) rotate(25deg)
transform:rotate(25deg) translateX(100px) translateY(100px)
//有順序
box-shadow無限投影
::before
::after
如何產(chǎn)生不占空間的邊框
background-position
background-repeat
background-size(cover/contain)
如何平移放大一個(gè)元素
transform:translateX(100px)
transform:scale(2)
如何實(shí)現(xiàn)3D效果
perspective:500px; //指定透視的角度
transform-style:preserve-3d; //保留3D效果
transform:translate rotate;
css動畫
動畫的原理:
動畫的作用
動畫類型
)animation-timing-function:steps(1)
介紹
less和sass的區(qū)別
CSS預(yù)處理器
less
加上 &:并不是父子關(guān)系而是同級
CSS中并不允許這么嵌套寫,less和sass允許,結(jié)構(gòu)關(guān)系清晰body{
padding:0px;
margin: 0px;
}
.wrapper{
background: white;
.nav{
font-size: 12px;
}
&:hover{ //偽類
background: red
}
}
打包指令
lessc a.less > a.css
sass
npm install node-sass
node-sass a.scss>a.css --output-style expanded
less
.block(@fontSize){
font-size: @fontSize;
border: 1px solid #ccc;
border-radius: 4px;
}
.block(@fontsize+2px);
sass
@mixin block($fontSize) {
font-size: $fontSize;
border: 1px solid #ccc;
border-radius: 4px;
}
@include block(font-size+2px);
作用
less
寫法:
.block{
font-size: @fontSize;
border: 1px solid #ccc;
border-radius: 4px;
}
.nav:extend(.block){
font-size: @fontSize;
}
.content{
font-size: @fontSize + 2px;
&:extend(.block);
}
.block,
.wrapper .nav,
.wrapper .content {
font-size: 12px;
border: 1px solid #ccc;
border-radius: 4px;
}
sass
寫法:
.block {
font-size: $fontSize;
border: 1px solid #ccc;
border-radius: 4px;
}
@extend .block;
.block, .wrapper {
font-size: 12px;
border: 1px solid #ccc;
border-radius: 4px;
}
loop
less
less中實(shí)際上沒有循環(huán)的語法,通過遞歸來實(shí)現(xiàn)相應(yīng)的效果
引用方法:
.gen-col(@n) when (@n > 0 ){
.gen-col(@n - 1);
.col-@{n}{
width: 1000px/12*@n;
}
}
.gen-col(12);
.col-1 {
width: 83.33333333px;
}
.col-2 {
width: 166.66666667px;
}
.col-3 {
width: 250px;
}
.col-4 {
width: 333.33333333px;
}
.col-5 {
width: 416.66666667px;
}
.col-6 {
width: 500px;
}
.col-7 {
width: 583.33333333px;
}
.col-8 {
width: 666.66666667px;
}
.col-9 {
width: 750px;
}
.col-10 {
width: 833.33333333px;
}
.col-11 {
width: 916.66666667px;
}
.col-12 {
width: 1000px;
}
應(yīng)用場景:表格、特效等
sass
@mixin gen-col($n) {
@if $n>0 {
@include gen-col($n - 1);
.col-#{$n} {
width: 1000px/12*$n;
}
}
}
@include gen-col(12);
@for $i from 1 through 12 {
.col-#{$i} {
width: 1000/12*$i;
}
}
@import "logo";
@import "nav";
@import "content";
預(yù)處理器框架
介紹
Bootstrap4
功能
CSS工程化介紹
postCSS支持的構(gòu)建工具
取決于插件可以做什么
Angular各版本
shadowDOM
Scoped CSS
模擬Scoped CSS
內(nèi)置CSS解決方案
React的處理
相關(guān)文章
前端開發(fā)-從入門到Offer - 收藏集 - 掘金
一個(gè)普通本科在校生的前端學(xué)習(xí)之路
一個(gè)普通本科在校生的前端學(xué)習(xí)之路
前端面試之路二(javaScript基礎(chǔ)整理)
前端面試之路一(HTML+CSS面試整理)
發(fā)表評論
0條評論
hqman
男|高級講師
TA的文章
閱讀更多
tensorflow
SCADA系統(tǒng)資料整理-概論
主機(jī)號和主機(jī)數(shù)是什么-主機(jī)號怎么填寫?
三種方法實(shí)現(xiàn)CSS三欄布局
前端面試每日3+1——第119天
瀏覽器工作原理整理
CSS 居中完全指南
CSS:元素高度與寬度的討論 系列文章(四)