首页 > 其他分享 >CSS实现下拉框

CSS实现下拉框

时间:2022-09-22 23:24:09浏览次数:60  
标签:em solid dropdown 实现 color background border 下拉框 CSS

主要使用position的绝对定位absolute来做。

<!doctype html>
<head>
  <style>
    body {
      font-family: Helvetica, Arial, sans-serif;
      min-height: 200vh;
      margin: 0;
    }

    .container {
      width: 80%;
      max-width: 1000px;
      margin: 1em auto
    }

    .dropdown {
      display: inline-block;
      position: relative;
    }

    .dropdown-label {
      padding: 0.5em 1.5em;
      border: 1px solid #ccc;
      background-color: #eee;
    }

    .dropdown-menu {
      display: none;
      position: absolute;
      left: 0;
      top: 2.1em;
      min-width: 100%;
      background-color: #eee;
    }
    .dropdown:hover .dropdown-menu {
      display: block;
    }

    .submenu {
      padding-left: 0;
      margin: 0;
      list-style-type: none;
      border: 1px solid #999;
    }

    .submenu > li + li {
      border-top: 1px solid #999;
    }

    .submenu > li > a {
      display: block;
      padding: 0.5em 1.5em;
      background-color: #eee;
      color: #369;
      text-decoration: none;
    }

    .submenu > li > a:hover {
      background-color: #fff;
    }

  </style>
</head>

<body>

  <div class="container">
    <nav>
      <div class="dropdown">
        <div class="dropdown-label">Main Menu</div>
        <div class="dropdown-menu">
          <ul class="submenu">
            <li><a href="/">Home</a></li>
            <li><a href="/coffees">Coffees</a></li>
            <li><a href="/brewers">Brewers</a></li>
            <li><a href="/specials">Specials</a></li>
            <li><a href="/about">About us</a></li>
          </ul>
        </div>
      </div>
    </nav>

  </div>
</body>

以上代码实现了下拉框的功能但是在用户体验上还是有些欠缺,添加一个三角形来提高用户体验。

修改以下代码:

<style>
    .dropdown-label {
      padding: 0.5em 2em 0.5em 1.5em; /* 给右边的三角形预留位置 */
      border: 1px solid #ccc;
      background-color: #eee;
    }
</style>

添加以下代码:

.dropdown-label::after{
      content: "";
      position: absolute;
      right: 1em;
      top: 1em;
      border: 0.3em solid; /* 构造三角形 */
      border-color: black transparent transparent;
    }
    .dropdown:hover .dropdown-label::after{
      top:0.7em; /* 鼠标停留三角形稍微上移 */
      border: transparent transparent black;
    }

最终效果

dropdownmenu.gif

标签:em,solid,dropdown,实现,color,background,border,下拉框,CSS
From: https://www.cnblogs.com/tiger-yam/p/16721180.html

相关文章

  • SpringBoot实现自定义注解
    SpringBoot支持我们开发者能够自定义注解,从而实现一些项目中遇到的特定问题,这个功能不知道用过的小伙伴们多不多,反正我是用得不多,但是使用之后就会发现,实在是太便捷了,配合......
  • js实现数组内相邻元素上移,下移
    上移、下移/**   *移动切换位置   *@param{Array}arr数据源   *@param{Number}index序号   *@param{String}type上移下移......
  • day03-代码实现02
    多用户即时通讯系统034.编码实现024.2功能实现-拉取在线用户4.2.1思路分析客户端想要知道在线用户列表,就要向服务器发送请求(Message),因为只有服务器端保持着所有与客......
  • echarts图表过程,显示滚动条并实现滚轮滚动
    letdataZoom=[{id:'dataZoomY',yAxisIndex:[0],show:true,//是否显示滑动条,不影响使用type:'slider',//......
  • java实现设置Excel下拉框
    在使用Excel的时候用到了下拉框,实现的效果如下↓   在生成excel文件时,需要根据给出的下拉框选项列表动态生成下拉框。实现代码如下:privatevoidcreateSelect(XSS......
  • 如何优雅实现分布式锁-Redisson
    1、引入jar包<!--引入redis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>......
  • 【前端】js实现JSON字符串格式化显示
    一、效果二、代码JSON.parse:把JSON字符串转换为JSON对象JSON.stringify:把JSON对象转换为有缩进的JSON字符串格式<!--JSON格式化工具--><template><divcl......
  • 纯前端实现「羊了个羊」小游戏
    纯前端实现「羊了个羊」小游戏......
  • css实现马赛克画板
    background:linear-gradient(45deg,rgba(0,0,0,.2)25%,transparent0,transparent75%,rgba(0,0,0,.2)0),linear-gradient(45deg,rgba(0,0,0,.2)25%,tran......
  • 一段式SM3算法的实现
    C语言#pragmaonce//C语言实现的一段式SM3算法#include<stdio.h>#include<memory>//定义初始值IV,初始值IV是一个常数unsignedcharIV[256/8]{0x73,0x80......