JavaWeb学习之路(52)–CSS应用实例之下拉菜单

简介: 本文目录1. 前言2. 开发过程2.1 HTML元素组成2.2 设定按钮样式2.3 设置菜单区域样式2.4 设置菜单中链接样式2.5 设置下拉菜单样式3. 小结

1. 前言

下拉菜单也是使用频率很高的网页控件,例如百度首页上方的【设置】按钮就是一个下拉菜单,当我们的鼠标指向该按钮时,会弹出下拉菜单。


本篇我们就通过CSS来一步一步编写一个简单的下拉菜单。


2. 开发过程

2.1 HTML元素组成

首先我们确定下HTML元素部分,有一个按钮button,然后按钮下面是菜单区域div,菜单区域包含多个链接a。然后下拉菜单作为一个整体,我们用一个div包裹起来。所以HTML代码如下:


<body>

   <div class="dropdown">

       <button class="dropdown-button">下拉菜单</button>

       <div class="dropdown-menu">

           <a href="#">菜单1</a>

           <a href="#">菜单2</a>

           <a href="#">菜单3</a>

       </div>

   </div>

</body>


其中drowdown表示下拉菜单,dropdown-button表示按钮,dropdown-menu表示菜单区域。此时由于尚未编写任何CSS样式代码,效果如下:



2.2 设定按钮样式

我们一步一步来处理下拉菜单,首先编写按钮的样式,代码如下,注意看注释:


    /* 按钮样式 */

 .dropdown-button {

           /* 颜色采用之前用过的百度蓝 */

           background-color: #4569FF;

           /* 字体采用白色 */

           color: white;

           /* 不要边框线 */

           border: none;

           /* 使用圆角 */

           border-radius: 8px;

           /* 将按钮撑的大一些 */

           padding: 8px;

       }


此时效果如下:


另外我们希望当鼠标悬停到下拉菜单区域时,按钮颜色能变化,这样有一个动态的效果,所以添加CSS代码:


 /* 当鼠标悬停于下拉菜单上方时,按钮样式 */

       .dropdown:hover .dropdown-button {

           background-color: blue;

       }


此时当鼠标移到下拉菜单上方时,颜色变化为更深的蓝色。



2.3 设置菜单区域样式

首先菜单区域默认应该是不显示的,然后应设定一个宽度和边框,让下拉菜单区域能够有一个好看的边界:


   /* 下拉菜单 */

       .dropdown-menu {

           /* 默认不显示 */

           display: none;

           /* 设置宽度 */

           width: 160px;

           /* 设置边框 */

           border: 2px solid #E5F1FB;

       }


此时效果如下:



当鼠标悬停到下拉菜单上方时,菜单区域应显示出来:


/* 鼠标悬停时,显示菜单区域 */

       .dropdown:hover .dropdown-menu {

           display: block;

       }


所以悬停时,效果如下:



2.4 设置菜单中链接样式

菜单中的超级链接应该是垂直排列,此时我们可以调整其盒模型为block,这样就独占一块了。另外链接字体设为黑色,并通过padding增大间距。


 /* 链接样式 */

       .dropdown-menu a {

           /* 换行 */

           display: block;

           /* 黑色字体 */

           color: black;

           /* 增大间距 */

           padding: 8px 12px;

           /* 去掉下划线 */

           text-decoration: none;

       }


此时效果如下:


然后我们再给鼠标悬停的链接增加一个选中效果:


  /* 链接悬停样式 */

       .dropdown-menu a:hover {

           /* 颜色值为按钮默认颜色,有呼应效果 */

           background-color: #4569FF

       }


悬停时,效果如下:



2.5 设置下拉菜单样式

还有一个非常重要的点,可能不容易发现,就是目前下拉菜单整体是一个div,它会占用一个块,也就是说整行的空间都被其占用。表现为鼠标移到下拉菜单右侧时,也会引发菜单区域展开。


但是我们实际希望下拉菜单,只占用看到的那些区域就OK,此时很简单,设置盒模型为inline-block即可,行内-块级元素,即占据空间,又不会引起换行。


 /* 整个下拉菜单 */

       .dropdown {

           display: inline-block;

       }


此时鼠标只有在下拉菜单上方,才会触发菜单区域展开。


3. 小结

下拉菜单已经做出来了,其实还不够完善,要做一个完美的网页控件,可能需要大量的工作,尚需努力!


相关文章
|
29天前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
58 7
|
29天前
|
前端开发 UED 开发者
CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度
本文探讨了CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度;图标字体则以字体形式呈现图标,便于调整样式。文章分析了两者的优缺点及应用场景,并提供了应用技巧和注意事项,旨在帮助开发者提升页面性能,改善用户体验。
24 5
|
29天前
|
编解码 前端开发 UED
探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用
本文深入探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用。通过实际案例分析和注意事项的讨论,旨在帮助开发者更好地理解和运用媒体查询,提升移动端用户体验。
45 4
|
1月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
50 2
|
2月前
|
前端开发 开发者 UED
CSS技术的演变与应用
【10月更文挑战第11天】CSS技术的演变与应用
|
3月前
|
XML JavaScript 前端开发
JavaWeb基础4——HTML,JavaScript&CSS
HTML,JavaScript&CSS、元素、标签、css 选择器、属性、JavaScript基础语法、JavaScript对象、BOM浏览器对象模型、DOM文档对象模型、事件监听、正则对象RegExp/ES6
|
3月前
|
前端开发
|
3月前
|
Web App开发 移动开发 自然语言处理
|
4月前
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
62 0
|
4月前
|
前端开发 JavaScript 开发者
【前端革新力】React与CSS-in-JS完美邂逅:从styled-components到emotion,全面解析样式管理新趋势的实战应用与优势剖析!
【8月更文挑战第31天】CSS-in-JS 作为一种新兴的样式管理方式,近年来在前端社区受到广泛关注。它将样式嵌入 JavaScript,实现了样式与逻辑的高度耦合,提升了开发效率并解决了全局样式污染等问题。本文通过具体代码示例,探讨 CSS-in-JS 在 React 开发中的应用,并分享实践心得。首先介绍了 CSS-in-JS 的基本概念,然后详细展示了如何使用 styled-components 和 emotion 这两个流行库创建样式化组件。
233 0

热门文章

最新文章