效果预览
这里用纯CSS实现一个简单的单级下拉菜单,鼠标划过菜单标题时显示下拉菜单。
基本思路
在菜单处于光标之下时显示菜单,其余时候隐藏。这个过程首先得想到 :hover 伪类来实现,但是直接的利用伪类还不行,因为普通状态下菜单隐藏了,没办法触发 :hover ,不过下拉菜单隐藏了不是还有菜单标题么,菜单标题处于光标之下时显示菜单就能够显示出来了,但是鼠标移到菜单上的时候下拉菜单又会消失,这个时候想到给下拉菜单也加上 :hover 显示自身,但是万一脑洞大开,要做分体菜单怎么办,这个时候把它放进一个容器呗,利用标签的嵌套关系,去给容器的 :hover 伪类的派生元素写样式就一切搞定啦。
上HTML结构
1 <ul id="dropdown-wrapper"> 2 <li> 3 <span>Rewrite</span> 4 <ul class="dropdown-sublist"> 5 <li>Kotarou</li> 6 <li>Kotori</li> 7 <li>Akane</li> 8 <li>Kagari</li> 9 <li>Lucia</li>10 <li>Shizuru</li>11 <li>Chihaya</li>12 </ul>13 </li>14 <li>15 <span>Clannad</span>16 <ul class="dropdown-sublist">17 <li>Tomoya</li>18 <li>Nagisa</li>19 <li>Ushio</li>20 <li>Ryou</li>21 <li>Kyou</li>22 <li>Yukine</li>23 <li>Fuko</li>24 <li>Tomoyo</li>25 <li>Kotomi</li>26 </ul>27 </li>28 <li>29 <span>Air</span>30 <ul class="dropdown-sublist">31 <li>Yukito</li>32 <li>Misuzu</li>33 <li>Kano</li>34 <li>Minagi</li>35 </ul>36 </li>37 </ul>
CSS
实现的关键就在那些打惊叹号的规则,写好显示与不显示时两个状态的下拉菜单的属性。同时添加了一些渐变以及平移让菜单显示更加自然。
1 body{ margin:0; padding:0; 2 3 font-size:18px; 4 5 background-color:#aaa; 6 } 7 h1{margin:2em 0.4em 0 0.4em;color:#eee;font-size:3em;} 8 #dropdown-wrapper{ 9 display:block;10 11 margin:4em 1em 0 1em;12 }13 #dropdown-wrapper li{14 /*!!!!!!!!!!!!*/15 display:inline-table;16 padding:0;17 margin:0;18 19 position:relative;20 21 width:10em;22 23 background:#fff;24 25 -webkit-transition:all ease-in-out 0.3s;26 transition:all ease-in-out 0.3s;27 }28 #dropdown-wrapper span{29 display:block;30 padding:0.4em 1em;31 width:10em;32 color:#333;33 }34 #dropdown-wrapper span:after{35 display:inline-block;36 float:right;37 content:">";38 39 -webkit-transform:rotate(0deg);40 transform:rotate(0deg);/*为了渐变*/41 42 -webkit-transition:all ease-in-out 0.3s;43 transition:all ease-in-out 0.3s;44 }45 #dropdown-wrapper li:hover span:after{46 -webkit-transform:rotate(90deg);47 transform:rotate(90deg);/*划过的时候那个右箭头旋转90度,变成朝下的啦*/48 }49 #dropdown-wrapper li ul{50 /*!!!!!!!!!!!!*/51 display:block;52 position:absolute;53 54 padding:0;55 margin:0;56 57 height:0;/*平时的时候隐藏下拉列表*/58 line-height:0;/*0行高,这个的作用是用来制造一个文字展开的效果*/59 overflow:hidden;60 61 color:#555;62 63 opacity:0;64 65 -webkit-transform:translateY(-1em);66 transform: translateY(-1em);67 68 -webkit-transition:all ease-in-out 0.3s;69 transition:all ease-in-out 0.3s;70 }71 #dropdown-wrapper li ul>li{72 padding:0.7em 1em;73 74 }75 #dropdown-wrapper li:hover ul{76 /*!!!!!!!!!!!!*/77 /*这是容器处于光标下时的下拉列表的状态,78 *这个时候就是要做的就是显示下拉菜单咯79 */80 opacity:1;81 height:auto;82 line-height:1em;83 84 -webkit-transform: translaY(0);85 transform: translateY(0);86 }87 #dropdown-wrapper li:hover span{88 color:rgb(0,173,238);89 }90 #dropdown-wrapper li:hover ul>li:hover{91 background:rgb(0,173,238);92 color:#eee;93 }

要构建一个功能强大且用户体验良好的网站,仅靠HTML是不够的,还需要以下技术:JavaScript赋予网页动态和交互性,通过操作DOM实现实时变化。CSS负责网页的样式和布局,提升美观度和用户体验。现代框架和库如React、Vue.js和Angular,提高开发效率和代码组织结构。

布尔属性是HTML中的特殊属性,不需要值即可激活。1.布尔属性通过存在与否控制元素行为,如disabled禁用输入框。2.它们的工作原理是浏览器解析时根据属性的存在改变元素行为。3.基本用法是直接添加属性,高级用法可通过JavaScript动态控制。4.常见错误是误以为需要设置值,正确写法应简洁。5.最佳实践是保持代码简洁,合理使用布尔属性以优化网页性能和用户体验。

HTML代码可以通过在线验证器、集成工具和自动化流程来确保其清洁度。1)使用W3CMarkupValidationService在线验证HTML代码。2)在VisualStudioCode中安装并配置HTMLHint扩展进行实时验证。3)利用HTMLTidy在构建流程中自动验证和清理HTML文件。

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML的功能是定义网页的结构和内容,其目的在于提供一种标准化的方式来展示信息。1)HTML通过标签和属性组织网页的各个部分,如标题和段落。2)它支持内容与表现分离,提升维护效率。3)HTML具有可扩展性,允许自定义标签增强SEO。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版
视觉化网页开发工具