做者: https://www.cnblogs.com/xiaxiangx/css
CSS( Cascading Style Sheet)html
CSS3由多個獨立的模塊構成, 緣由是各模塊能夠獨立演進, 這樣作的缺點是" CSS3規範 "不能涵蓋一切css3
CSS兩種形式: 置換元素和非置換元素, 詞如其名, 置換元素表示內容不禁文檔直接表示, 如img, inputweb
元素的顯示方式: 常見三種, 塊級元素, 行內元素和行內塊元素, 還有其餘的在display中數據庫
候選樣式表: 將rel屬性設爲alternate stylesheet, 僅當用戶本身選擇, 文檔纔會使用候選樣式渲染跨域
<link rel="stylesheet" type="text/css" href="sheet1.css" title="Default"> <link rel="alternate stylesheet" type="text/css" href="sheet2.css" title="title1"> <link rel="alternate stylesheet" type="text/css" href="sheet3.css" title="title2">
廠商前綴瀏覽器
處理空白: 和HTML相似, 連續的空白會合併成一個空白服務器
媒體查詢: @media all{body{color: red;}}ide
特性查詢: @support(color: black){body{color: black;}}svg
嵌套:
@supports(display: flex){@media screen{/*針對屏幕的樣式*/}}
2.1 元素選擇符: p{color: red;}
2.2 羣組選擇符: h2, p{color: red;}
document.createElement('main')
, 運行這段代碼後, 舊版瀏覽器就能識別新元素2.3 類選擇符和ID選擇符
類選擇符: .class1{color: red;} 表示color屬性值會賦予class屬性包含class1的元素上
類選擇符+元素選擇符: p.class1{color: red;} 表示color屬性值會賦予class屬性包含class1的p元素上
id選擇符: #id1{color: red;} 將屬性值賦予id爲id1的元素上
因爲id惟一, 所以通常狀況下, id選擇器不做爲其餘選擇器的後綴, 而是前綴, 如#id1>li , 而li>#id1(除了提升權重, 沒有意義)
2.4 屬性選擇符
簡單屬性選擇符: h1[class], 選擇包含class的h1元素
精準屬性值選擇符: h1[class="class1"], 選擇class="class1"的h1元素, class="class1 class2"選擇不到
根據部分屬性值選擇
不區分大小寫的標識符
h1[class="class1" i], 以後能夠選中class屬性值爲Class1, cLAss1, ClasS1, 忽略其大小寫
2.5 根據文檔結構選擇
2.6 僞類選擇符
拼接僞類: a:link:hover{color: red;}
, 將僞類進行拼接, 注意, 相互排斥的僞類拼接沒有意義
結構僞類
選擇根元素 :root, 與html效果相似, 可是特指度不一樣
選擇空元素 :empty, 有換行或空格均不算, 註釋應先去掉再看
選擇惟一的子代 :only-child, img:only-child, 表示選中img的父親只有img一個孩子的img
選擇類型惟一的子代 :only-of-type, 與上一個不一樣的是, 父親可能有多個孩子, 可是在孩子中, 本身的類型(元素類型)只有本身有
選擇第一個和最後一個子代 :first-child, 選擇第一個子元素. :last-child, 選擇最後一個子元素
選擇第一個和最後一個某種元素 :first-of-type 和 :last-of-type
選擇每第n個子元素 :nth-child(n)
:nth-child(1), 第一個子元素, :nth-child(odd), 第奇數個子元素, :nth-child(odd), 第偶數個子元素, :nth-child(n), 從1到最後一個子元素, :nth-child(an+b), n從1到an+b越界的n, 代入計算
:nth-last-child(n)從後向前數
選擇每第n個某種元素 :nth-of-type()和nth-last-of-type()
動態僞類 :link :visited :focus :hover :active
, 順序得一致, 不然會覆蓋樣式
UI狀態僞類
:enabled 指代啓用的用戶界面元素(例如表單元素)
:disabled 指代禁用的用戶界面元素(例如表單元素)
:checked 指代由用戶或文檔默認選中的單選按鈕或複選框
:indeterminate 指代沒有肯定的單選按鈕或複選框, 這個狀態只能由DOM腳本設定, 用戶不能設定
:default 指代默認選中的單選按鈕, 複選框或選項
:valid 指代知足全部數據有效性語義的輸入框
:invalid 指代不知足全部有效性語義的輸入框
:in-range 指代輸入的值在最小值和最大值之間的輸入框
:out-of-range 指代輸入的值不在範圍內的輸入框
:required 指代必須輸入值的輸入框
:optional 指代無需必定輸入值的輸入框
:read-write 指代可由用戶編輯的輸入框
:read-only 指代不能由用戶編輯的輸入框
:target 僞類, 指向目標id的元素, 突出顯示, 例如 http://www.w3.org/TR/css3-selectors/#target-pseudo
:lang 僞類, 匹配方式上與 |= 相似, :lang僞類可使用各類來源, 而屬性選擇器使用 |= 有限制
否認僞類, :not, 例子, .moreinfo:not(li){color: red;}, 選擇class爲moreinfo可是不是li的元素, 能夠拼接, 表示既不是, 也不是
僞元素選擇符只能出如今選擇符的最後, p::first-line em 是無效的
裝飾首字母, ::first-letter, 裝飾任何非行內元素的首字母, 或者開頭的標點符號和首字母
裝飾首行, ::first-line, 裝飾元素的首行文本, 也只能應用到塊級元素上
裝飾前置和後置內容元素, ::
::before, ::after{content: "";}
當一個元素被多個選擇器選中, 應用哪個, 這個問題由特指度和層疊解決
特指度由四個部分組成, 前面的部分總比後面的部分大, 特指度0,0,0,0; 兩個特指度, 一個0, 0, 1, 0, 總比0, 0, 0, 1000大.
單位能夠影響顏色, 距離和尺寸等一系列屬性, 能夠幫助定義這些值.
樣式表中的一切都是文本, 可是有些類型的值表示的是字符串自己, 而不是數字或顏色等.
關鍵字
none: 移除下劃線等, 不一樣屬性配上相同關鍵字可能有不同的效果, 具體狀況具體說明
全局關鍵字
inherit: 繼承, initial: 重設值, unset: 能繼承屬性就繼承, 不能就重設
all: 只接受inherit, initial, unset三個值, all: inherit, 表示出了不能繼承的都繼承
字符串
URL(protocol://server/pathname)
圖像
標識符
數字和百分數
彈性值, fr
絕對長度單位, in(英尺), cm(釐米), mm(毫米), q(四分之一毫米), pt(點), pc(派卡, 12點), px(像素)
分辨率單位, dpi(點每英寸), dpcm(點每釐米), dppx(點每像素)
相對長度單位,
1em等於元素的 font-size 屬性值. 它是至關於父元素的字號而言.
1ex 指所用字體中小寫字母x的高度.
rem與em區別很小, rem相對於文檔根的font-size.
ch(新增), 渲染0字形的進距.
vw(視區寬度單位), vh(視區高度單位), vmin(視區尺寸最小值單位, 寬高取小), vmax(視區尺寸最大值單位)
計算值
屬性值 attr(), width: attr(maxlenth em) 支持的瀏覽器較少
顏色
角度
時間和頻率 s, ms, Hz, kHz, 不區分大小寫
位置 用於指定圖像在背景區域中的位置
自定義值
html{ --base-color: #369 } h1{color: var(--base-color);}
CSS2開始支持 @font-face 下載指定的自定義字體
字體族
使用字體族
自定義字體
@font-face{font-family: "SwitzeraADF"; src: url("SwiteraADF-Regular.otf");}
惰性加載, 使用時加載. 瀏覽器是不論是否須要, 都會現行下載聲明的所有字形
必須的描述符, font-family和src
使用HTTP首部Access-Control-Allow-Origin設定服務器, 容許跨域加載
format, 告訴客戶代理格式
@font-face{ font-family: "SwitzeraADF"; src: url("SwiteraADF-Regular.otf") format('opentype'), src: url("SwiteraADF-Regular.true") format('truetype'); }
字體格式值
embedded-opentype EOT
opentype OTF
svg SVG(Scalable Vector Graphics)
truetype TTF
woff WOFF(Web Open Font Format)
local(已經安裝的字體), src: local("Switzera-Regular")
萬全之策
@font-face{ font-family: "SwitzeraADF"; src: url("SwitzeraADF-Regular.eot"); src: url("SwitzeraADF-Regular.eot?#iefix") format("embedded-opentype"), url("SwitzeraADF-Regular.woff") format("woff"), url("SwitzeraADF-Regular.ttf") format("truetype"), url("SwitzeraADF-Regular.svg#switzera_adf_regular") format("svg"); }
其餘字體描述符
描述符 | 默認值 | 說明 |
---|---|---|
font-stype | normal | 區分常規, 斜體和傾斜字形 |
font-weight | normal | 區分不一樣的字重(例如加粗) |
font-stretch | normal | 區分不一樣的字符寬度(例如緊縮和加寬) |
font-variant | normal | 區分衆多字體變形(例如小號大寫字母) |
font-feature-setting | normal | 直接訪問OpenType的底層特性(例如啓用連字) |
unicode-range | U+0-10FFFF | 定義指定字體中可用的字符範圍 |
字重
字號
字形
字體拉伸
字距調整
字體變形
字體特性
font-feature-settings ,從底層控制OpenType字體
使用方法 font-feature-settings: "liga" on, "calt" on, "ccmp" 1, "clig"; on 1 默認均可以
默認狀況下, OpenType字體啓用的特性
calt 根據上下文替換
ccmp 組合字符
clig 根據上下文連字
liga 標準連字
locl 本地化形式
mark 基本定位標記
mkmk 標記定位標記
rlig 必要的連字
字體合成
font屬性
使用系統字體
font: caption
可用的系統值
caption 用於說明文字的控件, 如按鈕
icon 標註圖標
menu 在菜單欄中使用, 即下拉菜單和菜單列表
message-box 在對話框中使用
small-caption 用於標註小型控件
status-bar 用在窗口的狀態欄中
字體匹配過程
此外, 用戶代理處理字體變形和特性的方式以下: