怎样使用CSS3实现书页(书本)卷角效果

我们有时候想在页面显示一个公告或用户提示信息。

一个经常使用设计是使用书签形状。

我们能够给书签加入卷角效果。以使其更为逼真。所谓的“卷角”实际上能够用小角度倾斜的阴影效果来模拟。

用CSS3的伪元素实现这个效果非常easy。

先给出一个实例。我们在WOW网站页面左边栏实现了例如以下的效果(红框内):

我们再来看看详细实现。

首先创建一个div元素容纳文本信息(能够包括很多其它元素),class取名为“狗耳朵”也就是卷角的意思:

<div class="dog-eared-tip">put your tips here</div>

然后编写例如以下的CSS代码:

.dog-eared-tip{
    padding: 7.5px 5px 7.5px 20px;
    background: #DEAA2F;
    font-size: 13px;
    position: absolute;
    text-align: center;
    width: 100%;
    color: black;
}
.dog-eared_tip:before, .work_tip:after {
    content: "";
    position: absolute;
    z-index: -2;
    -moz-transform: rotate(-3deg);
    -webkit-transform: rotate(-3deg);
    -o-transform: rotate(-3deg);
    -ms-transform: rotate(-3deg);
    transform: rotate(-3deg);
    bottom: 15px;
    box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7);
    height: 50%;
    left: 10px;
    max-height: 100px;
    max-width: 300px;
    width: 50%;
}
.dog-eared_tip:after {
    -moz-transform: rotate(3deg);
    -webkit-transform: rotate(3deg);
    -o-transform: rotate(3deg);
    -ms-transform: rotate(3deg);    
    transform: rotate(3deg);
    left: auto;
    right: 10px;
}

上面的代码首先设置了div的经常使用样式如底色、字体、居中、边距等。

然后为该div的:before和:after伪元素设置框阴影(box-shadow)和小角度旋转(rotate方法),

并把before和after的位置放在div的底部,而且z序列为负数。这种实际效果就是伪元素本身被div所遮挡。可是刚好使得其外围阴影部分露出底部。

注意,这里请记得不要给div设置overflow不可见的样式。否则阴影不可见。

基本上好了,还差最后一步,两边阴影的倾斜度在物理学上是对称的,所以我们还须要调整一下:after伪元素的倾斜角度(-3°调整为3°)。

这样:before相应于标签的左下边角。:after相应于标签的右下边角的卷曲阴影。

本例在IE11/Chrome/FF/Edge下能够工作。

你还能够使用CSS3中的伪类:hover和transition属性。在本例基础上加入鼠标悬停效果,

也就是当用户悬停在书页上时。呈现卷角被缓缓抚平的效果,我们把这个称之为“会呼吸的纸”。

详细可參考WOW首页的实现

by iefreer

时间: 2024-08-01 16:47:45

怎样使用CSS3实现书页(书本)卷角效果的相关文章

如何使用CSS3实现书页(书本)卷角效果

我们有时候想在页面显示一个公告或用户提示信息.一个常用设计是使用书签形状. 我们可以给书签添加卷角效果,以使其更为逼真.所谓的"卷角"实际上可以用小角度倾斜的阴影效果来模拟. 用CSS3的伪元素实现这个效果很容易. 先给出一个实例,我们在WOW站点页面左边栏实现了如下的效果(红框内): 我们再来看看具体实现. 首先创建一个div元素容纳文本信息(可以包含更多元素),class取名为"狗耳朵"也就是卷角的意思: <div class="dog-eare

CSS3卷角

众所周知,border-radius 属性可以用来设置圆角,但很少人知道它还可以做很多不规则的犄角.卷角(rounded corners) 工作原理: 一.独立属性:border-bottom-left-radius, border-bottom-right-radius, border-top-left-radius, border-top-right-radius 语法 border-*-*-radius: [ <length> | <%> ] [ <length>

CSS3样式linear-gradient的使用(切角效果)

linear-gradient linear-gradient是CSS3中新增的样式,主要用于颜色的渐变效果.MDN地址 linear-gradient在不同内核下使用方式不同,详细内容可参考w3cplus 实用栗子(在Chrome下) 缺角效果先看效果图 <div class="div1"> 这是内容 </div> .div1 { width: 100px; height: 40px; line-height: 40px; background:linear-

CSS3实战开发: 折角效果实战开发

<!DOCTYPE html> <html> <head> <meta charset="utf-9"> <meta name="keywords" content="css,css3,实战互联网,教程"> <meta name="description" content="css3实现折角效果,折角效果,css3实战尽在实战互联网" >

CSS3实战开发:手把手教大家折角效果实战开发

各位网友,大家好,我是陌上花会开,今天这篇文章,我将手把手教大家如何开发一套纯CSS的折角效果.一如往常,我不提供代码下载,但是我可以保证,只要将教程中的代码复制到本地,绝对百分百获得与我演示的效果一样,希望各位明白我的用意. 好了,直接开始今天的教程吧.首先,我先给大家演示一下今天实战案例的效果: 有人会说这是什么?这就是我们今天的实战开发,我将带领大家开发上图中的右上角折叠效果. 在我讲解完之前,有些人可能觉得很难,不可思议.我想跟你们说:真的so easy.下面就请跟着我的分解步骤一步步学

css3 折角效果

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>折角效果</title> <style type="text/css"> div { width: 300px; height: 200px; background: #333; position: relative; } div:before { content:

CSS3图片折角效果

本篇文章由:http://xinpure.com/css3-picture-angle-effect/ 图片折角效果主要是通过设置 border 属性实现的效果 效果预览 效果解析 假设我们将一个元素的 width .height 都设置为0,然后再将 border 设置为 80px,上下和左右边框分别为两种不同的颜色 即: width: 0; height: 0; border: 80px solid; border-color: #00a67c #333; 这时我们可以看到,四条边框像四个三

纯CSS3实现的一些酷炫效果

纯CSS3实现的一些酷炫效果 之前在网上看到一些用纯CSS3实现的酷炫效果,以为实现起来比较困难,于是想看看具体是怎么实现的. 一.笑脸猫动画 实现效果如下: 这个实现起来确实比较麻烦,很多地方需要花时间,有耐心地调整. 1.先看下页面结构: <body> <div class="container"> <!-- 脸 --> <div class="face"> <!-- 头发 --> <div cl

[CSS揭秘]切角效果

将角切掉也是一种流行的设计风格 传统解决方案可能是使用三角形或者其他形状的图片来盖住边角从而模拟切角效果 有了CSS3,我们完全可以使用新技术来实现 第一种方案: CSS渐变 需求一: 一个矩形需要切掉一个45°角 使用线性渐变来实现 background: #58a linear-gradient(-45deg, transparent 15px, #58a 0); 在渐变中,如果指定stop距离为0则表示与前一个stop的距离一样,所以从15px开始往后都是#58a 效果如下 需求二: 一个