CSS3 備忘錄
這是 CSS 優(yōu)點(diǎn)的快速參考速查表,列出了選擇器語法、屬性、單位和其他有用的信息位。
開始
介紹
CSS 具有豐富的功能,不僅僅是簡(jiǎn)單的頁面布局。
外部 CSS
<link href="./path/to/stylesheet/style.css" rel="stylesheet" type="text/css">
內(nèi)聯(lián) CSS
<h2 style="text-align: center;">Centered text</h2><p style="color: blue; font-size: 18px;">Blue, 18-point text</p>
內(nèi)部 CSS
<style>
body {
background-color: linen;
}
</style>
添加類
<div class="classname"></div>
<div class="class1 ... classn"></div>
在一個(gè)元素上支持多個(gè)類。
!important
.post-title {
color: blue !important;}
覆蓋所有以前的樣式規(guī)則。
選擇器
h1 { }
#job-title { }
div.hero { }
div > p { }
請(qǐng)參閱:選擇器
文字顏色
color: #2a2aff;
color: green;
color: rgb(34, 12, 64, 0.6);
color: hsla(30 100% 50% / 0.6);
請(qǐng)參閱:顏色
背景
#背景
background-color: blue;
background-image: url("nyan-cat.gif");
background-image: url("../image.png");
請(qǐng)參閱:背景
字體
.page-title {
font-weight: bold;
font-size: 30px;
font-family: "Courier New";}
請(qǐng)參閱:字體
位置
.box {
position: relative;
top: 20px;
left: 20px;}
另見:位置
動(dòng)畫
animation: 300ms linear 0s infinite;animation: bounce 300ms linear infinite;
參見:動(dòng)畫
注釋
/* This is a single line comment *//* This is a
multi-line comment */
彈性布局
div {
display: flex;
justify-content: center;}div {
display: flex;
justify-content: flex-start;}
請(qǐng)參閱:彈性盒靈活技巧
網(wǎng)格布局
#container {
display: grid;
grid: repeat(2, 60px) / auto-flow 80px;}#container > div {
background-color: #8ca0ff;
width: 50px;
height: 50px;}
請(qǐng)參閱:網(wǎng)格布局
變量和計(jì)數(shù)器
counter-set: subsection;
counter-increment: subsection;
counter-reset: subsection 0;:root {
--bg-color: brown;}element {
background-color: var(--bg-color);}
請(qǐng)參閱:動(dòng)態(tài)內(nèi)容
CSS 選擇器
例子
組選擇器
h1, h2 {
color: red;}
鏈接選擇器
h3.section-heading {
color: blue;}
屬性選擇器
div[attribute="SomeValue"] {
background-color: red;}
第一個(gè)子選擇器
p:first-child {
font-weight: bold;}
沒有孩子選擇器
.box:empty {
background: lime;
height: 80px;
width: 80px;}
基本選擇器
* | 所有元素 |
div | 所有 div 標(biāo)簽 |
.classname | 具有類的所有元素 |
#idname | 帶 ID 的元素 |
div,p | 所有 div 和段落 |
#idname * | #idname 中的所有元素 |
另請(qǐng)參閱:類型/類/ID/通用選擇器
組合器
div.classname | 具有特定類名的 Div |
div#idname | 具有特定 ID 的 Div |
div p | div里面的段落 |
div > p | 所有 p 標(biāo)記 在 div 深一層 |
div + p | P 標(biāo)簽緊跟在 div 之后 |
div ~ p | 以 div 開頭的 P 標(biāo)簽 |
另請(qǐng)參閱:相鄰/兄弟/子選擇器
屬性選擇器
a[target] | 用一個(gè) target |
a[target="_blank"] | 在新標(biāo)簽頁中打開 |
a[href^="/index"] | 以 /index 開始 |
[class|="chair"] | 以 char 開始 |
[class*="chair"] | 包含 char |
[title~="chair"] | 包含 char 這個(gè)詞 |
a[href$=".doc"] | 以 .doc 結(jié)束 |
[type="button"] | 指定類型 |
另請(qǐng)參閱:屬性選擇器
用戶操作偽類
a:link | 正常狀態(tài)下的鏈接 |
a:active | 處于點(diǎn)擊狀態(tài)的鏈接 |
a:hover | 用鼠標(biāo)鏈接 |
a:visited | 訪問過的鏈接 |
偽類
p::after | 在 p 后添加內(nèi)容 |
p::before | 在 p 前添加內(nèi)容 |
p::first-letter | p 中的第一個(gè)字母 |
p::first-line | p 中的第一行 |
::selection | 由用戶選擇 |
::placeholder | 占位符屬性 |
:root | 文檔根元素 |
:target | 突出顯示活動(dòng)錨點(diǎn) |
div:empty | 沒有孩子的元素 |
p:lang(en) | P 帶有 en 語言屬性 |
:not(span) | 不是跨度的元素 |
輸入偽類
input:checked | 檢查輸入 |
input:disabled | 禁用輸入 |
input:enabled | 啟用輸入 |
input:focus | 輸入有焦點(diǎn) |
input:in-range | 范圍內(nèi)的值 |
input:out-of-range | 輸入值超出范圍 |
input:valid | 輸入有效值 |
input:invalid | 輸入值無效 |
input:optional | 沒有必需的屬性 |
input:required | 具有必需屬性的輸入 |
input:read-only | 帶有只讀屬性 |
input:read-write | 沒有只讀屬性 |
input:indeterminate | 具有不確定狀態(tài) |
結(jié)構(gòu)化偽類
p:first-child | 第一個(gè)孩子 |
p:last-child | 最后一個(gè)孩子 |
p:first-of-type | 首先是某種類型 |
p:last-of-type | 某種類型的最后 |
p:nth-child(2) | 其父母的第二個(gè)孩子 |
p:nth-child(3n42) | Nth-child (an + b) 公式 |
p:nth-last-child(2) | 后面的第二個(gè)孩子 |
p:nth-of-type(2) | 其父級(jí)的第二個(gè) p |
p:nth-last-of-type(2) | ...從后面 |
p:only-of-type | 其父級(jí)的唯一性 |
p:only-child | 其父母的唯一孩子 |
CSS 字體
特性
font-family: | <字體> |
font-size: | <尺寸> |
letter-spacing: | <尺寸> |
line-height: | <編號(hào)> |
font-weight: | <數(shù)字> / 粗體 / 正常 |
font-style: | 斜體/正常 |
text-decoration: | 下劃線/無 |
text-align: | 左/右 居中/對(duì)齊 |
text-transform: | 大寫/大寫/小寫 |
另見:字體
速記
風(fēng)格 | 權(quán)重 | 尺寸(必填) | 行高 | 類型(必填) | ||
---|---|---|---|---|---|---|
font: | italic | 400 | 14px | / | 1.5 | sans-serif |
例子
font-family: Arial, sans-serif;
font-size: 12pt;
letter-spacing: 0.02em;
例子
/* Hello */
text-transform: capitalize;/* HELLO */
text-transform: uppercase;/* hello */
text-transform: lowercase;
@font-face
@font-face {
font-family: 'Glegoo';
src: url('../Glegoo.woff');}
CSS 顏色
命名顏色
color: red;
color: orange;
color: tan;
color: rebeccapurple;
十六進(jìn)制顏色
color: #090;
color: #009900;
color: #090a;
color: #009900aa;
rgb() 顏色
color: rgb(34, 12, 64, 0.6);
color: rgba(34, 12, 64, 0.6);
color: rgb(34 12 64 / 0.6);
color: rgba(34 12 64 / 0.3);
color: rgb(34.0 12 64 / 60%);
color: rgba(34.6 12 64 / 30%);
HSL 顏色
color: hsl(30, 100%, 50%, 0.6);
color: hsla(30, 100%, 50%, 0.6);
color: hsl(30 100% 50% / 0.6);
color: hsla(30 100% 50% / 0.6);
color: hsl(30.0 100% 50% / 60%);
color: hsla(30.2 100% 50% / 60%);
其他
color: inherit;
color: initial;
color: unset;
color: transparent;color: currentcolor; /* keyword */
CSS 背景
特性
財(cái)產(chǎn) | 描述 |
---|---|
background: | (速記) |
background-color: | 請(qǐng)參閱:顏色 |
background-image: | 網(wǎng)址(...) |
background-position: | 左/中/右上 /中/下 |
background-size: | 蓋XY |
background-clip: | 邊框框 填充框 內(nèi)容框 |
background-repeat: | 不重復(fù) 重復(fù)-x 重復(fù)-y |
background-attachment: | 滾動(dòng)/固定/本地 |
速記
顏色 | 圖片 | 位置X | 位置Y | 尺寸 | 重復(fù) | 附加 | ||
---|---|---|---|---|---|---|---|---|
background: | #ff0 | url(a.jpg) | left | top | / | 100px auto | no-repeat | fixed; |
background: | #abc | url(b.png) | center | center | / | cover | repeat-x | local; |
例子
background: url(img_man.jpg) no-repeat center;background: url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat;background: rgb(2,0,36);
background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(13,232,230,1) 35%, rgba(0,212,255,1) 100%);
CSS 盒子模型
最大值/最小值
.column {
max-width: 200px;
width: 500px;}
另見:max-width /min-width /max-hight /min-hight
外邊距 margin / 內(nèi)邊距 padding
.block-one {
margin: 20px;
padding: 10px;}
另請(qǐng)參閱:margin /padding
盒子尺寸
.container {
box-sizing: border-box;
}
另請(qǐng)參閱:box-sizing
可見性
.invisible-elements {
visibility: hidden;}
另見:visibility
自適應(yīng)外邊距
div {
margin: auto;}
另見:margin
溢出
.small-block {
overflow: scroll;}
另見:overflow
CSS 動(dòng)畫
速記
名稱 | 執(zhí)行時(shí)間 | 定時(shí)功能 | 延遲 | 播放次數(shù) | 方向 | 填充模式 | 執(zhí)行狀態(tài) | |
---|---|---|---|---|---|---|---|---|
animation: | bounce | 300ms | linear | 100ms | infinite | alternate-reverse | both | reverse |
特性
animation: | (速記) |
animation-name: | <名稱> |
animation-duration: | <時(shí)間>毫秒 |
animation-timing-function: | 緩/線性/緩入/緩出/緩入 |
animation-delay: | <時(shí)間>毫秒 |
animation-iteration-count: | 無限 / <數(shù)量> |
animation-direction: | 正常/反向/交替/交替反向 |
animation-fill-mode: | 無/向前/向后/兩者/初始/繼承 |
animation-play-state: | 正常/反向/交替/交替反向 |
另見:Animation
例子
/* @keyframes duration | timing-function | delay |
iteration-count | direction | fill-mode | play-state | name */
animation: 3s ease-in 1s 2 reverse both paused slidein;/* @keyframes duration | timing-function | delay | name */
animation: 3s linear 1s slidein;/* @keyframes duration | name */
animation: 3s slidein;animation: 4s linear 0s infinite alternate move_eye;
animation: bounce 300ms linear 0s infinite normal;
animation: bounce 300ms linear infinite;
animation: bounce 300ms linear infinite alternate-reverse;
animation: bounce 300ms linear 2s infinite alternate-reverse forwards normal;
Javascript 事件
.one('webkitAnimationEnd oanimationend msAnimationEnd animationend')
CSS 彈性盒
簡(jiǎn)單的例子
.container {
display: flex;}
容器 Container
.container > div {
flex: 1 1 auto;}
.container{
display: flex;
display: inline-flex;
flex-direction: row; /* ltr - default */
flex-direction: row-reverse; /* rtl */
flex-direction: column; /* top-bottom */
flex-direction: column-reverse; /* bottom-top */
flex-wrap: nowrap; /* one-line */
flex-wrap: wrap; /* multi-line */
align-items: flex-start; /* vertical-align to top */
align-items: flex-end; /* vertical-align to bottom */
align-items: center; /* vertical-align to center */
align-items: stretch; /* same height on all (default) */
justify-content: flex-start; /* [xxx ] */
justify-content: center; /* [ xxx ] */
justify-content: flex-end; /* [ xxx] */
justify-content: space-between; /* [x x x] */
justify-content: space-around; /* [ x x x ] */
justify-content: space-evenly; /* [ x x x ] */
}
子類選擇器 Child
.container > div {
/* This: */
flex: 1 0 auto;/* Is equivalent to this: */
flex-grow: 1;
flex-shrink: 0;
flex-basis: auto;
order: 1;
align-self: flex-start; /* left */
margin-left: auto; /* right */
}
CSS Flexbox 技巧
垂直居中
.container {
display: flex;}.container > div {
width: 100px;
height: 100px;
margin: auto;}
垂直居中 (2)
.container {
display: flex;/* vertical */
align-items: center;/* horizontal */
justify-content: center;}
重新排序
.container > .top {
order: 1;}.container > .bottom {
order: 2;}
移動(dòng)布局
.container {
display: flex;
flex-direction: column;}.container > .top {
flex: 0 0 100px;}.container > .content {
flex: 1 0 auto;}
一個(gè)固定高度的頂部欄和一個(gè)動(dòng)態(tài)高度的內(nèi)容區(qū)域。
像表格一樣
.container {
display: flex;}/* the 'px' values here are just suggested percentages */
.container > .checkbox { flex: 1 0 20px; }
.container > .subject { flex: 1 0 400px; }
.container > .date { flex: 1 0 120px; }
這會(huì)創(chuàng)建具有不同寬度的列,但會(huì)根據(jù)情況相應(yīng)地調(diào)整大小。
垂直
.container {
align-items: center;}
垂直居中所有項(xiàng)目。
左和右
.menu > .left { align-self: flex-start; }
.menu > .right { align-self: flex-end; }
CSS 網(wǎng)格布局
網(wǎng)格模板列
#grid-container {
display: grid;
width: 100px;
grid-template-columns: 20px 20% 60%;}
fr 相對(duì)單位
.grid {
display: grid;
width: 100px;
grid-template-columns: 1fr 60px 1fr;}
網(wǎng)格間隙
/*The distance between rows is 20px*/
/*The distance between columns is 10px*/
#grid-container {
display: grid;
grid-gap: 20px 10px;}
CSS 塊級(jí)網(wǎng)格
#grid-container {
display: block;}
CSS 網(wǎng)格行
CSS 語法:
- 網(wǎng)格行:網(wǎng)格行開始/網(wǎng)格行結(jié)束;
例子
.item {
grid-row: 1 / span 2;}
CSS 內(nèi)聯(lián)關(guān)卡網(wǎng)格
#grid-container {
display: inline-grid;}
minmax() 函數(shù)
.grid {
display: grid;
grid-template-columns: 100px minmax(100px, 500px) 100px;}
網(wǎng)格行開始和網(wǎng)格行結(jié)束
CSS 語法:
- 網(wǎng)格行開始:自動(dòng)|行行;
- 網(wǎng)格行端:自動(dòng)|行行|跨度n;
例子
grid-row-start: 2;
grid-row-end: span 2;
CSS 網(wǎng)格行的長(zhǎng)度值
grid-row-gap: length;
任何合法的長(zhǎng)度值,如 px 或 %。0 是默認(rèn)值
CSS 網(wǎng)格區(qū)域
.item1 {
grid-area: 2 / 1 / span 2 / span 3;}
對(duì)齊項(xiàng)目
#container {
display: grid;
justify-items: center;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-gap: 10px;}
CSS 網(wǎng)格模板區(qū)域
.item {
grid-area: nav;}.grid-container {
display: grid;
grid-template-areas:
'nav nav . .'
'nav nav . .';}
Justify Self
#grid-container {
display: grid;
justify-items: start;}.grid-items {
justify-self: end;}
網(wǎng)格項(xiàng)位于行的右側(cè)(末尾)。
CSS 動(dòng)態(tài)內(nèi)容
變量
定義 CSS 變量
:root {
--first-color: #16f;
--second-color: #ff7;}
變量用法
#firstParagraph {
background-color: var(--first-color);
color: var(--second-color);}
另請(qǐng)參閱:CSS 變量
計(jì)數(shù)器
/* Set "my-counter" to 0 */
counter-set: my-counter;
/* Increment "my-counter" by 1 */
counter-increment: my-counter;
/* Decrement "my-counter" by 1 */
counter-increment: my-counter -1;
/* Reset "my-counter" to 0 */
counter-reset: my-counter;
另見:計(jì)數(shù)器集
使用計(jì)數(shù)器
body { counter-reset: section; }h3::before {
counter-increment: section;
content: "Section." counter(section);}
ol {
counter-reset: section;
list-style-type: none;}li::before {
counter-increment: section;
content: counters(section, ".") " ";}
CSS 3 技巧
滾動(dòng)條平滑
html {
scroll-behavior: smooth;}
單擊我,頁面將平滑滾動(dòng)到入門
另見
- CSS 選擇器備忘單(frontend30.com)
- MDN:使用 CSS flexbox
- 終極 flexbox 備忘單
- GRID:一個(gè)簡(jiǎn)單的視覺備忘單
- CSS 技巧:網(wǎng)格完整指南
- 瀏覽器支持