css记录写一个奇怪的按钮

完成作业的时候发现一个很有意思的按钮,记录一下记录一下


看看界面

可以看出是一个奇形怪状的按钮,而且在按下的时候,图片和文字的颜色会改变

尝试解决

html 复制代码
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>尝试</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <div class="name">
        <div class="outside-circle">outside-circle</div>
        <div class="outside-circle">outside-circle</div>
        <div class="outside-circle">outside-circle</div>
    </div>
  
</body>>
</html>
css 复制代码
/* 通用选择器,匹配HTML文档中的所有元素 */
*{
    margin: 0px;
    padding: 0px;
    width: 100%;
    height: 100%;
    box-sizing: border-box;  /*宽度和高度会包括内边距和边框*/

}

.name{
    width: 600px;
    height: 900px;
    display: flex;
    flex-direction: column;

}


.outside-circle{
    position:relative;
    background:transparent;
    border-radius: 150px 0px 0px 150px;
    
    &::before{
    content:"";
    position:absolute;
    width:150px;
    height:150px;
    /* left:-20px; */
    right: 0;
    bottom:300px;
    background:#000;
    background:radial-gradient(circle at 0 0, transparent 150px, transparent 150px);
    }
    &::after{
    content: "";
    position: absolute;
    width: 150px;
    height: 150px;
    /* right: -20px; */
    right: 0;
    bottom: -150px;
    background: #000;
    background:radial-gradient(circle at 0 100%, transparent 150px, transparent 150px);
    }
}
.outside-circle:hover{
    background-color: #47b05e;
    &::before{
       
        
        background:radial-gradient(circle at 0 0, transparent 150px, #47b05e 21px);
    }
    &::after{
       
        background:radial-gradient(circle at 0 100%, transparent 150px, #47b05e 21px);
    }
}

 

效果如下

可以看出基本实现了大致的外轮廓

接下来是图片

尝试了很多种方法,有一种是说改变其阴影的位置和颜色,但是我没能实现,也许下次可以再尝试一下

这里我直接找到两张一样的图片,除了颜色,然后在hover的时候改变图片,大致结果如下:

最后的代码

html 复制代码
<!DOCTYPE html>
<html lang="zh-cn">

<!-- 头部 -->
<head>
    <!-- 指定网页的字符编码方式 -->
    <meta charset="UTF-8">
    <title>权限设置</title>
    <link rel="stylesheet" href="css/test.css">
</head>


<!-- 主要部分 -->
<body>
    <div id="main-left">
        <!-- 左边上面的那个蓝框以及logo -->
        <div class="left-top">
            
        </div>
        <!-- 左边下面的那些按钮 -->
        <div class="button-container">
            <div class="button-con">
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/首页before.png">
                            <img class="hav" src="img/首页after.png">
                        </div>
                        <div class="pic-msg">
                            首页
                        </div>
                    </div>
                </div>
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/内容管理before.png">
                            <img class="hav" src="img/内容管理after.png">
                        </div>
                        <div class="pic-msg">
                                内容管理
                        </div>
                    </div>
                </div>
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/咨询管理before.png">
                            <img class="hav" src="img/咨询管理after.png">
                        </div>
                        <div class="pic-msg">
                            咨询管理
                        </div>
                    </div>
                </div>
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/产品管理before.png">
                            <img class="hav" src="img/产品管理after.png">
                        </div>
                        <div class="pic-msg">
                            产品管理
                        </div>
                    </div>
                </div>
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/广告管理before.png">
                            <img class="hav" src="img/广告管理after.png">
                        </div>
                        <div class="pic-msg">
                                广告管理
                        </div>
                    </div>
                </div>
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/图库before.png">
                            <img class="hav" src="img/图库after.png">
                        </div>
                        <div class="pic-msg">
                            图库
                        </div>
                    </div>
                </div>
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/留言管理before.png">
                            <img class="hav" src="img/留言管理after.png">
                        </div>
                        <div class="pic-msg">
                            留言管理
                        </div>
                    </div>
                </div>
                <div class="outside-circle">
                    <div class="buttun-pic">
                        <div class="pic">
                            <img class="nor" src="img/设置before.png">
                            <img class="hav" src="img/设置before.png">
                        </div>
                        <div class="pic-msg">
                            设置
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

</body>


</html>
css 复制代码
/* 通用选择器,匹配HTML文档中的所有元素 */
*{
    margin: 0px;
    padding: 0px;
    width: 100%;
    height: 100%;
}


/* ID选择器 */
#main{
    display: flex;
    flex-direction: row; /* 主轴方向为水平 */
    margin: 0;
    width: 100%;
    height: 100%;
   
}

#main-left{
    width: 16.7%;
    background-color: rgb(255, 255, 255); 
    box-shadow: 2px 4px 10px #d8e6f4; 
    z-index: 3;
}

#main-right{
    background-color: aqua;
}



/* 类选择器 */
.left-top{
    display: flex;
    justify-content: center; /* 水平居中 */
    align-items: center; /* 垂直居中 */
    margin: 0;
    border-bottom-right-radius: 30px;
    border-top-right-radius: 3px;
    height: 14.2%;
    background-color:#1485fe;
    z-index: 2;
    box-shadow: 2px 4px 10px #c2cfdc;
}

.left-top img{
    height: 65%;
    width: 80% ;
    
}

.button-container {
    padding-top: 20%;
    display: flex; /* 使用flexbox布局 */
    flex-direction: column; /* 主轴方向为水平 */
    height: 60%;
    justify-content: space-between; /* 按钮在容器内平均分布 */
    align-items: center; /* 按钮垂直居中对齐 */
  }
  
button {
    padding: 5px 10px;
    background-color: #40464d;
    color: #fff;
    border: none;
    cursor: pointer;
}

.button-container {
    margin-top: 20%;
    display: flex; /* 使用flexbox布局 */
    flex-direction: row-reverse; /* 主轴方向为水平 */
    height: 60%;
    justify-content: space-between; /* 按钮在容器内平均分布 */
    align-items: center; /* 按钮垂直居中对齐 */
    background-color: transparent;
}
.button-con{
    display: flex;
    flex-direction: column;
    width: 90%;
    height: 100%;
    background-color:transparent ;
}
.outside-circle{
    position:relative;
    background:transparent;
    border-radius: 30px 0px 0px 30px;
    
    &::before{
    content:"";
    position:absolute;
    width:30px;
    height:30px;
    /* left:-20px; */
    right: 0;
    bottom:55px;
    background:#000;
    background:radial-gradient(circle at 0 0, transparent 30px, transparent 30px);
    }
    &::after{
    content: "";
    position: absolute;
    width: 30px;
    height: 30px;
    /* right: -20px; */
    right: 0;
    bottom: -30px;
    background: #000;
    background:radial-gradient(circle at 0 100%, transparent 30px, transparent 30px);
    }
}
.outside-circle:hover{
    color: #ffffff;

    background-color: #1485fe;
    &::before{      
        background:radial-gradient(circle at 0 0, transparent 30px,#1485fe  30px);
    }
    &::after{   
        background:radial-gradient(circle at 0 100%, transparent 30px, #1485fe 30px);
    }
}
.buttun-pic{
    .nor{ display: block;}
    .hav{ display: none;}
    &:hover{
        .nor{ display: none;}
        .hav{ display: block;}
    }
    display: flex;
    align-items: center;
    justify-content: space-around;
    background-color: transparent;
}
.pic{
   
    width: 20px;
    height: 20px;
    background-color: transparent;
}

.pic-msg{
    text-align: left;
    line-height: 40px;
    width: 50%;
    height: 70%;
    color: rgb(95, 95, 95);
    
}
.pic-msg:hover{
    color: #ffffff;
}

  

结果


好像还是很丑啊,hahahaha

相关推荐
hackeroink7 分钟前
【2024版】最新推荐好用的XSS漏洞扫描利用工具_xss扫描工具
前端·xss
迷雾漫步者2 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
向前看-2 小时前
验证码机制
前端·后端
燃先生._.3 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
高山我梦口香糖4 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
唯之为之4 小时前
巧用mask属性创建一个纯CSS图标库
css·svg
m0_748235244 小时前
前端实现获取后端返回的文件流并下载
前端·状态模式
m0_748240255 小时前
前端如何检测用户登录状态是否过期
前端
black^sugar5 小时前
纯前端实现更新检测
开发语言·前端·javascript