概要:CSS3美化样式、自定义字体图标、滤镜设置、CSS3选择器、transform2D转换、新增表单控件、vaild表单验证、表单样式美化等。
属性选择器:
E[attr]只使用属性名,但没有确定任何属性值
E[attr="value"]指定属性名,并指定了该属性的属性值
E[attr~="value"]指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写
E[attr^="value"]指定了属性名,并且有属性值,属性值是以value开头的
E[attr$="value"]指定了属性名,并且有属性值,而且属性值是以value结束的
E[attr*="value"]指定了属性名,并且有属性值,而且属值中包含了value
E[attr|="value"]指定了属性名,并且属性值是value或者以“value-”开头的值(比如说zh-cn)
自定义字体:
格式:
@font-face {
font-family: 'miaov'; src: url('../fonts/glyphicons-halflings-regular.eot');
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),
url('../fonts/glyphicons-halflings-regular.woff') format('woff'),
url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),
url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
转换字体格式生生成兼容代码:https://www.fontsquirrel.com/tools/webfont-generator
滤镜:
0 ~ 1
0% ~ 100%
灰度 -webkit-filter:grayscale(1);
棕色调 -webkit-filter:sepia(1);
饱和度 -webkit-filter:saturate(0.5);
色相旋转 -webkit-filter:hue-rotate(90deg);
反色 -webkit-filter:invert(1);
透明度 -webkit-filter:opacity(0.2);
亮度 -webkit-filter:brightness(0.5);
对比度 -webkit-filter:contrast(2);
模糊 -webkit-filter:blur(3px);
阴影 -webkit-filter:drop-shadow(5px 5px 5px #ccc);
注意:需要加前缀才能生效。
H5新增表单元素:
表单控件:
<form action="">
<input type="email" />
<input type="submit" />
</form>
email : 电子邮箱文本框,跟普通的没什么区别
当输入不是邮箱的时候,验证通不过
移动端的键盘会有变化
tel : 电话号码
url : 网页的URL
search : 搜索引擎
chrome下输入文字后,会多出一个关闭的X
range : 特定范围内的数值选择器
min、max、step( 步数 )
number : 只能包含数字的输入框
color : 颜色选择器
datetime-local : 显示完整日期,不含时区
time : 显示时间,不含时区
date : 显示日期
week : 显示周
month : 显示月
表单的特性和函数:
placeholder : 输入框提示信息
autocomplete : 是否保存用户输入值
默认为on,关闭提示选择off
autofocus : 指定表单获取输入焦点
list和datalist : 为输入框构造一个选择列表
list值为datalist标签的id
required : 此项必填,不能为空
Pattern : 正则验证 pattern="\d{1,5}“
Formaction 在submit里定义提交地址
表单选择器:
E:target 表示当前的URL片段的元素类型,这个元素必须是E,例子:实现tab切换
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.tab-control a{
display: inline-block;
text-decoration: none;
color: #fff;
height: 20px;
width: 40px;
text-align: center;
line-height: 20px;
background-color: pink;
}
.tabs{
border: 1px solid red;
height: 200px;
width: 200px;
/*overflow: hidden;*/
overflow: auto;
}
.tabs div{
width: 100%;
height: 100%;
}
:target{
display: block;
}
</style>
<!--
E:target 表示当前的URL片段的元素类型,这个元素必须是E
-->
</head>
<body>
<div class="tab-control">
<a href="#tab1">tab1</a>
<a href="#tab2">tab2</a>
<a href="#tab3">tab3</a>
</div>
<div class="tabs">
<div id="tab1">tab1</div>
<div id="tab2">tab2</div>
<div id="tab3">tab3</div>
</div>
</body>
</html>
E:disabled 表示不可点击的表单控件
E:enabled 表示可点击的表单控件
E:checked 表示已选中的checkbox或radio
E:first-line 表示E元素中的第一行
E:first-letter 表示E元素中的第一个字符
E::selection表示E元素在用户选中文字时
E::before 生成内容在E元素前
旋转:
transform
rotate(90deg) 旋转函数 取值度数
deg 度数
transform-origin:x y 旋转的基点
倾斜:
skew(90deg) 倾斜函数 取值度数
skewX()
skewY()
缩放:
scale(2) 缩放函数 取值 正数、负数和小数
scaleX()
scaleY()
位移:
translate() 位移函数
translateX()
translateY()
矩阵:
matrix(a,b,c,d,e,f) 矩阵函数
通过矩阵实现缩放
x轴缩放 a=x*a c=x*c e=x*e;
y轴缩放 b=y*b d=y*d f=y*f;
通过矩阵实现位移
x轴位移: e=e+x
y轴位移: f=f+y
通过矩阵实现倾斜
x轴倾斜: c=Math.tan(xDeg/180*Math.PI)
y轴倾斜: b=Math.tan(yDeg/180*Math.PI)
通过矩阵实现旋转
a=Math.cos(deg/180*Math.PI);
b=Math.sin(deg/180*Math.PI);
c=-Math.sin(deg/180*Math.PI);
d=Math.cos(deg/180*Math.PI);
变换兼容IE9以下IE版本只能通过矩阵来实现
filter: progid:DXImageTransform.Microsoft.Matrix( M11= 1, M12= 0, M21= 0 , M22=1,SizingMethod='auto expand');
IE下的矩阵没有E和F两个参数 M11==a; M12==c; M21==b; M22==d
矩阵使用如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
div{
width: 100px;
height: 100px;
background-color: pink;
transition: 3s;
margin: 100px auto;
}
</style>
<script>
window.onload = function() {
var box = document.getElementById("box");
box.onclick = function() {
var a = ,
b = ,
c = ,
d = ,
e = ,
f = ; var deg = ; a=Math.cos(deg/*Math.PI);
b=Math.sin(deg/*Math.PI);
c=-Math.sin(deg/*Math.PI);
d=Math.cos(deg/*Math.PI); box.style.transform = "matrix("+a+","+b+","+c+","+d+","+e+","+f+")"
box.style.filter = "progid:DXImageTransform.Microsoft.Matrix( M11= "+a+", M12= "+c+", M21= "+b+" , M22= "+d+",SizingMethod='auto expand')"; } }
</script>
</head>
<body>
<div id="box"></div>
</body>
</html>