css实例(一)鼠标hover下拉菜单

简介: 红框标注位置,有一个小尖尖角,这个使用样式是这样实现的。css复制代码

Css我们来实现第一个实例,鼠标hover显示下拉菜单,我们最后要实现的效果如下图所示:

image.png

 

首先放一下所有这次试用的所有html代码:

ini

复制代码

<div class="div-top">
        <div class="box_show">
            <img src="./111.png" alt="" style="margin-left:10px;margin-left: 10px;">
        </div>
        <div class="nav_stacked" >
            <ul class="ul_back">
                <li class="xiaojian"></li>
                <li class="li_style li_style_border">Important</li>
                <li class="li_style li_style_border">Promotions</li>
                <li class="li_style" >Social</li>
            </ul>
        </div>
    </div>

 

然后,我们从最外层开始解释其中的css样式(class类)

1 :最外层div  div-top

css

复制代码

/*最外层div*/
    .div-top{
        margin-left: 100px;
        /*相对定位,这个作用是让菜单显示位置相对于最外层的div的位置显示*/ 
        position: relative;
    }

2 :图片div  box_show

css

复制代码

/*图片div*/
    .box_show{
        width:100px;
        height:100px;
    }

这个div的作用其实不在于设置宽高,设置宽高,我可以直接给img标签变成块级元素,给其设置宽高可能来的更实在一点,起码我是这么认为的。

他的作用更多的是用来控制同级兄弟div的样式。

 

3 :菜单div  nav_stacked

css

复制代码

/*菜单div*/
    .nav_stacked{
        /*默认是不显示的*/
        display:none;
        /*绝对定位显示,相对于最外层的绝对定位显示*/
        position: absolute;
        /*显示位置*/
        top:20px;
        left:-20px;
}
/*鼠标滑过,显示(当然这是指他显示出来之后的事情)*/
    .nav_stacked:hover
    {
        display:block;
    }

4 :图片div的鼠标滑过(hover)事件 box_show:hover

css

复制代码

/*增加同级div的class的样式*/
    .box_show:hover+.nav_stacked{
        display:block;
    }

这个写法 比较有意思,着重了解一下。

到这一步为止,我们就实现了鼠标hover图片div,显示菜单的功能。如下图所示:

image.png

但是现在这个菜单的样式不太好看,我们再继续美化一下菜单的样式

 

5 :菜单ul  ul_back

css

复制代码

/*菜单ul的基本样式*/
    .ul_back{
        /*清除默认样式*/
        list-style: none;
        /*设置宽度*/
        width:100px;
        /*背景色*/
        background-color: #FFF;
        /*边框*/
        border:1px solid #E4E4E4;
        /*去掉默认左边的空白*/
        padding-inline-start:0px;
    }

设置ul最基础的样式

 

6 :li部分的样式  li_style li_style_border

css

复制代码

/*li标签边框样式,不是没有li都有边框,所以,将其单独拿出*/
    .li_style_border{
        border-bottom:1px solid #E4E4E4;
    }
    /*li标签基本样式*/
    .li_style{
        text-align: center;
        padding: 5px;
        color:#333333;
    }
    /*鼠标滑过li的样式*/
    .li_style:hover{
        background-color: #EBF3FE;
        color:#0066FF;
        cursor: pointer;
    }

这里大概说明一下,没个li的样式都不是完全一样的,所以,我将公共样式部分统一写到li_style中,将边框的样式拿出来单写,那个li需要边框,追加上就可以了。

 

7:小尖尖角样式:xiaojian

如下图所示:

image.png

红框标注位置,有一个小尖尖角,这个使用样式是这样实现的。

css

复制代码

/*小尖尖角样式*/
    .xiaojian{
        background-color:#FFF;
        width:10px;
        height:10px;
        border:1px solid #E4E4E4;
        /* 设置相对定位 */
        position:relative;
        /*显示位置*/
        left:43px;
        top:-7px;
        /*旋转小方块45度*/
        transform:rotate(45deg);
        /* 去除右、下边框 */
        border-right:0px;
        border-bottom:0px;
    }

 

最终,上边的代码写在一起,就形成了我们最开始想要完成的效果图。

测试使用全部源码:

xml

