×

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

作者:ceshi2018.07.24来源:Web前端之家浏览:1997评论: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前端之家编辑修改或补充,转载请注明出处和本文链接:
http://www.jiangweishan.com/article/css3osdfispdif.html

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

发表评论:

最新留言

  • 访客

    alert('哈哈')...

  • admin

    可以的...

  • 前端面试题

    你好,可以换一下链接吗?...

  • admin

    关于微信小程序,后面会出一些文章的,请关注网站更新。。。...

  • webred

    博主可以分享点小程序的文章......

  • 访客

    可以用。...

  • admin

    可以的,可以联系下QQ,或者加群。...

  • admin

    可以的,可以联系下QQ,或者加群。...

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2013-2018 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.5.2 Zero