CSS3 備忘錄

2022-05-26 16:07 更新

這是 CSS 優(yōu)點的快速參考速查表,列出了選擇器語法、屬性、單位和其他有用的信息位。

開始

介紹

CSS 具有豐富的功能,不僅僅是簡單的頁面布局。

外部 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>

在一個元素上支持多個類。

!important

.post-title {
    color: blue !important;
}

覆蓋所有以前的樣式規(guī)則。

選擇器

h1 { } 
#job-title { }
div.hero { }
div > p { }

請參閱:選擇器

文字顏色

color: #2a2aff;
color: green;
color: rgb(34, 12, 64, 0.6);
color: hsla(30 100% 50% / 0.6);

請參閱:顏色

背景

#背景

background-color: blue;
background-image: url("nyan-cat.gif");
background-image: url("../image.png");

請參閱:背景

字體

.page-title {
    font-weight: bold;
    font-size: 30px;
    font-family: "Courier New";
}

請參閱:字體

位置

.box {
    position: relative;
    top: 20px;
    left: 20px;
}

另見:位置

動畫


animation: 300ms linear 0s infinite;

animation: bounce 300ms linear infinite;

參見:動畫

注釋


/* 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;
}

請參閱:彈性盒| 靈活技巧

網(wǎng)格布局

#container {
  display: grid;
  grid: repeat(2, 60px) / auto-flow 80px;
}

#container > div {
  background-color: #8ca0ff;
  width: 50px;
  height: 50px;
}

請參閱:網(wǎng)格布局

變量和計數(shù)器

counter-set: subsection;
counter-increment: subsection;
counter-reset: subsection 0;

:root {
  --bg-color: brown;
}
element {
  background-color: var(--bg-color);
}

請參閱:動態(tài)內(nèi)容

CSS 選擇器

例子

組選擇器

h1, h2 {
    color: red;
}

鏈接選擇器

h3.section-heading {
    color: blue;
}

屬性選擇器

div[attribute="SomeValue"] {
    background-color: red;
}

第一個子選擇器

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 中的所有元素

另請參閱:類型 / / 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)簽

另請參閱: 相鄰 /兄弟 / 選擇器

屬性選擇器

a[target] 用一個 target  屬性
a[target="_blank"] 在新標(biāo)簽頁中打開
a[href^="/index"] 以 /index 開始
[class|="chair"] 以 char 開始
[class*="chair"] 包含 char
[title~="chair"] 包含 char 這個詞 
a[href$=".doc"] 以 .doc 結(jié)束
[type="button"] 指定類型

另請參閱:屬性選擇器

用戶操作偽類

a:link 正常狀態(tài)下的鏈接
a:active 處于點擊狀態(tài)的鏈接
a:hover 用鼠標(biāo)鏈接
a:visited 訪問過的鏈接

偽類

p::after 在 p 后添加內(nèi)容
p::before 在 p 前添加內(nèi)容
p::first-letter p 中的第一個字母
p::first-line p 中的第一行
::selection 由用戶選擇
::placeholder 占位符屬性
:root 文檔根元素
:target 突出顯示活動錨點
div:empty 沒有孩子的元素
p:lang(en) P 帶有 en 語言屬性
:not(span) 不是跨度的元素

輸入偽類

input:checked 檢查輸入
input:disabled 禁用輸入
input:enabled 啟用輸入
input:focus 輸入有焦點
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 第一個孩子
p:last-child 最后一個孩子
p:first-of-type 首先是某種類型
p:last-of-type 某種類型的最后
p:nth-child(2) 其父母的第二個孩子
p:nth-child(3n42) Nth-child (an + b) 公式
p:nth-last-child(2) 后面的第二個孩子
p:nth-of-type(2) 其父級的第二個 p
p:nth-last-of-type(2) ...從后面
p:only-of-type 其父級的唯一性
p:only-child 其父母的唯一孩子

CSS 字體

特性

font-family: <字體>
font-size: <尺寸>
letter-spacing: <尺寸>
line-height: <編號>
font-weight: <數(shù)字> / 粗體 / 正常
font-style: 斜體/正常
text-decoration: 下劃線/無
text-align: 左/右
居中/對齊
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;

十六進制顏色

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 背景

特性

財產(chǎn) 描述
background: (速記)
background-color: 請參閱:顏色
background-image: 網(wǎng)址(...)
background-position: 左/中/右上
/中/下
background-size: 蓋XY
background-clip: 邊框框
填充框
內(nèi)容框
background-repeat: 不重復(fù)
重復(fù)-x
重復(fù)-y
background-attachment: 滾動/固定/本地

速記

顏色 圖片 位置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;
}

另請參閱:margin  /padding

盒子尺寸

.container {
    box-sizing: border-box;}

另請參閱:box-sizing

可見性

.invisible-elements {
    visibility: hidden;
}

另見:visibility

自適應(yīng)外邊距

div {
    margin: auto;
}

另見:margin

溢出

.small-block {
    overflow: scroll;
}

另見:overflow

CSS 動畫

速記

名稱 執(zhí)行時間 定時功能 延遲 播放次數(shù) 方向 填充模式 執(zhí)行狀態(tài)
animation: bounce 300ms linear 100ms infinite alternate-reverse both reverse

特性

animation: (速記)
animation-name: <名稱>
animation-duration: <時間>毫秒
animation-timing-function: 緩/線性/緩入/緩出/緩入
animation-delay: <時間>毫秒
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 彈性盒

簡單的例子

.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;
}

移動布局

.container {
  display: flex;
  flex-direction: column;
}

.container > .top {
  flex: 0 0 100px;
}

.container > .content {
  flex: 1 0 auto;
}

一個固定高度的頂部欄和一個動態(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; }

這會創(chuàng)建具有不同寬度的列,但會根據(jù)情況相應(yīng)地調(diào)整大小。

垂直

.container {
  align-items: center;
}

垂直居中所有項目。

左和右

.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 相對單位

.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 塊級網(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)格行開始:自動|行行;
  • 網(wǎng)格行端:自動|行行|跨度n;

例子

grid-row-start: 2;
grid-row-end: span 2;

CSS 網(wǎng)格行的長度值

grid-row-gap: length;

任何合法的長度值,如 px 或 %。0 是默認(rèn)值

CSS 網(wǎng)格區(qū)域

.item1 {
    grid-area: 2 / 1 / span 2 / span 3;
}

對齊項目

#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)格項位于行的右側(cè)(末尾)。

CSS 動態(tài)內(nèi)容

變量

定義 CSS 變量

:root {
  --first-color: #16f;
  --second-color: #ff7;
}

變量用法

#firstParagraph {
  background-color: var(--first-color);
  color: var(--second-color);
}

另請參閱:CSS 變量

計數(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;

另見:計數(shù)器集

使用計數(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 技巧

滾動條平滑

html {
    scroll-behavior: smooth;
}

單擊我,頁面將平滑滾動到入門


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號