在CSS3中新增了很多的新特性,其中使用频率比较高的应该是动画效果了,它可以帮助我们实现以前使用Javascript才能实现的效果,极大的提高网页的性能。今天这篇文章我们就来一起看一个使用CSS3新特性完成的翻书效果吧。
本文的源码已经放在了Github上,感兴趣的可以clone到本地试试,地址如下。
https://github.com/zhouxiongking/article-pages/blob/master/articles/rollPage/rollPage.html
CSS3
首先我们来看看实际的运行效果,动态图如下所示。
效果图
在看到上述的效果图后,我们来进行分析,这个过程是如何实现的。
这个页面我们通过一个ul包含三个li来实现,每个li都给一个固定的宽度和高度。
第一个li在页面上静止不动。
第二个li添加动画效果,使其直接绕Y轴翻转360度。
第三个li添加动画效果,但是翻转周期是在25%的时候开始,因此会有一种翻书的速度差异感。
上面的步骤分析完后就剩下最重要的一个过程,那就是给外层的ul元素添加perspective属性,这个属性是决定这个动画能不能实现的主要的因素。
perspective是CSS3中新增的属性,表示的是设置某个元素被查看的视角,用于实现3D效果。
需要注意的是当某个元素设置了perspective属性时,其子元素会获得透视效果,而不是这个元素本身。
我们来看一个简单的例子,有一个section父元素和一个div子元素,让div元素旋转45度,html元素如下。
html元素
其对应的CSS属性如下。
CSS属性
在section元素上,如果不使用perspective的情况下,得到效果如下图所示。
效果图1
如果给section元素加上perspective属性,并设定600px时,得到的效果图如下。
效果图
通过以上两幅图的对比我们发现,两幅图在Y轴的视角上发生了变化。
接下来,我们来具体看看这个翻书效果的代码实现。
通过之前的分析,我们知道这个效果是通过ul与li来实现的,html部分代码如下。
HTML代码
首先看看ul与li的基本css属性,记住这里需要给ul元素添加perspective属性。
基本CSS属性
然后是给第二个li添加动画。
第二个li的css属性
最后是给第三个li添加动画。
第三个li的css属性
注意到上面的代码中有个25%和100%的设置,这个和第二个li不同,所以会有一种翻转书页快慢的差异感。
如果按照上述代码来做,即可实现文章开始的翻书动画效果。
今天这篇文章主要是通过CSS3新增的属性实现了一个翻书动画效果,大家学会了吗?
在CSS3中新增了很多的新特性,其中使用频率比较高的应该是动画效果了,它可以帮助我们实现以前使用Javascript才能实现的效果,极大的提高网页的性能。今天这篇文章我们就来一起看一个使用CSS3新特性完成的翻书效果吧。
本文的源码已经放在了Github上,感兴趣的可以clone到本地试试,地址如下。
https://github.com/zhouxiongking/article-pages/blob/master/articles/rollPage/rollPage.html
CSS3
首先我们来看看实际的运行效果,动态图如下所示。
效果图
在看到上述的效果图后,我们来进行分析,这个过程是如何实现的。
这个页面我们通过一个ul包含三个li来实现,每个li都给一个固定的宽度和高度。
第一个li在页面上静止不动。
第二个li添加动画效果,使其直接绕Y轴翻转360度。
第三个li添加动画效果,但是翻转周期是在25%的时候开始,因此会有一种翻书的速度差异感。
上面的步骤分析完后就剩下最重要的一个过程,那就是给外层的ul元素添加perspective属性,这个属性是决定这个动画能不能实现的主要的因素。
perspective是CSS3中新增的属性,表示的是设置某个元素被查看的视角,用于实现3D效果。
需要注意的是当某个元素设置了perspective属性时,其子元素会获得透视效果,而不是这个元素本身。
我们来看一个简单的例子,有一个section父元素和一个div子元素,让div元素旋转45度,html元素如下。
html元素
其对应的CSS属性如下。
CSS属性
在section元素上,如果不使用perspective的情况下,得到效果如下图所示。
效果图1
如果给section元素加上perspective属性,并设定600px时,得到的效果图如下。
效果图
通过以上两幅图的对比我们发现,两幅图在Y轴的视角上发生了变化。
接下来,我们来具体看看这个翻书效果的代码实现。
通过之前的分析,我们知道这个效果是通过ul与li来实现的,html部分代码如下。
HTML代码
首先看看ul与li的基本css属性,记住这里需要给ul元素添加perspective属性。
基本CSS属性
然后是给第二个li添加动画。
第二个li的css属性
最后是给第三个li添加动画。
第三个li的css属性
注意到上面的代码中有个25%和100%的设置,这个和第二个li不同,所以会有一种翻转书页快慢的差异感。
如果按照上述代码来做,即可实现文章开始的翻书动画效果。
今天这篇文章主要是通过CSS3新增的属性实现了一个翻书动画效果,大家学会了吗?
SS3中包含几个新的文本特征。
在我这里您将了解以下文本属性:
text-shadow
box-shadow
text-overflow
word-wrap
word-break
浏览器支持
属性 | |||||
---|---|---|---|---|---|
text-shadow | 4.0 | 10.0 | 3.5 | 4.0 | 9.5 |
box-shadow | 10.04.0 -webkit- | 9.0 | 4.03.5 -moz- | 5.13.1 -webkit- | 10.5 |
text-overflow | 4.0 | 6.0 | 7.0 | 3.1 | 11.09.0 -o- |
word-wrap | 23.0 | 5.5 | 3.5 | 6.1 | 12.1 |
word-break | 4.0 | 5.5 | 15.0 | 3.1 | 15.0 |
CSS3 的文本阴影
CSS3 中,text-shadow属性适用于文本阴影。
您指定了水平阴影,垂直阴影,模糊的距离,以及阴影的颜色:
实例
给标题添加阴影:
h1{text-shadow:5px5px5px#FF0000;}
CSS3 box-shadow属性
CSS3 中 CSS3 box-shadow 属性适用于盒子阴影
实例
div{box-shadow:10px10px;}
接下来给阴影添加颜色
实例
div{box-shadow:10px10pxgrey;}
接下来给阴影添加一个模糊效果
实例
div{box-shadow:10px10px5pxgrey;}
尝试一下 »
你也可以在 ::before 和 ::after 两个伪元素中添加阴影效果
实例
#boxshadow{position:relative; box-shadow:1px2px4pxrgba(0, 0, 0, .5); padding:10px; background:white;}#boxshadowimg{width:100%; border:1pxsolid#8a4419; border-style:inset;}#boxshadow::after{content: ''; position:absolute; z-index: -1; /* hide shadow behind image */box-shadow:015px20pxrgba(0, 0, 0, 0.3); width:70%; left:15%; /* one half of the remaining 30% */height:100px; bottom:0;}
阴影的一个使用特例是卡片效果
实例
div.card{width:250px; box-shadow:04px8px0rgba(0, 0, 0, 0.2), 06px20px0rgba(0, 0, 0, 0.19); text-align:center;}
文字卡片 » 图片卡片 »
CSS3 Text Overflow属性
CSS3文本溢出属性指定应向用户如何显示溢出内容
实例
p.test1{white-space:nowrap; width:200px; border:1pxsolid#000000; overflow:hidden; text-overflow:clip; }p.test2{white-space:nowrap; width:200px; border:1pxsolid#000000; overflow:hidden; text-overflow:ellipsis; }
尝试一下 »
CSS3的换行
如果某个单词太长,不适合在一个区域内,它扩展到外面:
CSS3中,自动换行属性允许您强制文本换行 - 即使这意味着分裂它中间的一个字:
CSS代码如下:
实例
允许长文本换行:
p{word-wrap:break-word;}
尝试一下 »
CSS3 单词拆分换行
CSS3 单词拆分换行属性指定换行规则:
CSS代码如下:
实例
p.test1{word-break:keep-all;}p.test2{word-break:break-all;}
尝试一下 »
新文本属性
属性 | 描述 | CSS |
---|---|---|
hanging-punctuation | 规定标点字符是否位于线框之外。 | 3 |
punctuation-trim | 规定是否对标点字符进行修剪。 | 3 |
text-align-last | 设置如何对齐最后一行或紧挨着强制换行符之前的行。 | 3 |
text-emphasis | 向元素的文本应用重点标记以及重点标记的前景色。 | 3 |
text-justify | 规定当 text-align 设置为 "justify" 时所使用的对齐方法。 | 3 |
text-outline | 规定文本的轮廓。 | 3 |
text-overflow | 规定当文本溢出包含元素时发生的事情。 | 3 |
text-shadow | 向文本添加阴影。 | 3 |
text-wrap | 规定文本的换行规则。 | 3 |
word-break | 规定非中日韩文本的换行规则。 | 3 |
word-wrap | 允许对长的不可分割的单词进行分割并换行到下一行。 |
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
*请认真填写需求信息,我们会在24小时内与您取得联系。