做者: 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 用在窗口的状态栏中
字体匹配过程
此外, 用户代理处理字体变形和特性的方式以下: