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