CSS3学习总结

一、什么是CSS3

  • CSS3是CSS的最新标准。CSS3向后兼容早期的CSS版本。CSS3比CSS有更多优化和新增功能。

  • CSS的具体介绍在我上一篇博客里有详细总结。

二、CSS3前缀

  • CSS3前缀用于区分并兼容各大主流浏览器对于CSS新功能的支持,在属性前面通过添加前缀来实现。

例如,Safari和Chrome的前缀是-webkit

div {
   border :1px solid green;
   -webkit-border-radius: 24px;
}

现今一些常用的浏览器所需前缀如图
在这里插入图片描述

三、圆角

  • 通过border-radius属性可以给任何元素设置“圆角”
div {
   border-radius: 20px;
   background-color: green;
   color: white;
}

效果如图,也就是使本来默认的方形元素的四角不同程度的变成圆角
在这里插入图片描述

  • border-radius的属性也可以通过(左上角,右上角,右下角,左下角)的顺序进行设置。
border-radius: 0 0 20px 20px;
  • 另外,border-radius还可以用来创建一个圆形。当border-radius的属性值设置为正方形元素本身的一半长度的时候,也就是让四角圆角接起来就变成了一个圆形。

四、阴影

  • box-shadow属性可以为元素增加阴影效果。box-shadow的属性值使用的时候必须按顺序设置,
box-shadow: h-shadow v-shadow blur spread color inset;

h-shadow 必需。水平阴影的位置。允许负值。
v-shadow 必需。垂直阴影的位置。允许负值。
blur 可选。模糊距离。
spread 可选。阴影的尺寸。
color 可选。阴影的颜色。请参阅 CSS 颜色值。
inset 可选。将外部阴影 (outset) 改为内部阴影。
各属性值的具体效果大家可以自己去尝试。

  • 阴影的属性值可以选择为负值,例如:
    h-shadow - 阴影将在框的左侧
    v-shadow - 阴影将在框上方
    blur - 不允许使用负值
    spread - 负值会导致阴影缩小
  • 设置多个阴影:可以通过在同一个规则中使用 ","来定义多个阴影。
box-shadow: 0 0 10px 4px #FF6347, 
0 0 10px 30px #FFDAB9, 
30px 0 20px 30px #B0E0E6;
  • 文本阴影:text-shadow属性定义一个或多个以逗号分隔的阴影效果,应用于当前元素的文本内容
    在这里插入图片描述
    对于CSS文本阴影属性,offset-x和offset-y值是必需的。color值不是必需的,但由于文本阴影的默认值是透明的,除非指定颜色值,否则不会显示文本阴影。
    创建多个文本阴影的方法和box-shadow的方法相同,都是使用逗号。

五、伪类

  • CSS3中的伪类允许我们在不适用javascript等脚本的情况下去设置web页面中某些特定的元素的属性。
    伪类通常以 “:”(冒号)开头。:first-child和:last-child是较为常用的伪类。
    :first-child将会匹配该元素中的第一个子元素。
    :last-child则反之,匹配最后一个子元素。
#parent p:first-child {
   color: green;
   text-decoration: underline;   
}

这段代码的意思就是对于p的第一个子元素,实行大括号里的样式方案。

  • 伪元素:伪元素用于选择元素的特定部分。
    在CSS中有五个伪元素,每个都以一个双冒号(::)开头:
    ::first-line- 选择器中文本的第一行
    ::first-letter - 选择器中文本的第一个字母
    ::selection - 选择用户选择的元素部分
    ::before - 在元素之前插入一些内容
    ::after - 在元素之后插入一些内容
p::first-line {
   color: #AE4141;
}
p::selection{
   background: #AE4141;
   color: #fff;
}

代码意思为分别给p中文本的第一行和选择后的文本设置样式。大家可以自行尝试。
而::before和::after作用是在所指定元素的前面和后面添加各种内容。

六、自动换行

  • word-wrap属性允许对长单词进行自动换行处理。
    它的值可以为:
    normal
    break-word
    当设置为break-word的时候,根据字面意思也能知道,就是当装文本的盒子横向装不下长度过长的文本后,就会自动换行。

七、渐变

  • 线性渐变:CSS3渐变(linear-gradient)使您能够显示两个或多个指定颜色之间的平滑过渡。 CSS3定义了两种类型的渐变:线性(Linear)和径向(Radial)。
    为了创建一个线性渐变,你必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以设置一个起点和一个方向(或一个角度)。
div {
   float: left;
   width: 300px; 
   height: 100px;
   margin: 4px;
   color: #FFF;  
   background:linear-gradient(DeepSkyBlue, Black);
}

在这里插入图片描述

  • 渐变方向:渐变的方向是可以被改变的。只需要在渐变颜色前增加想要设置的渐变方向的起始方向就好了。这个方向可以是left,right,bottom,top,还可以是多少deg
background:-webkit-linear-gradient(left, blue, green, white);
background:-webkit-linear-gradient(100deg, blue, green, white);
  • 重复线性渐变 repeat-linear-gradient()函数用于重复线性渐变:
 background:-webkit-repeating-linear-gradient(blue, green 20px);

可以自己尝试

  • 径向渐变:径向渐变是渐变的一种,涉及多个属性值,
background: radial-gradient(shape size at position, start-color, ..., last-color);

shape 确定圆的类型;

size 定义渐变的大小;

position 定义渐变的位置;

start-color, …, last-color 用于指定渐变的起止颜色。

八、背景图

  • 层叠的背景图:CSS3中支持同时使用多个背景图片。
    通过","逗号分隔可以设置多个背景图。 第一个图像将出现在顶部,最后一个在底部
    在下面的例子中,我们有两个背景图片:第一个对齐底部和右侧; 第二个与左上角对齐。
