第四篇《CSS3新特性》

1.前言

css3这个相信大家不陌生了,是个非常有趣,神奇的东西!有了css3,js都可以少写很多!我之前也写过关于css3的文章,也封装过css3的一些小动画。个人觉得css3不难,但是很难用得好,用得顺手,最近我也在过一遍css3的一些新特性(不是全部,是我在工作上常用的,或者觉得有用的),以及一些实例,就写了这一篇总结!希望,这篇文章能帮到大家认识css3。写这篇文章主要是让大家能了解css3的一些新特性,以及基础的用法,感觉css3的魅力!如果想要用好css3,这个得靠大家继续努力学习,寻找一些讲得更深入的文章或者书籍了!如果大家有什么其他特性推荐的,欢迎补充!大家一起学习,进步!

看这篇文章,代码可以不用看得过于仔细!这里主要是想让大家了解css3的新特性!代码也是很基础的用法。我给出代码主要是让大家在浏览器运行一下,让大家参考和调试。不要只看代码,只看代码的话,不会知道哪个代码有什么作用的,建议边看效果边看代码。

2.过渡

过渡,是我在项目里面用得最多的一个特性了!也相信是很多人用得最多的一个例子!我平常使用就是想让一些交互效果(主要是hover动画),变得生动一些,不会显得那么生硬!好了,下面进入正文!

引用菜鸟教程的说法:CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。要实现这一点,必须规定两项内容:指定要添加效果的CSS属性指定效果的持续时间。

2-1语法

transition: CSS属性,花费时间,效果曲线(默认ease),延迟时间(默认0)

栗子1

/*宽度从原始值到制定值的一个过渡,运动曲线ease,运动时间0.5秒,0.2秒后执行过渡*/
transition:width,.5s,ease,.2s

栗子2

/*所有属性从原始值到制定值的一个过渡,运动曲线ease,运动时间0.5秒*/
transition:all,.5s

上面栗子是简写模式,也可以分开写各个属性(这个在下面就不再重复了)

transition-property: width;
transition-duration: 1s;
transition-timing-function: linear;
transition-delay: 2s;

3.动画

动画这个平常用的也很多,主要是做一个预设的动画。和一些页面交互的动画效果,结果和过渡应该一样,让页面不会那么生硬!

3-1.语法

animation:动画名称,一个周期花费时间,运动曲线(默认ease),动画延迟(默认0),播放次数(默认1),是否反向播放动画(默认normal),是否暂停动画(默认running)

栗子1

/*执行一次logo2-line动画,运动时间2秒,运动曲线为 linear*/
animation: logo2-line 2s linear;

栗子2

/*2秒后开始执行一次logo2-line动画,运动时间2秒,运动曲线为 linear*/
animation: logo2-line 2s linear 2s;

栗子3

/*无限执行logo2-line动画,每次运动时间2秒,运动曲线为 linear,并且执行反向动画*/
animation: logo2-line 2s linear alternate infinite;

还有一个重要属性

animation-fill-mode : none | forwards | backwards | both;
/*none:不改变默认行为。    
forwards :当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。    
backwards:在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。 
both:向前和向后填充模式都被应用。  */      

4.形状转换

这一部分,分2d转换和3d转换。有什么好玩的,下面列举几个!

4-1.语法

transform:适用于2D或3D转换的元素
transform-origin:转换元素的位置(围绕那个点进行转换)。默认(x,y,z):(50%,50%,0)

5.选择器

css3提供的选择器可以让我们的开发,更加方便!这个大家都要了解。下面是css3提供的选择器。
在这里插入图片描述
图片来自w3c。这一块建议大家去w3c看(CSS 选择器参考手册),那里的例子通俗易懂。我不重复讲了。
提供的选择器里面,基本都挺好用的。但是我觉得有些不会很常用,比如,:root,:empty,:target,:enabled,:checked。而且几个不推荐使用,网上的说法是性能较差[attribute*=value],[attribute$=value],[attribute^=value],这个我没用过,不太清楚。

6.阴影

以前没有css3的时候,或者需要兼容低版本浏览器的时候,阴影只能用图片实现,但是现在不需要,css3就提供了!

6-1.语法

box-shadow: 水平阴影的位置 垂直阴影的位置 模糊距离 阴影的大小 阴影的颜色 阴影开始方向(默认是从里往外,设置inset就是从外往里);

7.边框

7-1.边框图片

7-1-1.语法

border-image: 图片url 图像边界向内偏移 图像边界的宽度(默认为边框的宽度) 用于指定在边框外部绘制偏移的量(默认0) 铺满方式–重复(repeat)、拉伸(stretch)或铺满(round)(默认:拉伸(stretch));

7-2.边框圆角

7-2-1.语法
border-radius: n1,n2,n3,n4;
border-radius: n1,n2,n3,n4/n1,n2,n3,n4;
/*n1-n4四个值的顺序是:左上角,右上角,右下角,左下角。*/

8.背景

这一块主要讲css3提供背景的三个属性

background-clip

制定背景绘制(显示)区域
默认情况(从边框开始绘制)
从padding开始绘制(显示),不算border,,相当于把border那里的背景给裁剪掉!(background-clip: padding-box;)
只在内容区绘制(显示),不算padding和border,相当于把padding和border那里的背景给裁剪掉!(background-clip: content-box;)

9.反射

这个也可以说是倒影,用起来也挺有趣的。

9-1.语法

-webkit-box-reflect:方向[ above-| below-| right-| left-],偏移量,遮罩图片

10.文字

换行

