网页制作 
首页 > 网页制作 > 浏览文章

CSS实现3D书本效果的示例代码

(编辑:jimmy 日期: 2024/11/6 浏览:3 次 )

话不多说,先来看一下效果图

CSS实现3D书本效果的示例代码

源代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    *{
        margin: 0;
        padding: 0;
    }
    body{
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 100vh;
        background: #333333;
        background-size: cover;
    }
    .book{
        width: 400px;
        height: 600px;
        position: relative;
        background-color: #ffffff;
        transform: rotate(-37.5deg) skewX(10deg);
        box-shadow: -35px 35px 50px rgb(0,0, 0, 1);
        transition: 0.5s;
        /* 光标呈现为指示链接的指针(一只手) */
        cursor: pointer;
    }
    .book:hover{
        /* rotate 定义 2D 旋转,在参数中规定角度。 */
        /* skewX()定义沿着 X 轴的 2D 倾斜转换。
            translate(x,y) 定义 2D 转换。
          */
        transform: rotate(-37.5deg) skewX(10deg) translate(20px,-20px);
        /* box-shadow 向框添加一个或多个阴影 */
        box-shadow: -50px 50px 100px rgba(0,0,0,1);
    }
    /* 伪元素必须配合content进行使用,至少为空 */
    .book::before{
        content:'';
        height:100%;
        width:30px;
        background: red;
        position: absolute;
        top: 0;
        left: 0;
        transform: skewY(-45deg) translate(-30px,-15px); 
        box-shadow: inset -10px 0 20px raba(0,0,0,0,2);
        background: url(cofe.jpg);
    }
    .book::after{
            content: '';
            height: 30px;
            width: 100%;
            background: #fff;
            position: absolute;
            bottom: 0;
            left: 0;
            transform: skewX(-45deg) translate(15px,30px);
            background: url(cofe.jpg);

    }
    .book h2{
        position: absolute;
        bottom: 100px;
        left: 10px;
        font-size: 5em;
        line-height: 1em;
        color: rgb(110, 21, 21);
    }
    .book h2 span{
        background-image: url(cofe.jpg);
        background-attachment: fixed;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }
    .book .write i{
        font-weight: 700;
    }
    .book .cover{
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 70%;
        background-image: url(cofe.jpg);
        background-size: cover;
    }


</style>


<body>
    <div class="book">
        <div class="cover"></div>
        <h2>Book <span>javascript</span></h2>
        <span class="wirte"> written by fans</span>
    </div>
</body>
</html>

总结

上一篇:CSS中的float和margin的混合使用示例代码
下一篇:修复一个因为scrollbar占据空间导致的bug问题