×

学习如何用CSS3画不规则图形

作者:ceshi2018.07.24来源:Web前端之家浏览:18956评论:0
关键词:css3不规则

学习如何用CSS3画不规则图形,比如平行四边形导航条、梯形导航条等。

一、平行四边导航条

效果图:

155616p0d64nfz9399y4q7.png

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>平行四边导航条</title>
    <style>
        .keith li {
             list-style: none;
             position: relative;
             display: inline-block;
             padding: 10px 15px;
             color: #fff;
             cursor: pointer;
        }
        .keith li::after {
             content: '';
             position: absolute;
             left: 0;
             right: 0;
             bottom: 0;
             top: 0;
             border-radius: 5px;
             z-index: -1;
             background: #2175BC;
             transform: skewX(-25deg);
        }
        .keith li:hover::after {
            background: #39a3f5;
        }
        </style>
</head>
<body>
    <ul class='keith'>
        <li>首页</li>
        <li>笔记</li>
        <li>问问</li>
        <li>学习</li>
        <li>设置</li>
    </ul>
</body>
</html>

实现思路: 使用css3 的 2D变形中的 skew() 倾斜属性,让伪元素倾斜而不是 li 倾斜,是为了让 l i的文本正常显示。

二、梯形导航条

效果图:
160711k5fl8mc5s08sz590.png
代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>梯形导航条</title>
    <style>
        .keith li {
            list-style: none;
            position: relative;
            display: inline-block;
            padding: 20px 15px 5px 15px;
            margin-left: -10px;
            color: #fff;
            cursor: pointer;
        }
        .keith li::after {
            content: '';
            position: absolute;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: -1;
            background: #2175BC;
            border: 1px solid #fff;
            border-top-right-radius: 8px;
            border-top-left-radius: 8px;
            transform: perspective(0.5em) rotateX(5deg);
            transform-origin: bottom;
        }
        .keith li:hover::after {
            background: #39a3f5;
        }
        </style>
</head>
<body>
    <ul class='keith'>
        <li>首页</li>
        <li>笔记</li>
        <li>问问</li>
        <li>学习</li>
        <li>设置</li>
    </ul>
</body>
</html>

实现思路: 使用css3 3D 变形中的 perspective()、rotateX()、transform-origin。
perspective(): 用于设置用户和元素3D空间Z平面之间的距离,值越小,用户与3D空间Z平面距离越近,视觉效果会明显;反之,值越大,用户与3D空间Z平面距离越远,视觉效果越小。
rotateX(): 3D空间上X轴的旋转
tansform-origin: 指定元素的旋转中心点位置,可以控制梯形倾斜。值为bottom,不倾斜;值为left,左倾斜;值为right,右倾斜。

您的支持是我们创作的动力!
温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/css3osdfispdif.html

网友评论文明上网理性发言 已有0人参与

发表评论: