上一篇:12.CSS学习(三)
CSS3是CSS(层叠样式表)技术的升级版本,于1999年开始制订,2001年5月23日W3C完成了CSS3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块css3优点
E F
,后代选择器。它可以选择E后面的所有的F元素(子元素、孙子、重孙子…)
E > F
,选择匹配的F元素,并且匹配的F元素是E的子元素。
子选择器只能选择儿子辈的。
E+F
,兄弟相邻选择器,选择匹配的F元素且匹配的F元素位于匹配的E元素的后面(同辈的,兄弟)。
E~F
,兄弟选择器,选择匹配的F元素,且位于匹配的E元素后面的所有的F元素都会被匹配上。
这里属性指的是HTML标签的属性
E[attr]
,选择匹配具有attr属性的E元素。
E[attr='val']
,选择匹配具有attr属性的E元素并且attr对应的值为val。
E[attr*='val']
,选择匹配E元素,且E元素定义了attr,并且任意位置包含val
E[attr^='val']
,选择匹配的E元素,且E元素定义了attr并且val在值的开头的位置。
E[attr$='val']
,选择匹配的E元素,且E元素定义了attr并且val在值的结尾的位置。
正则表达式中
^
和$
也是用来表示以xxx开头,以xxx结尾。
E:first-child
, 选择父元素的第一个子元素并且元素为E的元素。
E:first-of-type
,选择父元素中第一个出现的E元素。
E:last-child
,选择父元素的最后一个子元素,且元素为E。
E:last-of-type
,选择父元素最后一个E元素。
E:nth-child(n)
E:nth-of-type(n)
n的值可以是数字、关键字、公式
数字
关键字
公式
必须得用n。你可以写为3n。3、6、9…
E:focus
,选择匹配的E元素,且匹配的元素获得焦点的时候。
E:target
,选择匹配的E元素,且E元素被锚点指向。
E:checked
,用在单选、复选框,被选中的时候生效。
E::before
,选择匹配的E元素,在E元素的内部插入内容(在开始标签后面插入内容)E::after
,选择匹配的E元素,在E元素的内部插入内容(在结束标签前面插入内容)在E::before
和E::after
中需要使用content属性来插入内容(这种方式是使用CSS来插入,而不是HTML标记插入)
content:值
url(图像地址)
,插入一张图片attr(属性名)
,将标签的某个属性名对应的值作为内容插入__注意: __
元素边框的叫是直,可以使用border-radius属性把角变的圆滑一些。
格式:border-radius:value
,同时应用在四个角上
生成的原理:生成了指定水平半径和垂直半径的圆形或椭圆形。
格式2:border-radius:左上\右下 右上\左下
格式3:border-radius:左上 右上、左下 右下
格式4:border-radius:左上 右上 右下 左下
格式5:border-top-left-radius
格式6:border-top-right-radius
格式7:border-bottom-right-radius
格式8:border-bottom-left-radius
我坚信一句话“使你痛苦的,必将使你强大”,只要消除心理阴影,就是全新的自己
在CSS3中提供了两种阴影效果:文本阴影与盒子阴影
text-shadow:none | length{2,3} color;
可以设定多组效果,每组参数值以逗号分隔
text-shadow: 水平偏移量 垂直偏移量 阴影模糊值 颜色(rgba),
水平偏移量 垂直偏移量 阴影模糊值 颜色(rgba),
水平偏移量 垂直偏移量 阴影模糊值 颜色(rgba);
h1{
font-size: 60px;
line-height: 120px;
text-align: center;
background-color: #000;
color: #ccc;
text-shadow: 2px 2px red, 4px 4px blue,6px 6px green;
text-shadow: -2px -2px 2px #999, -4px -4px 2px #666;
text-shadow: 0 0 20px rgba(209,12,212,1), 0 0 40px rgba(209,12,212,.8), 0 0 60px rgba(209,12,212,.6), 0 0 80px rgba(209,12,212,.4);
}
box-shadow:none | length{2,4} color inset;
可以设定多组效果,每组参数值以逗号分隔
text-shadow: 水平偏移量 垂直偏移量 阴影模糊值 阴影外延值 颜色(rgba),
水平偏移量 垂直偏移量 阴影模糊值 阴影外延值 颜色(rgba),
水平偏移量 垂直偏移量 阴影模糊值 阴影外延值 颜色(rgba);
div{
width: 400px;
height: 140px;
background-color: #eee;
margin: 50px auto;
box-shadow: 5px 5px 10px green;
box-shadow: 5px 5px 10px 2px blue, 10px 10px 20px 4px pink;
box-shadow: 0 0 50px 10px pink inset;
}
在CSS3中 background 新增了一些属性设置
background-size: length | percentage | cover | contain;
background-origin:border-box | padding-box | content-box;
background-clip:border-box | padding-box | content-box | text;
CSS3允许在元素上添加多个背景图,用逗号隔开
div {
background-image: url(01.png), url(02.png);
background-position: left top, left bottom;
background-repeat: no-repeat, repeat;
}
div {
background: url(01.png) left top no-repeat, url(02.png) left bottom repeat;
}
滤镜主要用来实现图像元素的各种效果
语法:filter: value
value的值有以下几种:
none
默认值,没有效果blur()
模糊度,0为不模糊,使用px作为单位,值越大越模糊grayscale()
灰度,值为0时没有变化,值为1时完全变成灰度图像opacity()
透明度,0表示完全透明,1表示不对元素做任何修改sepia()
深褐色,为0时没有变化,为1是全褐色invert()
反向处理像素,为0时没有变化,为1时颜色反转brightness()
亮度,0%为纯黑色,100%元素没有变化,大于100%比元素原有的亮度更亮contrast()
对比度,为0%时变成纯灰色,为100%时没有变化,大于100%时才会得到更大的对比度saturate()
饱和度,为0%时得到灰色,为100%时没有变化,大于100%时才会得到更大的饱和度filter: blur(2px) grayscale(0.5);
filter: opacity();
一般用在图像元素上opacity: 0.5;
用于设置元素的文本和背景的透明度,通常用在淡入淡出动画上rgba(0,0,0,0.5)
用于设置背景透明,里面的内容不透明(如 遮罩图层)linear-gradient(direction, color-stop1, color-stop2, ...);
to bottom
,默认,从上到下to top
,从下到上to left
,从右到左to right
,从左到右to left top
,从右下角到左上角to left bottom
,从右上角到左下角to right top
,从左下角到右上角to right bottom
,从左上角到右下角div{
width: 500px;
height: 200px;
border: 1px solid #000;
margin: 20px auto;
background: linear-gradient(red,blue);
background: linear-gradient(to right bottom,red,blue);
background: linear-gradient(to right,red 0%,blue 100%);
background: linear-gradient(to right,red 25%,blue 50%,green 75%);
}
radial-gradient(shape size at position, color-stop1, color-stop2, ...);
shape
参数定义了形状,circle 表示圆形,ellipse 表示椭圆形size
参数定义了渐变的大小,如果是一个值,值为半径,得到的是圆形渐变;如果是两个值,第一个值为椭圆的宽度的一半,第二个值为椭圆的高度的一半,得到的是椭圆形渐变at position
置径向渐变的中心点位置,默认在元素中心 at center centerdiv{
width: 400px;
height: 200px;
border: 1px solid #000;
margin: 20px auto;
background: radial-gradient(#fff,#000);
background: radial-gradient(circle 120px,#fff,#000);
background: radial-gradient(150px at 50px 50px,#fff,#000);
background: radial-gradient(ellipse 200px 80px,red 50%,blue 80%);
}
在线调试工具:
div{
background: repeating-linear-gradient(to right,red,blue,green 33.333%);
background: repeating-radial-gradient(red,blue 18%);
}
过渡是元素从一种样式逐渐改变为另一种样式的效果
transition-property:all | none | property1,property2 ...;
transition-duration:time[ ,time ]...;
transition-timing-function:effect;
transition-delay:time[ ,time ]...;
transition: property duration timing-function delay;
transition: all 0.5s ease-in 0.1s;
动画是元素的样式逐帧改变,连续播放形成的活动影像
@keyframes 动画名称{
/* 动画起始帧 */
from { Properties:Properties value; }
/* 动画过程帧 */
Percentage { Properties:Properties value; }
/* 动画结束帧 */
to { Properties:Properties value; }
}
/* 示例 */
@keyframes move{
0% { margin-left: 100px; background: green; }
40% { margin-left: 150px; background: orange; }
60% { margin-left: 75px; background: blue; }
100% { margin-left: 100px; background: red; }
}
animation-name: move;
animation-duration: time;
animation-timing-function: effect;
animation-delay: time;
animation-iteration-count: 2;
animation-direction: normal;
animation-fill-mode: forwards | backwards | both ;
animation-play-state: paused | running ;
animation: name || duration || timing-function || delay || iteration-count || direction || fill-mode || play-state
/* 示例: */
div { animation: move 5s linear 0.5s infinite reverse forwards; }
项目中混合使用:translate:scale(0.8,0.8)rotate (45deg) // 直接拼接写属性即可
transform-origin: x y z;
默认为中心点 center center
transform-origin: center center;
transform-origin: 50px 50px;
transform-origin: left top;
transform-origin: 50% 50%;
transform-style: preserve-3d;
在父级设置,对相应变化的子元素使用3D效果perspective: number | none;
定义 3D 元素距视角点的距离(视距 景深概念)
perspective-origin: x y;
设置 3D 元素的视角点位置
backface-visibility: visible | hidden;
下一篇:14.CSS学习(五)
友情推荐:全栈大佬笔记 Android领域肥宅