复制代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    body{
        background-color: beige;
    }
    /*去除A标签默认样式*/
    a{
        text-decoration: none;
    }
    /*最外层div*/
    .div-top{
        margin-left: 100px;
        /*对定位,这个作用是让菜单显示位置相对于最外层的div的位置显示*/ 
        position: relative;
    }
    /*图片div*/
    .box_show{
        width:100px;
        height:100px;
    }
    /*增加同级div的class的样式*/
    .box_show:hover+.nav_stacked{
        display:block;
    }
    /*菜单div*/
    .nav_stacked{
        /*默认是不显示的*/
        display:none;
        /*绝对定位显示,相对于最外层的绝对定位显示*/
        position: absolute;
        /*显示位置*/
        top:20px;
        left:-20px;
    }
    /*菜单ul的基本样式*/
    .ul_back{
        /*清除默认样式*/
        list-style: none;
        /*设置宽度*/
        width:100px;
        /*背景色*/
        background-color: #FFF;
        /*边框*/
        border:1px solid #E4E4E4;
        /*去掉默认左边的空白*/
        padding-inline-start:0px;
    }
    /*鼠标滑过,显示*/
    .nav_stacked:hover
    {
        display:block;
    }
    /*li标签边框样式,不是没有li都有边框,所以,将其单独拿出*/
    .li_style_border{
        border-bottom:1px solid #E4E4E4;
    }
    /*li标签基本样式*/
    .li_style{
        text-align: center;
        padding: 5px;
        color:#333333;
    }
    /*鼠标滑过li的样式*/
    .li_style:hover{
        background-color: #EBF3FE;
        color:#0066FF;
        cursor: pointer;
    }
    /*小尖尖角样式*/
    .xiaojian{
        background-color:#FFF;
        width:10px;
        height:10px;
        border:1px solid #E4E4E4;
        /* 设置相对定位 */
        position:relative;
        /*显示位置*/
        left:43px;
        top:-7px;
        /*旋转小方块45度*/
        transform:rotate(45deg);
        /* 去除右、下边框 */
        border-right:0px;
        border-bottom:0px;
    }
</style>
<body>
    <div class="div-top">
        <div class="box_show">
            <img src="./111.png" alt="" style="margin-left:10px;margin-left: 10px;">
        </div>
        <div class="nav_stacked" >
            <ul class="ul_back">
                <li class="xiaojian"></li>
                <li class="li_style li_style_border">Important</li>
                <li class="li_style li_style_border">Promotions</li>
                <li class="li_style" >Social</li>
            </ul>
        </div>
    </div>
</body>
</html>

文末有实例,可下载。

有好的建议,请在下方输入你的评论。

原文链接:点击这里,走你

欢迎访问个人博客:guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
8月前
|
前端开发 JavaScript 开发者
这个被忽略的CSS:hover隐藏用法,让交互设计师都跪了
本文详细介绍了CSS中的伪类选择器`:hover`及其应用。`:hover`用于定义鼠标悬停在元素上时的样式,常见于超链接、按钮等交互场景。文章通过多个实例演示了`:hover`不仅可控制当前元素,还能影响其子元素或后代元素,但通常不适用于兄弟元素。此外,还分享了如何避免`:hover`导致的布局抖动问题,如提前设置透明边框。最后,结合实际案例展示了如何利用`:hover`实现复杂的交互效果,例如三级菜单,帮助开发者更好地掌握这一实用技巧。
441 1
这个被忽略的CSS:hover隐藏用法,让交互设计师都跪了
|
8月前
|
前端开发
CSS3实现的九宫格图片鼠标悬停去除遮罩层源码
CSS3实现的九宫格图片鼠标悬停去除遮罩层源码
67 0
CSS3实现的九宫格图片鼠标悬停去除遮罩层源码
|
前端开发
CSS3:hover&demo
本文介绍了CSS中`hover`伪类的基本用法,包括改变元素自身样式、影响子元素及相邻或后续兄弟元素样式的技巧。同时,还探讨了`:before`和`:after`伪元素的使用方法,以及如何通过CSS实现边框流动效果、创建登录页面、设计轮盘游戏界面和平滑处理文本溢出等实用案例。每个示例都配有代码块,便于理解和实践。
310 4
|
前端开发 UED
如何使用css给一个盒子加上好看的hover阴影效果
如何使用css给一个盒子加上好看的hover阴影效果
332 1
|
前端开发
CSS中如何实现鼠标悬停效果?
CSS中如何实现鼠标悬停效果?
191 0
|
前端开发
导航栏也时尚:CSS缩放动画,让导航链接在鼠标经过时绽放!
导航栏也时尚:CSS缩放动画,让导航链接在鼠标经过时绽放!
|
前端开发 Ubuntu Linux
CSS 修改鼠标图标样式
CSS 修改鼠标图标样式
195 0
|
前端开发 UED
HTML和CSS动画:为鼠标经过效果注入灵魂!附源码!
HTML和CSS动画:为鼠标经过效果注入灵魂!附源码!
|
前端开发
导航栏也疯狂:CSS动画让导航栏活起来,跟随鼠标滑动!
导航栏也疯狂:CSS动画让导航栏活起来,跟随鼠标滑动!

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    199
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    205
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    147
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    124
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    254
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    370
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    161
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    98
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    171
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    233