div {
  width: 400px;
  height: 300px;
  background-image: url('https://7nsts.w3cschool.cn/images/w3c/header-logo.png'),url('https://img.w3cschool.cn/attachments/image/20180125/1516870677823170.jpg');
  background-position: right bottom, left top;
  background-repeat: no-repeat;
} 
  • opacity属性:CSS中的opacity属性支持为元素增加一个不透明度。
#img1 {
   opacity: 1;
}
#img2 {
   opacity: 0.5;
}
#img3 {
   opacity: 0.25;
}

opacity的值必须介于(0.0~1.0)之间。0.0(完全透明)、1.0(完全不透明)

九、过渡与转换

  • 转换 (transition) 允许我们在限定的时间内从一个属性值转换到另一个属性值。

    transition-property - 指定要转换的属性
    transition-duration - 指定转换发生的持续时间
    transition-timing-function - 指定转换的速度在其持续时间内如何变化
    transition-delay -指定过渡效果的延迟(以秒为单位)
    在下面的例子中,div元素的宽度和高度都是100px,并有一个红色的背景。 我们为width属性指定了一个过渡效果,持续时间为3秒:

div {
   width: 100px;
   height: 100px;
   background: red;
   color: #fff;
   transition: width 3s;
}
div:hover {
   width: 250px;
}

在这里插入图片描述
在这里插入图片描述
如果您将光标悬停在div元素上,则会从左向右移动。

  • transition-timing-function属性指定过渡效果的速度曲线。
    它可以有以下值:
    ease - 动画开始缓慢,然后加速(默认值)。
    ease-in - 缓步开始,然后加速,突然停止。
    ease-out - 快速启动,但减速停止。
    ease-in-out - 类似于缓解,但更加微妙的加速和减速。
    linear - 匀速转换。

  • 旋转 CSS3中transform(允许您翻转,旋转,缩放和倾斜元素。transform(旋转)是一种让元素更改形状,大小和位置的效果。
    rotate() 方法根据给定的deg顺时针或逆时针旋转一个元素。负值将导致逆时针旋转。
    transform: rotate(15deg);

  • transform-origin属性允许您更改已转换元素的位置。 该属性的默认值是50%50%,对应于元素的中间。
    在下面的例子中,我们将transform-origin属性和transform-rotate一起使用。 x轴(水平)的原点从左侧设定为30%。 y轴(垂直)的原点从上方设定为80%。

div.empty-div {
   position: relative;
   height: 100px;
   width: 100px;
   margin: 30px;
   padding: 10px;
   border: 1px solid black;
}
div.green-div {
   padding: 50px;
   position: absolute;
   background-color: #8bc34a;
   border: 1px solid white;
   transform: rotate(15deg);
   transform-origin: 30% 80%;
}

在这里插入图片描述
0 0与左上相同,100%100%与右下相同。transform-origin属性必须与transform属性一起使用。

  • translate() 方法从当前位置移动一个元素
 transform:translate(120px, 60px);

意思是元素向右移动120px,向下移动60px

  • skew() 也是transform的属性值,通过给元素设置X轴和Y轴的倾斜角度值来实现倾斜。和rotate的旋转不同,skew是倾斜。transform: skew(45deg);

  • **scale()**方法根据已设定的宽度和高度参数来增加或减少元素的大小。 1代表原始尺寸,2代表原始尺寸的两倍,依此类推。transform: scale(0.7, 0.7);

  • 一次可以使用多个转换。 同时旋转和缩放元素的大小就是一个例子。对元素应用多个变换很简单, 只是用空格分开它们。

十、动画

  • @keyframes规则当您在@keyframes规则中指定CSS样式时,动画将在某些时间从当前样式逐渐变为新样式。要使动画起作用,必须将动画绑定到元素。以下示例将更改元素的背景颜色三次:动画完成50%,完成70%,动画完成100%时。
div {
    width: 100px;
    height: 100px;
    background-color: red;
    animation-name: w3cschool;
    animation-duration: 1s;
}
@keyframes w3cschool {
    0%  {background-color: red;}
    50%  {background-color: yellow;}
    70%  {background-color: blue;}
    100% {background-color: green;}
}

animation-name是自己定义的动画名称 ,animation-duration是动画总计的持续时间;@keyframes规则中是规定的具体的动画属性。
在这里插入图片描述

  • (animation-timing-function)动画定时功能指定动画的速度曲线。 它可以有以下值:
    ease - 指定一个慢启动的动画,然后快速,然后慢慢结束(默认值)
    linear - 从开始到结束指定一个具有相同速度的动画
    ease-in - 指定一个慢启动的动画
    ease-out - 指定一个缓慢结束的动画
    ease-in-out - 指定一个缓慢的开始和结束的动画animation-timing-function: linear;
  • animation-delay 定义动画开始之前的延迟。单位秒s
  • animation-iteration-count 属性确定动画重复的次数。animation-iteration-count: 6;
    负数则不会启动
  • animation-direction属性指定如何应用关键帧,值可以设置为:
    normal - 默认值,这意味着它从0%到100%前进。
    reverse - 从100%到0%的相反方向播放关键帧
    alternate - 动画首先向前,然后向后,然后向前。
    alternate reverse - 动画首先倒退,然后前进,然后倒退。
div {
   animation-name: colorchange;
   animation-duration: 4s;
   animation-timing-function: ease-in;
   animation-delay: 2s;
   animation-iteration-count: infinite;
   animation-direction: reverse;
}

这个例子是讲一个命名为colorchange的动画,持续时长为四秒,规定为一个慢启动的动画,开始前延迟两秒,无限重复,然后先倒放再正放再倒放。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值