在學習CSS的過程當中作的一些記錄,用於將來的快速回憶。
<meta charset="utf-8">
指定字符集meta name="viewport" content="..."
定義視圖大小與設備屏幕大小的比例,用戶是否可縮放<base href="/">
指定基準路徑<p></p>
a >div
元素例外)doctype的意義是什麼?css
HTML XHTML HTML5之間的關係?html
HTML5有什麼變化?css3
em與i有什麼區別?git
語義化的意義是什麼?github
哪些元素能夠自閉合?面試
HTML和DOM的關係?跨域
form的做用有哪些?瀏覽器
瀏覽器在解析選擇器時是從右到左的。
a{}
::before()
.link{}
[type=radio]{}
:hover{}
(僞元素是真實存在的,而僞類是一種狀態)#id{}
[type=checkbox] + label{}
not(.link){}
*{}
權重計算,相加時不進位性能優化
!important
優先級最高字體服務器
網絡字體、自定義字體
/* 自定義字體 */ /* url可以使用在線url,若跨域,須要對方服務器容許跨域(對方服務器展現CORS頭) */ @font-face { font-family: "JC"; src: url("./define.ttf") } .custom-font { font-family: JC }
行高
vertical-align
來修改對齊方式或基線位置圖片空白
vertical-align: bottom
;②display: block
;背景
rgb
或rgba
(帶透明度)或hsl
(色相)或hsla
(帶透明度的色相)指定漸變色背景:
線性漸變
linear-gradient(to right, red, green)
,to right
指明從左到右,也可以使角度30deg
linear-gradient(30deg, red 0, green 10%, yellow 50%, green 100%)
多背景疊加
linear-gradient(135deg, transparent 0, transparent 45.5%, green 45.5%, green 55.5%, transparent 55.5%, transparent 100%)
linear-gradient(45deg, transparent 0, transparent 45.5%, red 45.5%, red 55.5%, transparent 55.5%, transparent 100%)
background-size: 30px 30px
背景圖片和屬性(雪碧圖)
backgorund-repeat
能夠控制圖片是否平鋪以及在哪一個方向循環平鋪background-position
來指定圖片的位置,如background:center center
爲居中,也但是使用像素background-size
來控制圖片大小雪碧圖(性能優化的一種)製做
background
來引入圖片,使用width
/height
來擬合圖標的大小,使用backgroung-position
來在雪碧圖中找到圖標,使用background-size
來縮放圖標大小base64和性能優化
多分辨率適配
background-size
將其縮小,以解決高分屏模糊的問題邊框
border-img: url(./border.png) 30 round
邊框銜接(CSS實現三角形)
.div-class { width: 0px; height: 200px; border-bottom: 30px solid red; border-left: 30px solid transpatrnt; border-right: 30px solid transpatrnt; /* 添加圓角能夠將三角形變成扇形 */ }
滾動
滾動行爲與滾動條
文本折行
white-space:空白處是否斷行
/* 這是一個示例,不對單詞換行、單箇中文字爲單位 */ .div-class { overflow-wrap: normal; word-break: normal; white-space: normal; }
裝飾性屬性
hack
面試題
CSS樣式(選擇器)的優先級?
雪碧圖的做用
自定義字體的使用場景
base64的使用
僞元素與僞類的區別
如何美化checkbox
<!-- 常規表格佈局 --> <table> <tr> <td class="left">左</td> <td class="right">右</td> </tr> </table> <!-- 模擬表格佈局 --> <div class="table"> <div class="table-row"> <div class="left table-cell">左</div> <div class="right table-cell">右</div> </div> </div>
.table { display: table; width: 900px; height: 100px; } .table-row { display: table-row; } .table-cell { display: table-cell; vertical-align: center; }
盒子模型
display/position
display
肯定元素的顯示類型:block/inline/inline-blockposition
肯定元素的位置:static(默認)/relative/absolute/fixed
static
默認值,文檔流relative
相對位置,是相對於元素自己原來的位置,該值不會改變元素原來佔用的空間absolute
絕對位置,脫離文檔流,不影響文檔流的其餘元素,相對於最近的relative
或absolute
元素fixed
,脫離文檔流,不影響文檔流中的其餘元素,相對於屏幕可視區域來固定層級
relative
,absolute
,fixed
這三種能夠設置z-index
)基本知識
flex:1
與width:20px
兩種方式)特性
對自身的影響
對兄弟元素的影響
對父級元素的影響
float三欄佈局示例
.left { float: left; width: 200px; } .right { float: right; width: 200px; } .middle { margin-left: 200px; margin-right: 200px; } /* 注意,這裏應該將left與right元素放在上面,而後再放middle */
特性
處理inline-block的間隙問題(就比如文字之間有間隙,inline-block一樣有這個問題)
font-size
設置爲0;子元素中再將font-size
設置回來(推薦使用這種方式)間隙是由於兩個div尾部與頭部之間的空間形成的,解決方式:
<!-- 解決方式① --> <div> <div>left</div><div> right</div> </div> <!-- 解決方式② --> <div> <div>left</div><!-- --><div>right</div> </div>
主要方法
head
中添加viewport
的內容爲width=device-width
實現兩欄/三欄佈局的方法
position:absolute/fixed有什麼區別?
display:inline-block的間隙
如何清除浮動?
如何適配移動端的頁面?
圖片來源:慕課網
inset
表示外陰影做用
text-shadow:Apx Bpx Cpx #000
border-radius: A B C D / E F G H
:ABCD爲水平方向的半徑,EFGH爲垂直方向的半徑扇形示例
.container { width: 100px; height: 100px; background: red; border-top-left-radius: 100px; border-top-right-radius: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
border-top-left-radius: 10px 20px
雪碧圖動圖
:hover
在鼠標飄過期改變background-position
的值並添加過分background-repeat
指定是否循環background-size
cover
保持圖片長寬比不變,覆蓋整個容器,多餘的部分不顯示contain
保持圖片長寬比不變,顯示整個圖片,容易多餘的部分變爲空白對容器進行裁剪(常見幾個圖形 / 自定義路徑)
clip-path: inset(100px, 50px)
裁剪成長100px寬50px的矩形 =clip-path
不改變容器內的定位如何用一個div畫XXX?
如何產生不佔空間的邊框
如何實現圓形元素
如何實現IOS圖標的圓角
如何實現半圓、扇形等圖形
如何實現背景圖居中顯示 / 不重複 / 改變大小
如何實現3D效果
原理
做用
屬性
具體屬性名
animation-direction
定義方向animation-iteration-count
定義動畫循環次數animation-play-state
設置動畫狀態(可結合JS來實現更加酷炫的應用)animation-fill-mode
設置動畫完成後的狀態定義動畫
/* from/to可使用百分數 */ @keyframes animation-run{ from{ width:100px; } to{ width:800px } }
animation- timing-function:steps(1)
CSS動畫的語法
CSS動畫的實現方式有幾種
過渡動畫與關鍵幀動畫的區別
CSS動畫的性能
特色
功能
後綴名爲.scss
。
.outter { background: red; .inner{ background: green; } }
變量是能夠計算的。
/* 變量定義 */ $fontSize: 20px; $bgColor: red; /* 變量使用 */ .content { background: $bgColor; font-size: $fontsize; }
相似於JS的方法。
$fontSize: 20px; /* Mixin 定義 */ @mixin block($fontSize) { font-size: $fontSize; color: red; } /* Mixin 使用 */ .content { @include block($fontSize); .inner { @include block($fontSize + 5px); } }
複用代碼塊
$fontSize: 20px; @mixin block($fontSize) { font-size: $fontSize; color: red; } /* extend 定義 */ .block { font-size: $fontSize; color: red; } /* extend 使用 */ .content { @extend .block; background: green; }
循環
/* 示例生成網格系統 */ /* 循環 定義(利用mixin遞歸) */ @mixin gen-col($n) { @if $n > 0 { @include gen-col($n - 1); .col-#{$n} { width: 1000px / 12 * $n; } } } /* 循環 使用 */ @include gen-col(12); /* 循環 定義(利用for)並使用 */ @for $i from 1 through 12 { .col-#{$i} { width: 1000px / 12 * $i; } }
/* Sass中使用 @import 引入文件 */ /* 不一樣文件的變量、mixin等在被import到同一個文件後能夠跨文件調用 */ @import "./a-scss" @import "./b-scss"
預處理器的做用
預處理器的能力
預處理器的優缺點