当前位置: 首页 > Web前端 > CSS

CSS3新特性概述

时间:2023-03-30 22:47:33 CSS

CSS3新特性大致分为以下六类1.CSS3选择器2.CSS3边框和圆角3.CSS3背景和渐变4.CSS3过渡5.CSS3变换6.CSS3animation下面分别说一下上面六大类的内容CSS3选择器1.基本选择器基本选择器分为子选择器相邻兄弟选择器通用兄弟选择器组选择器2.属性选择器1.element[attribute]设置样式为属性attribute的元素2.element[attribute='value']为attribute='value'属性的元素设置样式3.element[attribute~='value']选择value中包含单词的属性value元素并设置样式4.element[attribute*='value']选择attribute属性值包含value的元素设置样式5.element[attribute^='value']选择attribute属性值开始的元素withvalue6.element[attribute$='value']选择attribute属性值以value结尾的元素注意3和4的区别3.伪类选择器动态伪类定义:这些伪类不存在在HTML中,只有当用户和网站进行交互时才能体现出来。1.锚伪类:link:visited2.用户行为伪类:hover:active:focus3.目标伪类:target当我们点击锚链接时,id对应的元素会显示在viewport4.checkedstatus伪类这里要知道checkbox只能设置宽高,不能设置背景和边框。如果我们要设置它,那么我们需要使用appearance:none;清除输入的默认样式CSS3结构类:nthSelector:first-child/last-child语法element:first-child选择属于父元素的第一个/最后一个子元素的每个element元素,注意元素是子元素。:nth-child(n)选取某个元素下的第n个元素元素(n是一个简单的表达式,不能用其他字母代替),也可以在括号中传入奇数和偶数两个关键字:nth-??last-child(n)匹配属于某个元素的第n个元素子元素,从最后一个子元素算起:nth-of-type(n)语法element:nth-of-type(n)匹配属于父元素的元素特定类型的第n个子元素,element为指定类型的子元素:nth-??last-of-type匹配属于父元素的特定类型的第n个子元素,从最后数起:first-of-type/:last-of-type匹配作为其父项的特定类型的第一个/最后一个子项的每个元素:only-child匹配作为父项的唯一子项的每个元素:only-of-type匹配一个元素是它的父元素是特定类型的唯一子元素的每个元素:empty匹配没有子元素的每个元素(包括文本nodes)否定选择器:not定义:匹配所有不是元素或选择器的元素语法:父元素:not(childelementorselector)示例:ul:not(span){}伪元素(也可以使用:)element::first-line定义:设置元素文本的首行,仅对块级元素有效element::first-letter定义:用于设置文本首字母的特殊样式,以及只能用于块级元素element::before定义:在元素内容前插入新内容,常与content结合使用element::after定义:在元素内容后插入新内容,常用结合contentelement::selection定义:用于设置浏览器中选中文本的背景色和前景色伪元素与元素的区别:无法通过JS浏览器开发者工具直接查看伪元素获取其DOM,默认是内联的。使用伪元素的注意事项:1、前后使用伪元素时,必须设置内容。前后使用伪元素设置为display:inline-block,需要重新设置vertical-align:middleCSS3边框和圆角1.CSS3roundedborder-radius定义:可以给元素(块元素、内联块元素、内联元素)添加圆角边框属性:border-top-left-radius左上角border-top-right-radius右上角border-bottom-right-radius右下角border-bottom-left-radius左下角复合属性:border-radius:属性值四个值:左上角右上角右下角左下角三个值:左上角upper右上角和左下角右下角两个值:左上角和右下角右上角和左下角一个值:四个角都生效border-radius中的属性值由两个参数值组成:value1/value2,用/隔开,value1代表圆角的水平半径,value2代表圆角的垂直半径圆和椭圆:一旦使用百分比,参考的就是元素本身的高和宽。取50%时,宽等于高,圆宽不等于高,椭圆2.box-shadow定义:可以控制一个或多个下拉阴影的Box语法:box-shadow:offsetinthehorizo??ntaldirectionoffsetinverticaldirectionfuzzydevelopment)为参考点,求水平方向和垂直方向的偏移量。,但边界线不动从边界线向外模糊了多少像素扩展度:boxshadow,从上、下、左、右分别向外扩展了多少像素?是否有内阴影:inset(默认没有,即默认是外阴影)加上inset,盒子内阴影的阴影可以是负数,但是模糊程度不能是css3背景和渐变1.CSS3背景background-image语法:backgroundimage:url('1.jpg),url('2.jpg')用逗号分隔图片注意:元素引入多张背景图片,前面的图片会覆盖后面的图片背景-cilp定义:指定背景的绘图区域(裁剪)语法:background-cilp:border-box/padding-box/content-box属性介绍:border-box:背景裁剪到边框(裁剪)backgroundimageisdrawnfromtheborder)---defaultpadding-box:backgroundisclippingtotheinnermarginbox(背景图片从内边距绘制)content-box:背景裁剪到内容框background-origin定义:设置背景的原始起始位置dimage语法:background-origin:border-box/padding-box/content-box(背景图片的坐标原点与这三者有关)属性介绍:border-box:相对于borderpadding-box定位:positioningrelativerelativetotheinnermargincontent-box:相对于内容框的定位还有一个需要理解background-position:定义背景图片的位置,水平和垂直方向(参考点)上方的偏移量background-repeatdefinition:设置背景图片是否重复以及如何重复,默认默认情况下,背景图像水平和垂直重复属性值:repeatdefault。背景图像将垂直和水平重复。repeat-x背景图像将水平重复。repeat-y背景图像将垂直重复。no-repeat背景图片只会显示一次。inherit指定background-repeat属性的设置应该从父元素继承。background-size定义:指定背景图片的大小语法:background-size:number/%/cover/contain属性介绍:number:宽度和高度(如果只写一个值,第二个值默认为auto)百分比:0%-100%之间的任意值,此时的百分比是指元素div覆盖的大小:背景图片按比例缩放以填充整个容器(最远的一侧),如果高度达到一定比例时100%,超出宽度会溢出。然而,溢出的具体部分取决于容器的定位:背景图像按比例缩放,直到一侧靠近容器的边缘(最近的边缘)。如果图片高度比较小,复合属性background的高度处会有空白区域定义:一条语句可以设置所有背景属性语法:background:颜色位置大小重复原点剪辑附件图片;background:#abccenter50%no-repeatcontent-boxcontent-boxfixedurl('1.jpg'),url('2.jpg')...2.CSS3渐变定义:可以显示两个或两个之间的过渡更多指定颜色线性渐变定义:沿一个轴改变颜色,从起点到终点进行顺序渐变(从一侧拉到另一侧)语法:background:linear-gradient(direction,startcolor,endcolor)方向介绍:1.从上到下的方向(默认)background:linear-gradient(red,blue);2.方向从左到右的背景:linear-gradient(toright,red,blue);3.对角线背景:线性渐变(到右下角,红色,蓝色);4.角度(单位deg)背景:linear-gradient(angle,red,blue);角度说明:0deg会创建从下到上的渐变,90deg会创建从左到右的渐变颜色节点:默认每种颜色颜色均匀分布的背景:linear-gradient(red10%,blue20%,green30%,yellow40%);从0%到10%是红色,从10%到20%是从红到蓝的渐变,从20%到30%是从蓝到绿的渐变,从30%到40%是一个渐变从绿色到黄色,从40%到100%是黄色背景:linear-gradient(red10%,blue);从0%到10%是红色,从10%到100%是红色到蓝色的渐变。最后,如果不写具体值,默认100%background:linear-gradient(red,blue30%);从0%到30%,对于从红到蓝的渐变如果第一个没写,默认值为0%background:lineargradient(rgba(255,0,0,0),rgba(255,0,0,1));通过从透明色到不透明色的重复渐变示例:background:repeating-linear-gradient(90deg,red0%,blue20%);或背景:重复线性渐变(90度,红色0%,蓝色10%,红色20%);注意:将元素整体宽度看成100%径向渐变定义:从起点到终点,颜色由内向外循环渐变语法:background:radial-gradient(shapesize,startcolor,endcolor)shape类别:circle---roundellipse---ellipse注意:当元素的高和宽相同时,无论设置哪个参数,都是圆的大小:closest-sidenearestsidebackground:radial-gradient(closest-sidecircle,red,blue);最远的最远背景:径向渐变(最远的圆,红色,蓝色);closest-cornerclosestcornerbackground:radial-gradient(closest-cornercircle,red,blue);最远的角落背景:径向渐变(最远角圆,红色,蓝色);颜色节点:示例:background:radial-gradient(circle,red50%,blue70%);注意:此时的百分比是指以圆心到重复渐变元素最远端的距离(角度):例:背景:repeating-radial-gradient(red0%,blue20%);背景:重复径向渐变(红色0%,蓝色10%,红色20%);CSS3过渡定义:允许CSS属性值在一定时间间隔内平滑过渡,当鼠标点击、鼠标悬停或元素发生任何变化时触发,以动画的形式平滑改变CSS属性值属性:1.transition-property属性定义:设置对象中transition涉及的属性语法:transition-property:none|all|property参数说明:none:没有属性改变all:默认值,所有属性改变property:元素的属性名称宽度、颜色等2.transition-duration属性定义:设置对象过渡的持续时间语法:transition-duration:time参数说明:指定完成过渡效果所花费的时间,单位为秒或毫秒,默认值为03.transition-timing-function属性定义:设置对象中的过渡动画类型语法:只能使用一个属性值参数说明:ease:平滑过渡(0--slow-fast-slow),默认valuecubic-bezier(0.25,0.1,0.25,1)linear:线性过渡(匀速)cubic-bezier(0,0,1,1)ease-in:slow--fastcubic-bezier(0.42,0,1,1)ease-out:Fast--slowcubic-bezier(0,0,0.58,1)ease-in-out:慢--快--slowcubic-bezier(0.42,0,0.58,1)贝塞尔曲线:http://cubic-bezier.com/#.17,...4.transition-delay属性定义:设置对象延迟语法的过渡时间:transition-delay:time参数说明:指定动画效果延迟开始的秒数或毫秒数,默认是05.Transition复合属性语法:transition:属性durationtiming-functiondelay;参数说明:transitiontime和delaytime的顺序不能乱CSS3transform定义:让一个元素在一个坐标系中变形,该属性包含一系列Transform函数,可以对元素进行移动、旋转、缩放。语法:变换:无|默认值为none2dtransformation1.rotate()旋转定义:通过指定一个角度参数,为元素指定一个二维旋转语法:transform:rotate(angle)unitdeg参数说明:角度是指旋转角度,正数表示顺时针旋转,负数表示逆时针旋转2.translate()平移定义:根据给定的X轴和Y轴位置参数,移动当前元素的位置分类:translateX()仅水平方向移动语法:transform:translateX()unitpxtranslateY()仅垂直移动语法:transform:translateY()unitpxtranslate(x,y)同时水平和垂直移动语法:transform:translate(X,y)unitpx注:如果只写一个参数,则第二个默认为0,即只设置水平方向的位移。3.scale()缩放定义:设置元素的缩放程度x,y)水平和垂直缩放元素语法:transform:scale(x,y)withoutunits4.skew()twist/tilt定义:设置元素分类的倾斜状态:skewX()只扭曲元素水平方向Deformationunitdeg正值----逆时针skewY()只在垂直方向扭曲元素Deformationunitdeg正值-clockwiseskew()使元素水平和垂直扭曲Deformationunitdeg注:0deg效果相同as180deg5.变换基点定义:元素变换的参考点语法:transform-origin:水平方向垂直方向参数说明:lefttop左上角----所有四个角可以是25%top50px50px默认值:旋转几何中心点倾斜几何中心点缩放几何中心点translate自身位置的3d变换1.打开3d空间transform-style:preserve-3d;一般为父元素开启2.为子元素设置3d变换效果rotaterotateX()定义:指物体在X轴上的旋转角度(变换基点:50%50%0)rotateY()定义:指物体在Y轴上的旋转角度(变换基点:50%50%0)rotateZ()定义:指物体在Z轴上的旋转角度(变换基点:50%50%0)translatetranslateZ()定义:指物体在Z轴上的平移(变换基点:50%50%0)scalescaleZ()定义:指定物体的Z轴缩放(变换基点:50%50%0)(意义不大,打开3d空间)3.设置景深:实现近、远、小父元素和子元素可以设置父元素:perspective:300px;子元素:transform:perspective(300px)translateZ(-200px);注意:景深:可选值:大于等于0,景深值越大,元素看起来越大默认值:0--无景深(不能为负)4.变换基点默认值:50%50%0transform-origin:top;关键字表示(50%00)注:立体3d框Z:只能使用特定长度,不能使用百分比和关键字-origin:topright;6.元素背面是否可见backface-visibility:visible;(默认值:可见)背面可见性:隐藏;CSS3隐形动画定义:使元素逐渐从一种样式变为另一种样式效果@keyframes定义:keyframes关键帧,用于确定动画变化的关键位置注意:keyframes控制关键位置,不是所有位置语法:@keyframesanimationname{关键帧选择器{cssStyles;}}animationname:必填项,定义动画的名称keyframes-selector:必填项,动画持续时间的百分比在0%到100%之间,也可以使用form和to关键字设置,form代表0%,to表示100%例子:@keyframesabc{from{transform:rotate(0)}50%{transform:rotate(90deg)}to{transform:rotate(360deg)}}动画属性1.animation-name属性设置应用于对象的动画名称语法:animation-name:keyframename|无参数说明:keyframename:指定选择器绑定的关键帧的动画名称2.animation-duration属性定义:设置对象动画的时长语法:animation-duration:time参数说明:指定动画所花费的时间对象完成播放,默认值为03.animation-timing-function属性定义:设置对象动画的过渡类型参数说明:同transition-timing-function属性参数4.animation-delay属性定义:设置动画的延迟时间语法:animation-delay:time参数说明:可选值,定义动画开始前的等待时间,以秒或毫秒计,默认值为05.animation-iteration-count属性定义:设置对象动画的循环次数语法:animation-iteration-count:infinite|number参数说明:number为一个数字,默认值为1infinite:无限循环次数是否反向运动备用:正常运动是在反向运动中,它继续交替运行。需要使用循环属性alternate-reverse:反向运动是在正常运动中,一直交替运行。需要和cycle属性一起定义7.animation-play-state属性:指定对象是运行还是暂停语法:animation-play-state:paused|running参数说明:paused:指定暂停动画running:默认值,指定正在运行的动画示例:将鼠标移动到框上暂停动画#box:hover{animation-play-state:paused;}8.animation-fill-mode设置动画结束后的状态none:默认值不设置除对象动画以外的状态,DOM不动画前状态forwards:设置对象状态为动画结束当state为100%或to时,animation-direction设置为reverse时,动画结束后显示为关键帧。第一帧向后:将对象状态设置为动画开始时的状态,(测试表明DOM不是动画开始前的状态)both:将对象的状态设置为结束或开始状态动画,最后的状态优先当元素设置了圆角、阴影、变换等属性时,虽然形状位置发生变化,但元素本身的大小和位置保持不变