语法:word-break: normal|break-all|keep-all;
栗子和运行效果
在这里插入图片描述
语法:word-wrap: normal|break-word;
栗子和运行效果
在这里插入图片描述
超出省略号这个,主要讲text-overflow这个属性,我直接讲实例的原因是text-overflow的三个写法,clip|ellipsis|string。clip这个方式处理不美观,不优雅。string只在火狐兼容。
在这里插入图片描述

超出省略号

这个其实有三行代码,禁止换行,超出隐藏,超出省略号

div
{
    width:200px; 
    border:1px solid #000000;
    overflow:hidden;
    white-space:nowrap; 
    text-overflow:ellipsis;
}

多行超出省略号

<style> 
div
{
    width:400px;
    margin:0 auto;
    overflow : hidden;
    border:1px solid #ccc;
    text-overflow: ellipsis;
    padding:0 10px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height:30px;
    height:60px;
}
</style>

文字阴影

语法:text-shadow:水平阴影,垂直阴影,模糊的距离,以及阴影的颜色。
栗子:text-shadow: 0 0 10px #f00;​

11.颜色

这个其实就是css3提供了新的颜色表示方法。

rgba

一个是rgba(rgb为颜色值,a为透明度)

color: rgba(255,00,00,1);
background: rgba(00,00,00,.5);

hsla

h:色相”,“s:饱和度”,“l:亮度”,“a:透明度”
这个我姿势了解过,没用过,这里简单给一个例子

color: hsla( 112, 72%, 33%, 0.68);
background-color: hsla( 49, 65%, 60%, 0.68);

12.渐变

css3的渐变可以说是一大亮点,提供了线性渐变,径向渐变,圆锥渐变(w3c和菜鸟教程都没有提及,是我从一篇文章了解到,但是我自己在谷歌浏览器尝试,却是一个无效的写法!大家如果知道怎么用,请告知!感谢)
渐变这一部分,由于用法灵活,功能也强大,这个写起来很长,写一点又感觉没什么意思,我这里贴几个链接教程给大家,在文章我不多说了,毕竟我也是从那几个地方学的,他们写得也是比我好,比我详细!
CSS3 Gradient
再说CSS3渐变——线性渐变
再说CSS3渐变——径向渐变
神奇的 conic-gradient 圆锥渐变(这篇就是看我看到圆锥渐变的文章)

13.Filter(滤镜)

css3的滤镜也是一个亮点,功能强大,写法也灵活。

14.弹性布局

这里说的弹性布局,就是flex;这一块要讲的话,必须要全部讲完,不讲完没什么意思,反而会把大家搞蒙!讲完也是很长,所以,这里我也只贴教程网址。博客讲的很好,很详细!
Flex 布局教程:语法篇
Flex 布局教程:实例篇

15.栅格布局

栅格化布局,就是grid;这一块和flex一样,要讲就必须讲完。这块的内容和flex差不多,也有点长,这里我也贴链接,这个链接讲得也很详细!
Grid布局指南

16.多列布局

这一块,我也是了解过,我觉得多列应该还是挺有用的。虽然我没在项目中用过,下面我简单说下!举个例子!这个属性,建议加私有前缀,兼容性有待提高!
html

<div class="newspaper">
当我年轻的时候,我梦想改变这个世界;当我成熟以后,我发现我不能够改变这个世界,我将目光缩短了些,决定只改变我的国家;当我进入暮年以后,我发现我不能够改变我们的国家,我的最后愿望仅仅是改变一下我的家庭,但是,这也不可能。当我现在躺在床上,行将就木时,我突然意识到:如果一开始我仅仅去改变我自己,然后,我可能改变我的家庭;在家人的帮助和鼓励下,我可能为国家做一些事情;然后,谁知道呢?我甚至可能改变这个世界。
</div>

css

.newspaper
{
    column-count: 3;
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-rule:2px solid #000;
    -webkit-column-rule:2px solid #000;
    -mox-column-rule:2px solid #000;
}    

在这里插入图片描述

17.盒模型定义

box-sizing这个属性,网上说法是:属性允许您以特定的方式定义匹配某个区域的特定元素。
这个大家看着可能不知道在说什么,简单粗暴的理解就是:box-sizing:border-box的时候,边框和padding包含在元素的宽高之内!如下图
在这里插入图片描述
box-sizing:content-box的时候,边框和padding不包含在元素的宽高之内!如下图
在这里插入图片描述

18.媒体查询

媒体查询,就在监听屏幕尺寸的变化,在不同尺寸的时候显示不同的样式!在做响应式的网站里面,是必不可少的一环!不过由于我最近的项目都是使用rem布局。所以媒体查询就没怎么用了!但是,媒体查询,还是很值得一看的!说不定哪一天就需要用上了!
栗子代码如下

<style>
body {
    background-color: pink;
}
@media screen and (max-width: 960px) {
    body {
        background-color: darkgoldenrod;
    }
}
@media screen and (max-width: 480px) {
    body {
        background-color: lightgreen;
    }
}
</style>

19.混合模式

混合模式,就像photoshop里面的混合模式!这一块,我了解过,在项目上没用过,但是我觉得这个应该不会没有用武之地!
css3的混合模式,两个(background-blend-mode和mix-blend-mode)。这两个写法和显示效果都非常像!区别就在于background-blend-mode是用于同一个元素的背景图片和背景颜色的。mix-blend-mode用于一个元素的背景图片或者颜色和子元素的。看以下代码,区别就出来了!
这一块图片很多,大家看图片快速扫一眼,看下什么效果就好!

background-blend-mode

mix-blend-mode

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼叔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值