css3 怎么做出像纸张翻页的效果

html-css017

css3 怎么做出像纸张翻页的效果,第1张

用css3制作纸张效果

一、中规中矩的效果

所谓“中规中矩的效果”就是加个投影,贴个胶带什么的。效果如下:

CSS3的box-shadow投影效果,相关代码如下:

代码如下:

-moz-box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.2)-webkit-box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.2)box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.2)

反而是上面的胶带纸效果有点说头,这些微微倾斜的胶带是CSS写出来的,大部分效果源自CSS3,主要有RGBA显示半透明背景色,box-shadow显示淡淡的投影,transform做旋转效果;元素使用after伪类生成,完整代码如下:

代码如下:

.page:after { width: 180pxheight: 30pxcontent: " "margin-left: -90pxborder: 1px solid rgba(200, 200, 200, .8)background: rgba(254, 254, 254, .6)-moz-box-shadow: 0px 0 3px rgba(0, 0, 0, 0.1)-webkit-box-shadow: 0px 0 3px rgba(0, 0, 0, 0.1)box-shadow: 0px 0 3px rgba(0, 0, 0, 0.1)-moz-transform: rotate(-5deg)-webkit-transform: rotate(-5deg)-o-transform: rotate(-5deg)transform: rotate(-5deg)position: absoluteleft: 50%top: -15px}

老外似乎很喜欢使用before和after伪类,国外最近的些教程,技术点等经常见到此玩意。我个人感觉有跟风之嫌,就像是狂热的经济泡沫,不需 要太久,大家会冷静下来重新审视这些曾经上手简单,自我感觉不错的方法。由于目前IE6/7不支持before/after类,所以,某种意义上来说,伪 类的使用少了些兼顾IE下显示的烦恼。

二、外翻卷角纸张效果

纸张一般都是有卷角的,所以,我们可以更近一步,模拟卷角效果来使得纸张的感觉更逼真,这里就要借助于投影了,且是曲线投影。

我们还可以给纸张增加渐变(gradient)效果,以模拟纸张的曲度。

同时,可以给文字增加投影,可以让文字有书写的凹陷感,可以进一步让纸张效果更逼真。

于是,在“中规中矩”纸张基础上,我们做点小手术,结果得到下面的效果:

您可以狠狠地点击这里:渐变卷边纸张效果demo

目前貌似opera浏览器还不支持CSS3渐变,同时webkit核心下浏览器下的gradient渐变的写法已经开始向FireFox浏览器靠拢了。确实,都是CSS3,有必要搞得五花八门吗?

相关渐变CSS代码如下:

代码如下:

background:-moz-linear-gradient(top, #f4f39e, #f5da41 60%, #fe6)background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#f4f39e), to(#fe6), color-stop(.6, #f5da41))

在60%的位置有个颜色拐点。

关于弧形的投影,也是使用:before/:after伪类实现的,相关代码如下:

代码如下:

.page:before { -webkit-transform: skew(-15deg) rotate(-5deg)-moz-transform: skew(-15deg) rotate(-5deg)-o-transform: skew(-15deg) rotate(-5deg)transform: skew(-15deg) rotate(-5deg)left: 15px} .page:after { -webkit-transform: skew(15deg) rotate(5deg)-moz-transform: skew(15deg) rotate(5deg)-o-transform: skew(15deg) rotate(5deg)transform: skew(15deg) rotate(5deg)right: 15px} .page:before, .page:after { width: 90%height: 20%content: ' '-webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3)-moz-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3)box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3)position: absolutebottom: 22pxz-index: -1}

要想查看效果的完整代码,demo页面查看源文件即可,脱光光,一览无遗。

这里的曲线投影卷角效果支持Opera浏览器,如下截图:

三、带分隔线的卷纸纸张效果

上面的纸张卷角效果是通过曲线投影效果来模拟的,而这里,纸张的卷边效果是纸张真的“曲线化”了,而且,还是带隔线的纸张效果哦,您可以参见下面的效果截图(Chrome 9):

这里,Firefox浏览器下的纸张隔线使用的是重复渐变(Repeating Gradients)实现的,对于webkit浏览器,使用的是background-size实现的。实际上,Firefox3.6+已经支持background-size属性了(-moz-background-size), 所以,对于Firefox浏览器,这里使用重复渐变与渐变+background-size是等效的。在FireFox4以及IE9浏览器中 background-size属性已经没有私有属性了,Opera浏览器在9.5版本时候就已经支持background-size属性了,但是存在一 些bug。

这里分隔线实现的相关CSS如下:

代码如下:

background: -moz-repeating-linear-gradient( top, #fcf59b, #fcf59b 29px, #81cbbc 30px )background: -webkit-gradient( linear, left top, left bottom, from(#81cbbc), color-stop(2%, #fcf59b) )background: repeating-linear-gradient( top, #fcf59b, #fcf59b 29px, #81cbbc 30px )-webkit-background-size: 100% 30px

而对于曲边的实现,使用的是border-radius圆角,这里展示下示意的代码:

代码如下:

border-bottom-left-radius: 20px 500pxborder-bottom-right-radius: 500px 30pxborder-top-right-radius: 5px 100px

当然,FireFox浏览器下的写法不是如此,其bottom, left是连起来的,而不是”-”分隔,这里仅仅是示意,这里的微曲线是如何实现的。相信看到上面的代码就知道意思了,这里就不啰嗦了。

还有其他些细节,如如何控制行高让文字与隔线一一对应,这些您要是有兴趣可以去demo页面,通过查看元素等方法一看究竟。

四、最后点老生常谈

难免的,本文的重点在于CSS3,所以就本文而言,IE6/IE7/IE8浏览器就是过来打酱油的,且三个纸张效果从一而终,都是下面这副模样:

虽然没有透明胶效果,没有投影,没有卷边,更没有分隔线,但是,就功能上来讲,一点都不影响使用。所以,无论你是渐进增强还是退求其次,纸张投影效果在实际项目中的应该也不是不可以的,这就要看个人和团队的抉择了。

1、文本样式的设置

字体:可以在下拉菜单种选择相应的字体。大小:大小就是字号,可以直接填入数字,然后选择单位。样式:设置文字的外观,包括正常、斜体、偏斜体。行高:这项设置在网页制作种很常用。设置行高,可以选择“正常”,让计算机自动调整行高,也可以使用数值和单位结合的形式自行设置。需要注意的是,单位应该和文字的单位一致,行高的数值是包括字号数值在内的。例如,文字设置为12pt,如果要创建一倍行距,则行高应该为24pt。变量:在英文种,大写字母的字号一般比较大,采用“变量”中的“小型大写字母”设置,可以缩小大写字母。颜色:设置文字的色彩。

2、背景样式的设置

背景颜色:选择固定色作为背景。背景图像:直接填写背景图像的路径,或单击“浏览”按钮找到背景图像的位置。重复:在使用图像作为背景的时,可以使用此项设置背景图像的重复方式,包括“不重复”、“重复”、“横向重复”、和“纵向重复“。附件:选择图像做背景的时候,可以设置图像是否跟随网页一同滚动。水平位置:设置水平方向的位置,可以“左对齐“右对齐”、“居中”。还可以设置数值与单位结合表示位置的方式,比较常用的是像素单位。垂直位置:可以选择“顶部”、“底部”、“居中”。还可以设置数值和单位结合表示位置的方式。

3、区块样式设置

单词间距“英文单词之间的距离,一般选择默认设置。字母间距:设置英文字母间距,使用正值为增加字母间距,使用负值为减小字母间距。垂直对齐:设置对象的垂直对齐方式。文本对齐:设置文本的水平对齐方式。文字缩进:这是最重要的项目。中文文字的首行缩进就是由它来实现的。首先填入具体的数值,然后选择单位。文字的缩进和字号要保持统一。如字号为12px,像创建两个中文自的缩进效果,文字缩进就应该为18px。空格:对源代码文字空格的控制。选择“正常”,忽略源代码文字之间的所有空格。选择“保留”,将保留源代码中所有的空格形式,包括由空格键、Tab键、Enter键创建的空格。显示:制定是否以及如何显示元素。选择“无”则关闭它被制定给的元素的显示。在实际控制中很少使用。

4、方框样式的设置

宽:通过数值和单位设置对象的宽度。高:通过设置和单位设置对象的高度。

浮动:实际就是文字等对象的环绕效果。选择“右对齐”、对象居右。文字等内容从另外一侧环绕对象。选择“左对齐”。对象居左,文字等内容从另一侧环绕。“无”取消环绕效果。

清除:规定对象的一侧不许有层。可以通过选择“左对齐”、“右对齐”,选择不允许出现层的一侧。如果在清除层的一侧有层,对象将自动移到层的下面。“两者”是指左右都不允许出现层。“无”是不限制层的出现。

“填充”和“边界”:如果对象设置了边框,“填充”是指边框和其中内容之间的空白区域;“边界”是指边框外侧的空白区域。

5、边框样式设置

宽度:设置4个方向边框的宽度。可以选择相对值:细、中、粗。也可以设置边框的宽度值和单位。

颜色:设置边框对应的颜色,如果选中“全部相同”复选框,则其他方向的设置都与“上”相同。

6、列表样式设置

类型:设置引导列表项目的符号类型。可以选择圆点、圆圈、方块、数字、小写罗马数字、大写罗马数字、小写字母、大写字母、无列表符号等。

项目符号图像:可以选择图像作为项目的引导符号,单击右侧的“浏览”按钮,找到图像文件即可。选择ul标签可以对整个列表应用设置,选中li标签可对单独的项目应用。

位置:决定列表项目缩进的程度。选择“外”,列表贴近左侧边框,选择“内”,列表缩进。这项设置效果不明显。

7、扩展样式的设置

CSS样式还可以实现一些扩展功能,这些功能集中在扩展面板上。这个面板主要包括3种效果:分页、光标和过滤器。在CSS规则定义”对话框左侧选择“扩展”项,可以在右边区域设置CSS样式的扩展格式。

分页:通过样式来为网页添加分页符号。允许用户指定在某元素前或后进行分页。分页的概念是打印网页种的内容时在某指定的位置停止,然后将接下来的内容继续打印在下一页纸上。

光标:通过样式改变鼠标形状,鼠标放置于被此项设置修饰的区域上的时,形状会发生改变。具体的形状包括:Hand(手)、crosshair(交叉十字)、text(文本选择符号)、wait(Windows的沙漏形状)、default(默认的鼠标形状)、help(带问号的鼠标)、e-resize(向东的箭头)、ne-resize(指向东北方的箭头)、n-resize(向北的箭头)、nw-resize(指向西北的箭头)、w-resize(向西的箭头)、sw-resize(向西南的箭头)、s-resize(向南的箭头)、se-resize(向东南的箭头)、auto(正常鼠标)。)

css油橄榄精华好用。根据查询相关公开信息得知,css橄榄精华最绝的就是,添加了三种抗氧化成分,油橄榄叶提取物也在其中,凝胶质地,上脸好推开,不仅好用,而且还挺耐用,算下来一次才几块钱,拯救一次皮肤状态,可以说是非常超值了。