网站首页 > 知识剖析 正文
大家好,今天我们来分享一下用纯CSS实现下拉菜单效果的方法,首先我们看下效果图,如果你看过上一期的内容(CSS之垂直导航条)那么你就会发现,两者的外观主题基本一样,只不过结构稍微有些差别,所以今天我们主要讲构造,样式详解请参考上期内容
1.首先创建一个多层导航列表,本次只选取列表项中“Services”和“Products”两项为例。
2.基本设置:首先清除内边距和外边距,去掉列表默认的项目符号,关闭链接文本下划线.,给列表一个边框和背景颜色(根据自己需要)
* {margin:0;padding:0;}
ul.nav, ul.nav ul {list-style-type:none;
border:1px solid #486B02;
background-color:#8BD400;}
ul.nav a {text-decoration:none;}
3.为了使导航列表水平排列,我们可以浮动列表项,并给它设定一个宽度,为了确保下拉菜单与导航列表中的菜单项垂直对齐,需要将下拉菜单列表的宽度设置成与导航列表中列表项的宽度相同。
ul.nav li {float:left;
width:8em;}
ul.nav li ul {width:8em;}
4.关键部分:接下来我们设置下拉菜单的效果,在下拉菜单被激活之前它是隐藏状态的,因此我们可以将下拉菜单列表的position属性设置为absolute,然后给它定位到屏幕的左侧外面。当鼠标悬停到某个导航列表项的时候,使用:hover,把下拉菜单的位置再改回来,这样就可以实现下拉菜单的效果了。
ul.nav li {float:left;
width:8em;}
ul.nav li ul {width:8em;
position:absolute;left:-999em;}
ul.nav li:hover ul {left:auto;}
5.最后就是美化了,把导航链接设置为块级元素,然后修改列表的外观,设置背景颜色和斜面边框效果,(此处可参考上期详解内容)
/*斜面框效果*/
ul.nav a {display:block;
color:#2B3F00;
text-decoration:none;
padding:0.3em 1em;
border-right:1px solid #486B02;
border-left:1px solid #E4FFD3;}
ul.nav li li a {border-top:1px solid #E4FFD3;
border-bottom:1px solid #486B02;
border-left:0;
border-right:0;}
/*移除重叠的边框*/
ul.nav li a.re {border-right:0;}
ul.nav ul {border-bottom:0;}
/*鼠标悬停效果*/
ul a:hover {color:#E4FFD3;
background-color:#6DA203;}
PS:半夜写的没怎么检查,如有漏洞请告知,谢谢!
猜你喜欢
- 2024-11-21 第6天 | 16天搞定前端,html表单,标签界的杠把子?
- 2024-11-21 Python用20行代码就能实现漂亮的网页界面?你确定不来看看
- 2024-11-21 浏览器底层工作那些事儿
- 2024-11-21 知乎刷下拉框,知乎下拉框出现品牌词的方法
- 2024-11-21 一招解决Tinymce在el-dialog中下拉框使用异常
- 2024-11-21 Ajax+ashx 实现下拉框级联
- 2024-11-21 纯CSS实现导航菜单下拉效果带transition动画效果
- 2024-11-21 13个有用的HTML5、CSS3和jQuery搜索表单教程
- 2024-11-21 零基础教你学前端——31、下拉菜单
- 2024-11-21 下拉框获取到的数据如何在input文本框中显示
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)