• 纯css实现圆柱体-超简单!


    写在前面的话:

        在日常的工作中遇到一个需求,需要用圆柱体来表现每个项目的比例,首先想到的会事使用echarts中的柱状图来表现,但是为了一个圆柱体引用那么庞大的js库有点不合时宜的味道。其次是想到使用canvas画布工具里封装一个小插件供系统使用,可是要百度啥的,目前俺还不是很能熟练使用canvas,而且考虑再三之后使用纯css 是可以满足目前的开发要求的。

    正文:

    首先定义结构:

    点击查看代码
    <div class="lui-column-bg">
                <div class="lui-inner" style="height: 50%;">
                </div>
            </div>

    .lui-column-bg 用来做父容器其中的.lui-inner 作为子容器其高度和父容器的高度的百分比作为 项目比。

    其次是css,使用伪类元素before和after作为圆柱的上下底面。使用渐变的背景使得圆柱体更加立体一点。

    点击查看代码
    .lui-column-bg {
                position: relative;
                 50px;
                height: 90px;
                margin: 100px auto;
                background-color: transparent;
                background-color: rgba(0, 199, 159, 0.2);
            }
            .lui-column-bg:before {
                position: absolute;
                content: '';
                display: block;
                height: 20px;
                 100%;
                border-radius: 50%;
                top: -10.5px;
                z-index: 1;
                background-color: rgb(101 221 197);
            }
    
            .lui-column-bg:after {
                position: absolute;
                content: '';
                display: block;
                height: 15px;
                 100%;
                border-radius: 50%;
                bottom: -10px;
                background-color: rgb(0, 255, 204);
            }
    
            .lui-inner {
                position: absolute;
                bottom: 0;
                 100%;
                height: 50%;
                background-image: linear-gradient(to top, rgb(0, 255, 204), rgb(0, 199, 159));
                text-align: center;
            }
            .lui-inner::before {
                position: absolute;
                content: '';
                display: block;
                height: 20px;
                 100%;
                background-color: rgb(0, 199, 159);
                border-radius: 50%;
                top: -10.5px;
                z-index: 1;
            }
            .lui-inner:after {
                position: absolute;
                content: '';
                display: block;
                height: 15px;
                 100%;
                border-radius: 50%;
                background-color: white;
                bottom: -10px;
            }

    效果如下:

    最后附上完整的代码:

    点击查看代码
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>css实现圆柱体</title>
        <style>
            .lui-column-bg {
                position: relative;
                 50px;
                height: 90px;
                margin: 100px auto;
                background-color: transparent;
                background-color: rgba(0, 199, 159, 0.2);
            }
            .lui-column-bg:before {
                position: absolute;
                content: '';
                display: block;
                height: 20px;
                 100%;
                border-radius: 50%;
                top: -10.5px;
                z-index: 1;
                background-color: rgb(101 221 197);
            }
    
            .lui-column-bg:after {
                position: absolute;
                content: '';
                display: block;
                height: 15px;
                 100%;
                border-radius: 50%;
                bottom: -10px;
                background-color: rgb(0, 255, 204);
            }
    
            .lui-inner {
                position: absolute;
                bottom: 0;
                 100%;
                height: 50%;
                background-image: linear-gradient(to top, rgb(0, 255, 204), rgb(0, 199, 159));
                text-align: center;
            }
            .lui-inner::before {
                position: absolute;
                content: '';
                display: block;
                height: 20px;
                 100%;
                background-color: rgb(0, 199, 159);
                border-radius: 50%;
                top: -10.5px;
                z-index: 1;
            }
            .lui-inner:after {
                position: absolute;
                content: '';
                display: block;
                height: 15px;
                 100%;
                border-radius: 50%;
                background-color: white;
                bottom: -10px;
            }
    
    
        </style>
    </head>
    
    <body>
        <div class="lui-column-bg">
                <div class="lui-inner" style="height: 50%;">
                </div>
            </div>
    
    </body>
    
    </html>

    感觉还可以的话留下你的赞是对我最大的鼓励@_@

    本文来自博客园,作者:七分暖,转载请注明原文链接:https://www.cnblogs.com/lin494910940/p/15101341.html

  • 相关阅读:
    C++ map的基本操作和用法
    堆排序汇总
    gdb调试多进程和多线程命令
    Linux内存分配机制
    svn 修改文件的可执行权限
    proc/sys/net/ipv4/下各项的意义
    linux read()和write
    ps命令参数
    /etc/passwd- 和/etc/shadow-文件
    openssh源码分析笔记
  • 原文地址:https://www.cnblogs.com/lin494910940/p/15101341.html
Copyright © 2020-2023  润新知