css3总结

目录css

Transition过渡  html

Transition的分体属性:web

贝塞尔曲线cubic-bezier  chrome

Body自己没有高度,html自己也没有高度,document的高度是可视区域。浏览器

文字阴影  网络

HTML5新增表单控件  ide

InputHTML5中新增了不少的类型字体

新增表单属性  flex

属性选择器  动画

子元素选择器(结构性伪类)

伪类选择器  

盒模型  

1. 阴影box-shadow  

2. 倒影box-reflect(须要加内核前缀使用)  

3. Resize  

4. 遮罩mask(要加内核前缀)跟背景属性值同样

弹性盒模型(目前兼容性不是很好)

1. displayflex设置给父级  

2. flex-direction设置主轴设置给父级:  

3. justify-content主轴对齐设置给父级:  

4. align-items侧轴对齐  

5. flex-wrap换行  

6. align-content(伸缩行侧轴的对齐方式)  

7. flex-flow  

弹性盒模型子级须要的设置  

1. order 显示顺序  

2. flex所占整体的份数;  

3. align-self

Background  

多背景  

背景原点设置  

背景图裁切  

渐变:  

线性渐变  

径向渐变  

 

Transition过渡

必不可少的一个参数是:秒数;

Transition是添加给须要有变更的元素的常态样式上,而不是该元素有hover等变更时。

div {

width: 200px;

height: 200px;

background-color: red;

transition:2s width, 2s height, transform 2s;

-webkit-transition: width 2s, height 2s, -webkit-transform 2s;

}

div:hover {

transform: rotate(360deg);旋转360度

width: 300px;

height: 300px;

background-color: green;

}

经过以上语句可实如今2s时间内完成宽度变300px高度变300px以及变背景的动画效果,过渡只对数值性的东西起做用,好比宽高颜色值等,而对于左右浮动这种没有数值考量的是不起做用的。

 

Transition的分体属性:

transition-property  要运动的样式  all || [attr] || none

transition-duration 运动时间

transition-delay 延迟时间

transition-timing-function过分效果的时间曲线

ease:(逐渐变慢)默认值

linear:(匀速)

ease-in:(加速)

ease-out:(减速)

ease-in-out:(先加速后减速)

cubic-bezier 贝塞尔曲线( x1, y1, x2, y2 )

贝塞尔曲线cubic-bezier

transition:6s cubic-bezier(0.400, -0.240, 0.755, 1.2);贝塞尔曲线规定了transition的变化速度轨迹,如题意思是:在运动初期会先向后缓冲而后加速前进,到达终点后冲出终点有再反弹回终点。

 

Body自己没有高度,html自己也没有高度,document的高度是可视区域。

文字阴影

• text-shadow:x偏移量 y偏移量 模糊半径 颜色;

text-shadow:5px 5px 10px red;红色模糊背景,半径10px,距离左边5px距离上边5px,若是想要多重阴影,只要用逗号隔开便可。

text-shadow:5px 5px 10px red,text-shadow:5px 7px 20px red;

先写的在上方,后写的在下面

• -webkit-text-stroke:描边宽度,颜色,可是只有谷歌支持是webkit的私有

• text-overflow:文字溢出显示省略号:ellipsis

 

 

• direction:rtl;文字书写方向右到左,ltr左到右

• direction: rtl; unicode-bidi: bidi-override; unicode-bidi:大概的含义是:编码顺序:顺序推翻;direction: rtl必须配合unicode-bidi:使用,不然没效果。

• fontLab studio+ai制做文字图标字体,将ai中的路全选径复制到fontlab里面制做生成图标文字,导出.ttf文件后在线制做成兼容各类合法字体,下载使用便可(制做各类合法字体的网站:http://www.fontsquirrel.com/tools/webfont-generator

 

下载后除了

 

压缩包之外其余都删除掉,而后解压:

 

将横线文件及html都删除:而后在应用的时候调用stylesheet.css而后在用到字体的地方将字体用font-family引用进去便可(在字体的stylesheet.css文件中,能够定义字体的名字,在引用的时候直接引用定义好的名字便可)

http://www.iconfont.cn/repositories/60 阿里妈妈字体库

HTML5新增表单控件

InputHTML5中新增了不少的类型

• email跟text很像,可是会判断是不是邮箱地址

• tel跟text很像,可是在移动端时触发以后会自动切换到数字键盘,不会判断是不是电话号

• url跟text很像,可是会验证是否是网址(根据http://或者https://或者ftp://等网络传输协议进行判断)

• search跟text很像,可是有文字输入以后在框的最后面有个“X”,在输错的时候能够点击清空以前输入的内容

• range数量选择,有min max value step几个属性,在value值和step冲突的时候会自动纠正进行显示

• number也是数量选择,可是样式有不一样,在value值和step min max冲突的时候会先显示value,在加减的时候再纠正。

• color就是一个取色器,可将选中的颜色配合submit进行提交,一般用在主题中

点击颜色后出现取色器

• datetime-local显示完整的日历,不含时区

• time显示具体的时间(小时:分钟)

• date显示日期(月-日)

• week显示这周是今年第几周

• month显示本月是今年第几月

新增表单属性

• password其中加入了一个属性值placeholder=“请输入密码” ,在点击开始输入时placeholder的内容会自动消失,支持文字color设置

更改文字颜色:注意是双冒号还要加前缀

• required,当没有输入值时就切换的tab时会提示还没输入,只要写上这个属性就生效,不用写值。

• autocomplete是否显示以前输入过的值有on和off两个值

有name值时,不设置off的状况下:

设置off之后输入框本来输入过的东西就不会被保存了。

• autofocus加载进来以后或者刷新以后自动获取焦点,跟checked同样,只要写上这个属性就生效,不用写值。

表单的<form action=”这里写提交成功跳转的地址”></form>是必需要写的否则不会提交的

• datalist定义input下可能会出现的选项(为输入框构造一个选择列表),支持首字母检索,好比输入c就出来css

注意这个标签是配合input的,将这个标签的id写到input的list属性中去。

• pattern正则验证,一堆的转译字符表示的验证过程,通常从网上找就好了

若是输入与要求不一致则显示:

• formaction当须要另外提交一个地址的时候:配合submit使用

属性选择器

• E[attr]只是用属性名,但没有肯定任何属性值(这里的miaov是个自定义属性,支持自定义属性)

• E[attr=”value”]限制属性值的选择

• E[attr~=”value”]是指属性名中有这一项便可被选中

这时候上面两条会都被选中

• E[attr^=”value”]是指属性名中以value值开头的便可被选中

• E[attr$=”value”]以value值结尾的便可被选中

• E[attr*=”value”]包含有value值的便可被选中

• E[attr|=”value”]以value值加-开始的便可被选中,好比value=g 那么就选中了以g-开头的元素

子元素选择器(结构性伪类)

• body p:nth-child(1){……………………;}选择body下第一个元素,且必须是p元素

• body  :nth-child(1){……………………;}选择body下第一个子元素,不限制元素类型

• body :nth-child(even){……………………;}选择body下的偶数子元素,不限制类型

• body :nth-child(odd){……………………;}选择body下的偶数子元素,不限制类型

• body :nth-child(2n){……………………;}选择body下的递进元素,数列的写法。3n-一、3n+1等

• body :nth-last-child(1){………………;}倒数第一个子元素

• body p:nth-of-type(2){………………;}找到body下第二个p类型的元素

• body  :nth-of-type(2){………………;}找到body下第二个不限类型的元素(能够同时找到第二个p第二个h1等全部类型的第二个)

• body  :nth-last-of-type(2){………………;}从后往前数找到body下第二个不限类型的元素

• p:nth-child(1){……………………;}p元素父级下的第一个p,支持class或者id,支持隔代选择

这种状况下依然可使用

选中p

例如:

能够用

显示成

伪类选择器

• E:target(哈希选择器或锚点选择)代表当前url片断的元素类型,这个元素必须是E

便可实现点击切换

• E:disabled代表不可点击的表单控件;E:enabled代表可点击的表单控件

• E:checked

• E:first-line,选择元素的第一行

• E:first-letter,选择元素的第一个字符

• E::selection,定义元素选中状态下的样子(背景,字体颜色等)

• E::before生成内容在E以前

• E::after生成内容在E以后

• E:not(E1)含义是给除了E1之外全部E加样式

• E~F选择E元素后面的全部的同级F标签,非同级是选不中的

• E+F选择E元素后面的紧挨着的一个同级F标签

• 模拟单选的示例

盒模型

• 阴影box-shadow

Box-shadow:x偏移量 y偏移量 模糊半径 阴影颜色

可选参数:inset 内阴影 写在第一位

扩展半径含义:边框扩展多少以后再开始模糊

Box-shadow:inset 10px 10px 30px 50px #000;

含义是内阴影 偏移量是10px 10px 模糊半径是30px 在扩展50px以后开始模糊  模糊颜色是黑色

若是想既有内阴影也有外阴影的话,直接在写完内阴影以后用逗号隔开继续写外阴影的参数便可

(扩展:作一个只有右侧阴影,扩展值为负值另外加一个右侧的偏移量)

• 倒影box-reflect(须要加内核前缀使用)

基本参数:above(上)below(下)right left

倒影和阴影是不占位置的

Box-reflect:above 5px;含义是:有一个上方的倒影距离实体5px

其中有个参数是:linear-gradient渐变:也要加前缀使用

linear-gradient(rgba(0,0,0,0.1) 50%,rgba(0,0,0,1) 100%)

含义是从黑色0.1透明到黑色不透明的渐变,两种颜色各占50%

• Resize

Textarea默认有可拖动的宽高,这时给resize:none;便可实现不可拖动

Resize:both(水平垂直都可拖动)horizontal(水平)vertical(垂直)

Resize必须和overflow:auto配合使用

Textarea的cssreset

• 遮罩mask(要加内核前缀)跟背景属性值同样

遮罩层是个png图片,有颜色的部分是未来要显示内容的部分,透明的图片是不需显示的地方

#box{-webkit-mask:url(遮罩png图片) no-repeat 20px 30px;transition:2s;}

#box:hover{-webkit-mask-position: 200px 300px; }

(倒影和遮罩只支持-webkit-内核浏览器:chrome Safari opera)

Caniuse.com能够查看属性支持程度

弹性盒模型(目前兼容性不是很好)

• displayflex设置给父级

须要flex-direction定义主轴和侧轴,定义x为主轴后y天然为侧轴

• flex-direction设置主轴设置给父级:

row左到右row-reverse右到左column上到下column-reverse下到上

• justify-content主轴对齐设置给父级:

Flex-start(元素在开始位置,空白占据另外一边)

flex-end(元素在结束位置,空白占据开始一边)

flex-center(元素居中,空白占据两边)

space-between(空白在元素中间平均分布)

space-around(空白在元素两边平均分布)

• align-items侧轴对齐

有flex-start、 flex-end、 flex-center、 space-between、 space-around属性,侧轴对齐后行之间会有间隙平均分配的一个间隙,使用伸缩行的对齐能够去掉这个间隙

• flex-wrap换行

nowrap不换行 wrap换行 wrap-reverse反向换行,flex-wrap是针对伸缩项目的,使用会有相似以下状况出现:

• align-content(伸缩行侧轴的对齐方式)

伸缩行的对齐,能够打破以前侧轴的对齐方式:

有flex-start、 flex-end、 flex-center、 space-between、 space-around属性

在父级设置display:flex;以后,子级的块元素便可横向排列且没有间隙,可是当子级宽度超过父级以后,父级会挤压子级,使子级会不受自身宽高设置而变形以适应父级的宽度,不会存在超出的问题;

若是给子级添加了margin值之后,margin值不会被挤压,子级的宽度就等于父级宽度减去全部margin值以后除以子级的个数;在设置了flex的父级的子级中margin:auto显示成水平垂直居中

若是不想让子级变形,则须要给父级设置flex-wrapwrap

• flex-flow

是flex-direction和flex-wrap的合写,格式是:flex-flow:[flex-direction][flex-wrap]

弹性盒模型子级须要的设置

• order 显示顺序

全部子元素默认的order都是0,

此时第一个div就会跑到最后的位置,由于它的order比其余的div的order都大,order能够是负值

• flex所占整体的份数;

以下是将父级分红了1+2+3+4+……+8共36份,其中第一个div占了一份,flex能够是none,意思是不参与份数保持原大小,能够是auto

• align-self

有flex-start、 flex-end、 center属性

Background

Background-size:contain包含 cover覆盖 

包含是图片按比例放大,当宽或者高一个方向撑满时中止,有可能铺不满;覆盖是图片按比例放大,直到铺满整个区域,超出部分隐藏

 

多背景

先写的在上面,后写的在下面显示,多个背景用逗号隔开写就好了,多背景状况下加背景颜色加到最后

若是设置hover时二者都要写(即便其中一个不动也要写上0 0,):

背景原点设置

Background-origin:

border-box,边框左上角、padding-box,padding左上角、content-box,content左上角

背景图裁切

Background-clip:

border-box,包括边框在内的全部区域、padding-box,padding以及其之内的区域、content-box,content范围内的区域、text能够给text添加图像叠加:

text的背景是webkit私有属性,要加前缀才有效:-webkit- background-clip:text;

也能够写成:

此时为了实现文字的背景,组要给文字加透明color:rgba(0,0,0,0),这是文字后面就会有图片叠加的效果

渐变:

背景渐变属于background-image的范畴

线性渐变

Background-image:linear-gradient(0deg,red,blue)第一个输参数能够写度数也能够写方向关键字(好比:left等),用度数写的时候不用加内核前缀,用方向关键词写的时候就要加内核前缀。

Background-image:linear-gradient(40deg,red 0%,blue 50%);

含义是:40度的渐变,从红色开始过渡到蓝色,红色在50%的位置彻底消失,后面都是蓝色(其中百分比能够写成具体px值),若是两个值同样都是50%则会在50%的位置出现明显分界:

Ie浏览器下只能用滤镜来实现:

Filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=’blue’,endcolorstr=‘red’,GradientType=’1’); startColorstr开始颜色endcolorstr结束颜色GradientType渐变方向0是上下,1是左右

 

Repeating-linear-gradient用来循环背景用:下面语句含义是:0到10%是黑色,10%处出现黑白颜色的尖锐切换即黑白颜色同时出如今10%的位置,而后白色持续到20%再次出现尖锐换色,而后将这个规律循环下去。(0黑色—10%黑色10%白色---20%白色20%黑色)

效果以下:

还能够经过复制以上语句,改下角度270deg便可获得各自似的背景

 

范例:实现白光闪过:设置背景图片,同时在背景图片上面加渐变,渐变角度160,从透明到白色再到透明,并在初始状态下移出图片范围-260px,而后hover的时候改变白光的位置便可。须要注意的是hover改变位置的时候白光和图片的位置都要写,即便图片不变更仍是0 0.background-size也要写全,没变更的写auto

 

www.tjrus.com里面的东西使用纯css写的

径向渐变

Background:radial-gradient(位置x 位置y,宽x 高y,颜色1 范围,颜色2 范围)

还有形状circle square设置形状就不能设置大小,两者只能选择一个

background:radial-gradient()

filter滤镜

grayscale灰度(要加前缀使用)

标准浏览器下要加前缀,grayscale的值是百分数,在ie下要用filter:gray;

标准浏览器中:

-webkit-filter:grayscale(50%);

-moz-filter:grayscale(50%);

-ms-filter:grayscale(50%);

在ie67下用filter:gray;不能够设置具体的数值

Blur模糊

标准浏览器下:

加内核前缀便可

Ie6-9须要用代码解决:

transform 变换 都可接收负数

Rotate旋转

 

Transform:rotate(180deg);旋转180度

考虑到移动端,因此都加上内核前缀;

用transform作变换的时候最好是将默认状态都写上

Transform-origin旋转轴点

若是想要围绕左上角作旋转的话,则Transform-origin:left top;若是只写一个关键词时则默认另外一个值是center,另外还能够用具体数值,数值坐标原点是元素左上角

Scale缩放分xy

transform:scale(2);值是倍数

transform:scaleX(2);Transform:scaleY(2);

值支持小数点

skew斜切分xy

transform:skew(20deg,20deg);值是度数,能够写一个就是x轴倾斜角度(倾斜边和y轴之间的角度),写2个后者是y轴,这里xy值同样的时候也要写两个值

translate偏移分xy

transform:translate(20px,20px);x轴右移20px,y轴下移20px

也能够分开写:transform:translateX(20px),translateY(20px);

示例1

知识点:斜切、渐变、margin负值

• 给a设置

可是这是里面的字也会倾斜,那么把字正过来:

• 给第一个和最后一个a设置margin负值;

• 注:斜切出来的角是不占位置的,因此给第一个a加了左margin负值的时候整个盒子的宽度就减少了,再给最后一个盒子一个右margin的负值,这时整个盒子的宽度就减少了,超出部分不显示。

 

 

相关文章
相关标签/搜索