1 .CSS3
浏览器前缀:
Trident内核:主要代表IE浏览器 -ms-
Gecko内核:主要代表 Firefox -moz-
Presto内核:主要代表Opera -o-
Webkit内核:主要代表Chrome和Safari -webkit-
css3 中的transform变形:
标准:transform:rotate(30deg);
-ms-transform:rotate(30deg);
display: -webkit-box
2 .选择器
tag、ID、CLASS、群组、包含、通配、伪类
属性选择器 : []
E[attr]
input[value]{ background: red;}
E[attr=value]
input[value=hello]{ background : red; }
E[attr^=value] ^ 表示匹配开始的位置
input[value^=hello]{ background : red; }
E[attr$=value] $ 表示匹配结束的位置
input[value$=hello]{ background : red; }
E[attr=value] 表示匹配任意的位置
input[value*=hello]{ background : red; }
有多个值的时候要用引号括起来
纯数字也要用引号
input[value=”123”]{ background : red;}
input[class=”box box2”]{ background : red; }
结构伪类选择器 :
1. nth-of-type() : 找到集合中的指定元素 , 必须是同一个类型。
first-of-type : 找到集合中的第一个元素
last-of-type : 找到集合中的最后一个元素
only-of-type : 集合只有一个元素
li:nth-of-type(2){ background:red;}
li:first-of-type{ background:red;}
li:only-of-type{ background:red;}
li:last-of-type{ background:red;}
nth-of-type() : 小括号中还可以写一个n,n表示从0开始到无穷大;2n表示偶数,2n+1表示基数
li:nth-of-type(2n){ background:red;}
li:nth-of-type(2n+1){ background:yellow;}
2. nth-child() : 找到集合中的指定元素 , 可能不是同一个类型的。
li:nth-child(2){ background:red;}
注:一定要理解:这两种之间的区别。
注:指的在同一个集合内,如果在多个集合内,需要重新的去计算。
状态伪类选择器 :
:focus 获取焦点时触发样式
input:focus{ background:red;}
a:focus{ background:red;}
button:focus{ background:red;}
div:focus{ background:red;}
(div找不到焦点,不显示,鼠标点击某处焦点显示样式,Tab键也可以改变页面焦点,)
:checked 被选中的元素触发样式 ( 单选框和复选框 )
:disabled 禁止操作的控件会触发样式
input[type=”checkbox”]:checked{ width:100px; height:100px;}
input[type=”checkbox”]:disabled{ width:200px; height:200px;}
(checked:被鼠标选中的单选框或复选框显示样式)
::selection 选中的区域触发样式
:first-line 段落的第一行触发样式
:first-letter 段落的第一个字符触发样式
p{ width:200px; border:1pxblacksolid;}
p::selection{ background:red; color:yellow;}
p:first-line{ background:blue;}
p:first-letter{ font-size: 60px;}
:read -only 只读的控件会触发样式
input:read-only{ background:red;}
input:read-write{ background:blue;}
注:在有些浏览器下disabled时候是不能拷贝内容的,redy-only时候是可以拷贝内容的。
其他选择器:
~ : 找指定的后续所有兄弟元素
+ : 找指定的后续第一个兄弟元素
> : 找所有的子元素
div ~ p{ background:red;} (找div后面的所有p元素)
div + p{ background:red;} (找div后的第一个p元素)
#list > li{ border:1pxredsolid;} (id=“list”的下的所有li)
ppppp
span
emem
ppppp
3. form表单中的控件
很多样式都不支持,如果想做成特殊的效果,需要去模拟( div , li … 其他标签 )
input type=”file” 上传按钮
4. 伪类与伪元素 ?
伪类 -> : -> :hover
伪元素 -> :: -> ::selection::after::before
区别:
伪元素:往元素中添加了一个元素,对这个元素可以添加样式。
伪类:非常规CSS能实现的一个功能。
另: :empty 当内容为空的时候,才能被触发样式
div:empty{ width:100px; height:100px; background:red;}
:not() 选择相反的操作
.box:not(div):empty{ width:100px; height:100px; }
(.box元素下的 内容为空的非div元素)
5. 文字阴影?
text-shadow
x : 阴影x轴偏移量
y : 阴影y轴偏移量
blur : 高斯模糊值
color : 阴影的颜色
多阴影,逗号隔开
div{ font-size: 60px; text-shadow:50px50px20pxred , -5px-5px10pxblue;}
注:阴影默认的颜色,跟当前文字颜色相同
6. 背景的样式?
background-size : 改变背景图的大小
1. 200px 100px ( w , h )
2. cover 覆盖 (等比放大,填充整个容器)
3. contain 包含 (整个背景会显示到容器中,所以容器可能出现空白区域)
background-origin : 背景图平铺的基点位置
padding-box (默认)
border-box
content-box
background-clip : 背景图裁切
padding-box
border-box (默认)
content-box
#box{ width:300px; height:300px; background:url(timg.jpg) repeat; padding:100px; background-origin:content-box; background-clip:content-box; }
7. 渐变?
background-image : linear-gradient()
1. 多个颜色值 ,通过逗号分割,默认的方向从上倒下,默认渐变的范围,平均分配
2. 渐变的范围 , 通过百分比。
3. 渐变的方向 , to xxx
left top bottom(默认) right
4. 添加偏移的角度 , 30deg , 沿着顺时针旋转 ;0deg的时候默认 bottom在最上面,然后在这个位置开始偏移角度。
#box{background-image:linear-gradient(red25%, blue25% , blue50% , green50% , green75% , black75% );}
#box2{ background-image:linear-gradient(to topleft ,red, blue);}
#box2{ background-image:linear-gradient(90deg, red, blue);}