纯CSS仿树形菜单
一款纯css实现的漂亮导航菜单(也适用于个人中心)
⼀款纯css实现的漂亮导航菜单(也适⽤于个⼈中⼼) 今天给⼤家分享⼀款纯css实现的漂亮导航。
之前为⼤家分享过jquery实现的个⼈中⼼导航菜单,今天这款也是适合放在个⼈中⼼。
还带来图标,效果不错。
⼀起看下效果图: 实现的代码。
html代码:XML/HTML Code复制内容到剪贴板1. <div class="l-main">2. <div class="menu">3. <header class="menu__header">4. <h1 class="menu__header-title">5. Incoming Messages</h1>6. </header>7. <div class="menu__body">8. <ul class="nav">9. <li class="nav__item"><a href="https://" class="nav__item-link is-active">10. <i class="fa fa-envelope nav__item-icon"></i><span class="nav__item-text">News</span>11. <span class="badge badge--warning">32</span> </a></li>12. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-flag nav__item-icon">13. </i><span class="nav__item-text">Priority</span> <span class="badge">8</span> </a>14. </li>15. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-space-shuttle nav__item-icon">16. </i><span class="nav__item-text">Assigned</span> <span class="badge">0/17</span> </a>17. </li>18. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-archive nav__item-icon">19. </i><span class="nav__item-text">Archived</span> <span class="badge">3</span> </a>20. </li>21. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-trash nav__item-icon">22. </i><span class="nav__item-text">Deleted</span> <span class="badge">9</span> </a>23. </li>24. <li class="nav__item"><a href="https://" class="nav__item-link"><span class="nav__item-text">25. Show all</span> </a></li>26. </ul>27. </div>28. </div>29. <div class="menu menu--small">30. <header class="menu__header">31. <h1 class="menu__header-title">32. Incoming</h1>33. </header>34. <div class="menu__body">35. <ul class="nav">36. <li class="nav__item"><a href="https://" class="nav__item-link is-active"><i class="fa fa-envelope nav__item-icon">37. </i><span class="badge badge--warning">32</span> </a></li>38. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-flag nav__item-icon">39. </i><span class="badge">8</span> </a></li>40. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-space-shuttle nav__item-icon">41. </i><span class="badge">0/17</span> </a></li>42. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-archive nav__item-icon">43. </i><span class="badge">3</span> </a></li>44. <li class="nav__item"><a href="https://" class="nav__item-link"><i class="fa fa-trash nav__item-icon">45. </i><span class="badge">9</span> </a></li>46. <li class="nav__item"><a href="https://" class="nav__item-link"><span class="nav__item-text">47. Show all</span> </a></li>48. </ul>49. </div>50. </div>51. </div> css代码:CSS Code复制内容到剪贴板1. body2. {3. background: #F4F4F4;4. font-family: Arial, sans-serif;5. font-size: 14px;6. font-weight: lighter;7. }8.9. .l-main10. {11. width: 530px;12. margin: 0 auto;13. }14.15. .menu16. {17. width: 250px;18. margin: 40px;19. background: #fff;20. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);21. border-radius: 5px;22. float: left;23. }24.25. .menu__header26. {27. background: #4B4F55;28. border-bottom: 1px solid #353A40;29. border-radius: 5px 5px 0 0;30. }31.32. .menu__header-title33. {34. color: #fff;35. padding: 15px;36. text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);37. }38.39. .menu__body40. {41. border-radius: 0 0 5px 5px;42. }43.44. .menu--small45. {46. width: 110px;48.49. .nav50. {51. list-style: none;52. }53.54. .nav__item55. {56. position: relative;57. }58.59. .nav__item-link60. {61. padding: 10px 15px;62. text-decoration: none;63. color: #8B8E93;64. display: block;65. border-bottom: 1px solid #F0F0F0;66. }67. .nav__item-link:hover68. {69. background: #f0f0f0;70. }71. .nav__item-link.is-active72. {73. background: #6E757F;74. color: #fff;75. border-bottom-color: #4B4F55;76. box-shadow: 0 1px 0 #7A828D inset;77. }78. .nav__item-link.is-active:after79. {80. content: '';81. display: block;82. position: absolute;83. top: 50%;84. rightright: -6px;85. margin-top: -6px;86. border-top: 6px solid transparent;87. border-bottom: 6px solid transparent;88. border-left: 6px solid #6E757F;89. }90. .nav__item-link.is-active .nav__item-icon91. {92. color: #fff;93. }94. .nav__item:last-child .nav__item-link95. {96. border-bottom: none;97. }98.99. .nav__item-icon100. {101. color: #D2D5DA;102. width: 20px;103. text-align: center;104. font-size: 18px;105. margin-right: 10px;106. }107.108. .badge110. font-size: 12px;111. padding: 2px 8px;112. border: 1px solid #D1D1D1;113. border-radius: 10px;114. position: absolute;115. top: 10px;116. rightright: 15px;117. }118.119. .badge--warning120. {121. background: #ED373F;122. border-color: #ED373F;123. } 以上就是今天分享的⼀款纯css实现的漂亮导航。
纯css实现多级折叠菜单折叠树效果
纯css实现多级折叠菜单折叠树效果1、运⽤checkbox的checked值来判断下级栏⽬是否展开,CSS3的选择器中提供了:checked 这个伪类,这个伪类提供我们,当元素拥有checked这个值的时候就执⾏你的CSS。
当有⼦菜单时,菜单项右侧有向下的箭头,当收起菜单项时,箭头朝上。
图⽚可以⾃⼰替换。
2、效果图3、代码⽚段<ol class="tree"><li><label for="folder1" class="folderOne">泽元框架</label> <input type="checkbox" id="folder1" /><ol><li><label for="subfolder1"class="folderTwo">开发规范</label> <input type="checkbox" id="subfolder1" /><ol><li class="file folderThree"><a href="#">常见界⾯错误举例</a></li><li class="file folderThree"><a href="#">关于发⾏报告对BUG管理提出…</a></li><li class="file folderThree"><a href="#">插件内部JAVA包命名规范</a></li></ol></li><li class="file folderTwo"><a href="#">概述</a></li><li class="file folderTwo"><a href="#">服务器集群</a></li><li class="file folderTwo"><a href="#">模板</a></li><li class="file folderTwo"><a href="#">安全机制</a></li></ol></li><li><label for="folder2" class="folderOne" >ZCMS</label> <input type="checkbox" id="folder2" /><ol><li class="file folderTwo"><a href="#">实时数据</a></li><li><label for="subfolder2" class="folderTwo">实时数据</label> <input type="checkbox" id="subfolder2" /><ol><li class="file folderThree"><a href="#">实时数据</a></li><li class="file folderThree"><a href="#">实时数据</a></li><li class="file folderThree"><a href="#">实时数据</a></li></ol></li></ol></li><li><label for="folder3" class="folderOne">ZAS</label> <input type="checkbox" id="folder3" /><ol><li class="file folderTwo"><a href="#">实时数据</a></li><li class="file folderTwo"><a href="#">实时数据</a></li></ol></li><li><label for="folder4" class="folderOne">ZHTML标签</label> <input type="checkbox" id="folder4"/><ol><li class="file folderTwo"><a href="#">实时数据</a></li><li class="file folderTwo"><a href="#">实时数据</a></li></ol></li><li><label for="folder5" class="folderOne">UI框架API⼿册</label> <input type="checkbox" id="folder5"/><ol><li class="file folderTwo"><a href="#">实时数据</a></li><li class="file folderTwo"><a href="#">实时数据</a></li></ol></li></ol><style type="text/css">.tree {margin: 0;padding: 0;background-color:#f2f2f2;overflow: hidden;}/*隐藏input*/.tree li input{position: absolute;left: 0;opacity: 0;z-index: 2;cursor: pointer;height: 1em;width:1em;top: 0;}/*所有菜单项设置统⼀样式*/.tree li {position: relative;list-style: none;}/*⼀级菜单加下边线*/.tree>li{border-bottom: 1px solid #d9d9d9;}/*给有⼦菜单的菜单项添加背景图标*/.tree li label {max-width:999px;cursor: pointer;display: block;margin:0 0 0 -50px;padding: 15px 10px 15px 70px;background: url(../../images/cp-detail-arrow-b.png) no-repeat right center;background-position:95% 50%;white-space:nowrap;overflow:hidden;text-ov .tree li label:hover,li label:focus{background-color:#a7a7a7;color:#fff;}/*清除所有展开的⼦菜单的display*/.tree li input + ol{display: none;}/*当input被选中时,给所有展开的⼦菜单设置样式*/.tree input:checked + ol {padding-left:14px;height: auto;display: block;}.tree input:checked + ol > li { height: auto;}/*末层菜单为A标签,设置样式*/.tree li.file a{margin:0 -10px 0 -50px;padding: 15px 20px 15px 70px;text-decoration:none;display: block;color:#333333;white-space:nowrap;overflow:hidden;text-overflow: ellipsis;}.tree li.file a:hover,li.file a:focus{background-color:#a7a7a7;color:#fff;}/*不同层级的菜单字体⼤⼩不同*/.tree .folderOne{font-size: 18px;}.tree .folderTwo{font-size:16px;}.tree .folderThree{font-size:14px;}</style><script type="text/javascript">$(document).ready(function() {//每个有⼦菜单的菜单项添加点击事件$(".tree label").click(function(){//获取当前菜单旁边input的check状态var isChecked = $(this).next("input[type='checkbox']").is(':checked');//展开和收齐的不同状态下更换右侧⼩图标if(isChecked){$(this).css("background-image","url(../images/cp-detail-arrow-b.png)");}else{$(this).css("background-image","url(../images/cp-detail-arrow-t.png)");}});});</script>下⾯介绍下CSS 菜单折叠先给⼤家展⽰效果图:如上,假设⼀级菜单是 div,⼆级菜单是 ul。
移动端实现树级菜单的方法
移动端实现树级菜单的方法全文共四篇示例,供读者参考第一篇示例:在移动端开发中,实现树级菜单是一项常见且重要的任务。
在移动设备上,由于屏幕空间有限,设计和实现树级菜单需要考虑到用户体验和界面布局的限制。
本文将介绍一些常见的方法和技巧来实现移动端的树级菜单。
一、使用折叠菜单折叠菜单是一种常见的树级菜单设计模式,适用于移动设备上的界面。
在折叠菜单中,每个父级菜单项下面可以展开或折叠多个子级菜单项,用户可以点击父级菜单项来展开或折叠子级菜单项。
这种设计模式节省了屏幕空间,并且用户可以方便地浏览和操作树状结构的数据。
在实现折叠菜单时,可以使用HTML、CSS和JavaScript来构建。
可以使用HTML的ul和li标签来表示菜单的层级结构,使用CSS样式来控制菜单的外观和布局,使用JavaScript来添加交互效果和实现菜单的展开和折叠功能。
通过合理的布局和样式设计,可以在移动设备上呈现出清晰、易用的树级菜单。
二、利用滑动菜单在实现滑动菜单时,可以利用现有的移动端UI框架或库来快速实现。
一些流行的移动端UI框架,如jQuery Mobile、Ionic等,提供了丰富的界面组件和交互效果,可以帮助开发人员快速构建滑动菜单。
通过合理的布局和交互设计,可以让滑动菜单在移动设备上呈现出流畅、直观的用户体验。
三、响应式设计在设计移动端树级菜单时,需要考虑到不同设备屏幕大小和分辨率的差异。
为了适应不同尺寸的移动设备,可以使用响应式设计的技术来实现自适应的界面布局。
通过使用CSS媒体查询和弹性布局等技术,可以让树级菜单在不同尺寸的屏幕上自动调整布局和样式,确保用户在任何设备上都能够方便地访问和操作菜单。
在移动端实现树级菜单时,需要综合考虑用户体验、界面设计和技术实现等多方面因素。
通过选择合适的设计模式、利用现有的UI框架和工具、采用响应式设计等方法,可以实现一个优秀的移动端树级菜单,为用户提供更好的导航和操作体验。
希望本文介绍的方法和技巧能够帮助开发人员更好地实现移动端树级菜单。
html js树形折叠菜单实例
html js树形折叠菜单实例HTML JS Treeview 可以帮助您在网站上创建一个树形折叠菜单。
以下是一个简单的示例:HTML代码:```html<!DOCTYPE html><html><head><title>Treeview Example</title><style>ul.treeview {list-style-type: none;padding: 0;margin: 0;}ul.treeview li {padding: 5px;position: relative;}ul.treeview li.expandable:before {content: '\25B6';position: absolute;left: -10px;}ul.treeview li.collapsible:before {content: '\25BC';position: absolute;left: -10px;}ul.treeview li ul {display: none;margin-left: 20px;}</style></head><body><ul class="treeview"><li class="expandable">Item 1<ul><li>Sub-item 1</li><li>Sub-item 2</li><li>Sub-item 3</li></ul></li><li class="expandable">Item 2<ul><li>Sub-item 1</li><li>Sub-item 2</li></ul></li><li>Item 3</li></ul><script>var expandableItems = document.querySelectorAll('.expandable');for (var i = 0; i < expandableItems.length; i++) {expandableItems[i].addEventListener('click', function() {var submenu = this.querySelector('ul');if (submenu.style.display === "block") {submenu.style.display = "none";this.classList.remove('collapsible');this.classList.add('expandable');} else {submenu.style.display = "block";this.classList.remove('expandable');this.classList.add('collapsible');}});}</script></body></html>```上述示例中,我们首先在`<ul>`元素上添加了一个名为`treeview`的类。
树形菜单导航源代码
简洁的多级树形导航菜单1、xhtml部分<ul id="menuList"><li class="menubar"><a href="#" id="productsActuator" class="actuator">我的收藏夹</a><ul id="productsMenu" class="menu"><li><a href="#" id="newPhonesActuator" class="actuator">个人网站</a> <ul id="newPhonesMenu" class="submenu"><li><a href="/">网页代码库</a></li><li><a href="/">网页设计师</a></li><li><a href="/">JunChen博客</a></li> <li><a href="/andy/">毅博客</a></li></ul></li><li><a href="#" id="compareActuator" class="actuator">国外网站</a><ul id="compareMenu" class="submenu"><li><a href="/">A List Apart</a></li><li><a href="/">CSS禅意花园</a></li><li><a href="/">456 Berea Street</a></li><li><a href="/">W3C网站</a></li></ul></li></ul></li></ul>2、css部分#menuList {margin: 0px;padding: 10px 0px 10px 15px;border: 1px solid #CCC;width: 203px;background-color: #EEE;color: #000;font-family: verdana, helvetica, arial, sans-serif; }li.menubar {font-size: 12px;line-height: 1.8em;list-style: none;}.menu, .submenu {display: none;margin-left: 15px;padding: 0px;}.menu li, .submenu li {list-style: none;}#menuList a {background-color: transparent;color: #000;font-size: 12px;margin-left: 15px;text-decoration: none;}#menuList a:hover {text-decoration: underline;}3、Javascript部分if (!document.getElementById) {document.getElementById = function() { return null; } }function initializeMenu(menuId, actuatorId) {var menu = document.getElementById(menuId);var actuator = document.getElementById(actuatorId);if (menu == null || actuator == null) return;actuator.onclick = function() {var display = menu.style.display;menu.style.display = (display == "block") ? "none" : "block"; return false;}}window.onload = function() {initializeMenu("productsMenu", "productsActuator");initializeMenu("newPhonesMenu", "newPhonesActuator");initializeMenu("compareMenu", "compareActuator");}简洁的双级导航菜单1、xhtml部分源代码:<ul id="butong-nav"><li><a href="#">Home</a></li><li><a href="#">About</a><ul><li><a href="#">History</a></li><li><a href="#">Team</a></li><li><a href="#">Offices</a></li></ul></li><li><a href="#">Services</a><ul><li><a href="#">Web Design</a></li><li><a href="#">Internet Marketing</a></li><li><a href="#">Hosting</a></li><li><a href="#">Domain Names</a></li><li><a href="#">Broadband</a></li></ul></li><li><a href="#">Contact Us</a><ul><li><a href="#">United Kingdom</a></li> <li><a href="#">France</a></li><li><a href="#">USA</a></li><li><a href="#">Australia</a></li></ul></li></ul>2、css部分源代码#butong-nav, #butong-nav ul {font: normal 11px verdana;margin: 0;padding: 0;list-style: none;width: 150px;border-bottom: 1px solid #CCC;}#butong-nav li {position: relative;}#butong-nav ul {position: absolute;left: 149px;top: 0;display: none;}#butong-nav li a {display: block;text-decoration: none;color: #777;background: #fff;padding: 5px;border: 1px solid #ccc;border-bottom: 0;}#butong-nav li a:hover {text-decoration: underline;}* html #butong-nav li {float: left;height: 1%;}* html #butong-nav li a {height: 1%;}#butong-nav li:hover ul, #butong-nav li.over ul {display: block;}3、Javascript部分源代码startList = function() {if (document.all && document.getElementById) {navRoot = document.getElementById("butong-nav");for (i=0; i<navRoot.childNodes.length; i++) {node = navRoot.childNodes[i];if (node.nodeName == "LI") {node.onmouseover = function() {this.className += "over";}node.onmouseout = function() {this.className = this.className.replace("over", ""); }}}}}window.onload = startList;。
纯CSS竖直菜单
纯CSS竖直菜单简单的CSS竖直菜单,以前学习的⼩练习。
HTML Code:<div id="menu"><ul><li><a href="#">Home</a></li><li><a href="#">Wap</a></li><li><a href="#">News</a></li><li><a href="#">Maps</a></li><li><a href="#">Google Play</a></li></ul></div>CSS Code:#menu{width:170px;}#menu ul{list-style-type:none;}#menu li{margin-top:3px;}#menu li a,#menu li a:visited{border-left:7px solid #333333;border-right:7px solid #333333;display:block;padding:5px;text-decoration:none;color:#fff;background-color:#666;} #menu li a:hover{border-left:7px solid #FF0;border-right:7px solid #FF0;font-weight:bold;}PS:margin和字体颜⾊应该是受到博客园的CSS⼲扰,表现和在本地浏览器看到的不⼀样,暂时没找到办法,如果有知道的⿇烦告知⼀下!^_^。
CSS之简单树形菜单
CSS之简单树形菜单<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>制作简单的树形菜单</title><style type="text/css">body{font-size:13px;line-height:20px;}a{font-size: 13px;color: #000000;text-decoration: none;}a:hover{font-size:13px;color: #ff0000;}img {vertical-align: middle;border:0;list-style-type: none;}.no_circle{list-style-type:none;/*设置列表项标志的类型为⽆*/display:none;}</style><script type="text/javascript">function show(){if(document.getElementById("art").style.display=='block'){document.getElementById("art").style.display='none';//触动的ul如果处于显⽰状态,即隐藏}else{document.getElementById("art").style.display='block';//触动的ul如果处于隐藏状态,即显⽰}}function show2(){if(document.getElementById("tietu").style.display=='block'){document.getElementById("tietu").style.display='none';//触动的ul如果处于显⽰状态,即隐藏}else{document.getElementById("tietu").style.display='block';//触动的ul如果处于隐藏状态,即显⽰}}function show3(){if(document.getElementById("fangchan").style.display=='block'){document.getElementById("fangchan").style.display='none';//触动的ul如果处于显⽰状态,即隐藏}else{document.getElementById("fangchan").style.display='block';//触动的ul如果处于隐藏状态,即显⽰}}function show4(){if(document.getElementById("yule").style.display=='block'){document.getElementById("yule").style.display='none';//触动的ul如果处于显⽰状态,即隐藏}else{document.getElementById("yule").style.display='block';//触动的ul如果处于隐藏状态,即显⽰}}</script></head><body><b><img src="All.gif"><font color="#009900">树形菜单:</font></b><a href="javascript:onclick=show() "><img src="/cnblogs_com/caidupingblogs/773011/o_mbi_024.gif">⽂学艺术</a> <ul id="art" class="no_circle"><li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">先锋写作</li><li> <img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif" >⼩说散⽂</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif" >诗风词韵</li> </ul><a href="javascript:onclick=show2() "><img src="/cnblogs_com/caidupingblogs/773011/o_mbi_024.gif">贴图专区</a><ul id="tietu" class="no_circle"><li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">真我风采</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">视屏贴图</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">⾏⾏摄摄</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">Flash贴图</li> </ul><a href="javascript:onclick=show3() "><img src="/cnblogs_com/caidupingblogs/773011/o_mbi_024.gif">房产论坛</a><ul id="fangchan" class="no_circle"><li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">我要买房</li> <li> <img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">楼市话题</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">我要卖房</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">租房⼼语</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">⼆⼿市场</li> </ul><a href="javascript:onclick=show4() "><img src="/cnblogs_com/caidupingblogs/773011/o_mbi_024.gif">娱乐⼋卦</a><ul id="yule" class="no_circle"><li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">红楼⼀梦</li> <li> <img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">楼市话题</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">笑话论坛</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">休闲⽣活</li> <li><img src="/cnblogs_com/caidupingblogs/773011/o_folder_open.gif">⼤话春秋</li> </ul></body></html>color: #000000;text-decoration: none;}a:hover{font-size:13px;color: #ff0000;}img {vertical-align: middle;border:0;list-style-type: none;}.no_circle{list-style-type:none;/*设置列表项标志的类型为⽆*/display:none;}</style><script type="text/javascript">function show(){if(document.getElementById("art").style.display=='block'){document.getElementById("art").style.display='none';//触动的ul如果处于显⽰状态,即隐藏}else{document.getElementById("art").style.display='block';//触动的ul如果处于隐藏状态,即显⽰}}function show2(){if(document.getElementById("tietu").style.display=='block'){document.getElementById("tietu").style.display='none';。
Bootstrap框架建立树形菜单(Tree)的实例代码
Bootstrap框架建⽴树形菜单(Tree)的实例代码这⾥的Tree指的是树形菜单,这篇⽂章通过⼀个实例来讲解⼀下,在Bootstrap框架下怎么去建⽴⼀个树形菜单。
前提:先添加Bootstrap和JQ的引⽤<link rel="stylesheet" type="text/css" href="bootstrap-3.3.0-dist/dist/css/bootstrap.min.css" rel="external nofollow" ><script src="bootstrap-3.3.0-dist/dist/js/jquery-1.11.2.min.js"></script><script src="bootstrap-3.3.0-dist/dist/js/bootstrap.min.js"></script>HTML CODE<div class="tree well"><ul><li> <span><i class="icon-folder-open"></i> 廊坊师范学院</span><ul><li> <span><i class="icon-minus-sign"></i> 教育学院</span><ul><li> <span><i class="icon-leaf"></i> 学前教育</span> </li></ul></li><li> <span><i class="icon-minus-sign"></i> 物电学院</span><ul><li> <span><i class="icon-leaf"></i> 电⽓⼯程技术</span> </li><li> <span><i class="icon-minus-sign"></i> 电⼦信息科学技术</span><ul><li> <span><i class="icon-minus-sign"></i> 电⼦⼀班</span><ul><li> <span><i class="icon-leaf"></i> 宋笑</span> </li><li> <span><i class="icon-leaf"></i> ⼆盟</span> </li></ul></li><li> <span><i class="icon-leaf"></i> 电⼦⼆班</span> </li></ul></li><li> <span><i class="icon-leaf"></i> 物理学</span> </li></ul></li></ul></li></ul></div>CSS CODE(为树形菜单添加样式,使其符合Bootstrap框架的风格).tree {min-height:20px;padding:19px;margin-bottom:20px;background-color:#fbfbfb;border:1px solid #999;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05)}.tree li {list-style-type:none;margin:0;padding:10px 5px 0 5px;position:relative}.tree li::before, .tree li::after {content:'';left:-20px;position:absolute;right:auto}.tree li::before {border-left:1px solid #999;bottom:50px;height:100%;top:0;width:1px}.tree li::after {border-top:1px solid #999;height:20px;top:25px;width:25px}.tree li span {-moz-border-radius:5px;-webkit-border-radius:5px;border:1px solid #999;border-radius:5px;display:inline-block;padding:3px 8px;text-decoration:none}.tree li.parent_li>span {cursor:pointer}.tree>ul>li::before, .tree>ul>li::after {border:0}.tree li:last-child::before {height:30px}.tree li.parent_li>span:hover, .tree li.parent_li>span:hover+ul li span {background:#eee;border:1px solid #94a0b4;color:#000}JS CODE<script type="text/javascript">//为节点添加展开,关闭的操作$(function(){$('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');$('.tree li.parent_li > span').on('click', function (e) {var children = $(this).parent('li.parent_li').find(' > ul > li');if (children.is(":visible")) {children.hide('fast');$(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign'); } else {children.show('fast');$(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign'); }e.stopPropagation();});});</script>效果:⼀棵符合Bootstrap风格的树就这么建造完成了,优点⾃不⽤说:整洁,美观。
html css树状结构表
html css树状结构表HTML和CSS是前端开发中两个非常重要的技术,它们的组合可以创建出美观且具有结构性的网页。
其中,树状结构表是一种常见的布局方式,可以用来展现父子关系的层级结构。
本文将围绕这一主题展开讨论。
我们需要了解树状结构表的基本概念。
树状结构表是一种以树状形式呈现数据的方式,它由一系列的节点组成,每个节点都可以有一个或多个子节点。
树状结构表常用于展示层级关系,比如网站导航菜单、文件目录等。
在HTML中,我们可以使用无序列表(<ul>)和有序列表(<ol>)来创建树状结构表。
无序列表使用<li>标签表示每个节点,有序列表除了使用<li>标签外,还可以使用<ol>标签的type属性指定编号方式。
通过嵌套使用<ul>和<li>或<ol>和<li>,我们可以构建出多层级的树状结构表。
在CSS中,我们可以通过设置样式来美化树状结构表。
可以为列表设置背景色、边框、内外边距等样式,使其在页面上更加醒目。
此外,还可以通过设置字体、颜色、大小等样式来调整文本的显示效果,使树状结构表更加美观。
除了基本的树状结构表,我们还可以通过使用CSS的伪类选择器和属性选择器来为树状结构表添加交互效果。
比如,可以使用:hover伪类选择器为节点添加鼠标悬停效果,当鼠标悬停在节点上时,改变节点的背景色或文本颜色。
另外,还可以使用:checked伪类选择器和<input>标签来实现树状结构表的展开和折叠功能,点击节点前面的复选框可以展开或折叠该节点的子节点。
在实际应用中,树状结构表常常用于展示网站的导航菜单。
通过合理地组织节点和子节点的层级关系,可以使用户快速找到所需的信息。
此外,树状结构表还可以用于展示文件目录,方便用户查看和管理文件。
总结起来,树状结构表是一种常见的网页布局方式,它通过节点和子节点的层级关系展示数据。
移动端实现树级菜单的方法
移动端实现树级菜单的方法
在移动端实现树级菜单的方法有很多种,这里我会列举几种常见的方法:
1. 嵌套列表(Nested List):这是最简单的方式,每个节点可以是一个列
表或者一个子菜单。
然而,这种方法可能会在移动设备上显得过于复杂和混乱,因为需要滚动和缩放才能查看所有的菜单项。
2. 展开/折叠菜单(Accordion Menu):这是另一种常见的方法,每个节
点都有一个展开和折叠的按钮。
当用户点击一个节点时,该节点及其所有子节点会展开或折叠。
这种方法的好处是用户可以一次查看所有的菜单项,但是它可能会在层次很深的菜单上显得很混乱。
3. 侧边抽屉菜单(Side Drawer Menu):这是一种常见的移动端导航模式,用户可以从屏幕的一侧滑动打开一个包含所有菜单项的列表。
这种方法的优点是用户可以快速访问任何菜单项,但是如果菜单项太多,用户可能需要多次滑动才能找到他们想要的。
4. 面包屑菜单(Breadcrumb Menu):这种菜单通过显示当前节点的父节点来提供一种导航的方式。
虽然它不适合所有的应用,但是对于那些需要用户知道他们当前位置的应用来说,这是一个很好的选择。
5. 卡片式菜单(Card Menu):在这种方法中,每个节点都显示为一个卡片,用户可以点击卡片来打开或关闭它。
这种方法的优点是用户可以清楚地看到哪些节点是开放的,但是它可能会在层次很深的菜单上显得很混乱。
以上就是一些常见的实现树级菜单的方法,具体使用哪种方法取决于你的应用的需求和用户的习惯。
移动端实现树级菜单的方法
移动端实现树级菜单的方法全文共四篇示例,供读者参考第一篇示例:移动端实现树级菜单的方法随着移动设备的普及和移动应用的流行,越来越多的网站和应用开始重视移动端的用户体验。
在移动端,屏幕空间有限,如何有效地展示复杂的菜单结构成为了一个挑战。
树级菜单是一种常见的菜单结构,通过多层次的嵌套展示不同级别的菜单选项。
本文将介绍在移动端实现树级菜单的方法,以提升用户体验和提高网站或应用的可用性。
一、响应式设计在移动端实现树级菜单时,首先要考虑的是使用响应式设计。
响应式设计可以根据设备的屏幕大小和分辨率自动调整页面布局,以适配不同的设备。
在移动端,可以通过媒体查询和弹性布局来实现响应式设计,保证菜单能够在不同屏幕尺寸下正常显示。
二、折叠菜单折叠菜单是在移动端常用的菜单形式之一,通过折叠和展开的方式来展示不同级别的菜单选项。
在树级菜单中,可以将子菜单折叠起来,只显示父菜单和展开箭头,用户点击展开箭头后,可以展开子菜单,直到最底层菜单选项。
三、滑动菜单滑动菜单是另一种常见的移动端菜单形式,用户可以通过滑动手势来查看菜单选项。
在树级菜单中,可以利用滑动菜单来展示多层次的菜单结构,用户可以通过左右滑动来浏览不同级别的菜单选项。
四、手势操作在移动端实现树级菜单时,要考虑到用户的手势操作习惯。
在触摸屏设备上,用户习惯使用手指滑动和点击来进行操作,因此菜单的设计应该考虑到这些手势操作。
可以通过滑动展开子菜单、点击选择菜单选项等方式来提升用户体验。
五、动画效果动画效果可以提升用户体验,并增加菜单的交互性。
在移动端实现树级菜单时,可以使用一些简单的动画效果,比如展开和折叠菜单时的过渡动画、菜单选项的渐变效果等。
这些动画效果可以使菜单更生动,吸引用户的注意力。
六、适配不同屏幕大小七、测试优化在移动端实现树级菜单后,需要进行测试和优化,确保菜单在不同设备和浏览器上都能正常显示和使用。
可以通过模拟不同设备、不同网络速度来测试菜单的性能和兼容性,及时修复可能存在的问题,提升用户体验。
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
JS实现⽆限级⽹页折叠菜单(类似树形菜单)效果代码本⽂实例讲述了JS实现⽆限级⽹页折叠菜单(类似树形菜单)效果代码。
分享给⼤家供⼤家参考。
具体如下:这是⼀款超不错的⽹页折叠菜单,采⽤JavaScript实现。
折叠菜单是⼤家⽐较常见到的⼀种菜单形式,可⼴泛应⽤于管理系统、后台左侧、产品列表中,本折叠菜单有点树形菜单的味道,相信“⽆限级”会满⾜你的要求。
运⾏效果截图如下:在线演⽰地址如下:具体代码如下:<html><head><title>⽆限级折叠菜单JS版</title><style><!--body,ul,h3 {margin:0px; padding:0px;}li {list-style-type:none;}body{font-size:12px;color:#333;font-family: Simsun;line-height:15px;}a{text-decoration:none;color:#004285;border:none;}a:hover{text-decoration:none;color:#C33;}#menu {width:260px;margin:50px auto;padding:10px;border:#EEE 1px solid;}#menu h3 {font-size:12px;}#menu ul {background:url("images/ul-bg.gif") repeat-y 5px 0px; overflow:hidden;}#menu ul li {padding:5px 0 2px 15px;background:url("images/tree-ul-li.gif") no-repeat 5px -32px;}#menu ul li ul {display:none;}#menu ul li em {cursor:pointer;display:inline-block;width:15px;float:left;height:15px;margin-left:-14px;background:url("images/tree-ul-li.gif") no-repeat -32px 2px;}#menu ul li em.off {background-position: -17px -18px;}#menu ul li#end {background-color:#FFF;}#menu ul.off {display:block;}--></style></head><body><div id="menu"><h3>⽆限级折叠菜单JavaScript版</h3><ul><li><em></em><a href='javascript:void(0);'>菜单_1_1</a><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a> <ul><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_2_2</a> <ul><li><em></em><a href='javascript:void(0);'>菜单_3_1</a><ul><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a> <ul><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li></ul></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_1_2</a><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a> <ul><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_2_2</a> <ul><li><em></em><a href='javascript:void(0);'>菜单_3_1</a><ul><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a> <ul><li><em></em><a href='javascript:void(0);'>菜单_4_1</a><ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li><li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a> <ul><li><a href='javascript:void(0);'>菜单_5_1</a></li><li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li></ul></li></ul></li></ul></li></ul></li></ul><script type="text/javascript">(function(e){for(var _obj=document.getElementById(e.id).getElementsByTagName(e.tag),i=-1,em;em=_obj[++i];){ em.onclick = function(){ //onmouseovervar ul = this.nextSibling;if(!ul){return false;}ul = ul.nextSibling; if(!ul){return false;}if(e.tag != 'a'){ ul = ul.nextSibling; if(!ul){return false;} } //a 标签控制隐藏或删除该⾏for(var _li=this.parentNode.parentNode.childNodes,n=-1,li;li=_li[++n];){if(li.tagName=="LI"){for(var _ul=li.childNodes,t=-1,$ul;$ul=_ul[++t];){switch($ul.tagName){case "UL":$ul.className = $ul!=ul?"" : ul.className?"":"off";break;case "EM":$ul.className = $ul!=this?"" : this.className?"":"off";break;}}}}}}})({id:'menu',tag:'em'});</script></body></html>希望本⽂所述对⼤家的JavaScript程序设计有所帮助。
巧用CSS制作树状目录
巧用CSS制作树状目录巧用CSS制作树状目录索易电子杂志大多采用树状目录,当鼠标点击主目录时,展开子目录;当再次点击主目录时,则关闭子目录。
显得简捷明快,朴实无华。
制作这种树状目录的方法较多,最近我利用CSS能方便地控制对象的“显示”和“隐藏”属性原理,也制作一个,我感到用CSS制作这样的树状目录,方法简单,代码也比较少,所以把它写出来,给网友们共亨,以便在需要的时候也可动手做一个。
先看下面的示例:当用鼠标在主目录上点一下,就下拉出相应的子目录,再点一下,又恢复原状,其效果与索易电子杂志上的目录效果完全一致。
鼠标点击前的目录鼠标点击后展开的目录制作方法:我先把产生这种效果的代码复制如下,然后结合代码讲制作方法:〈div id="main1" style="color:blue" onclick="document.all.child1.styl e.display=(document.all.child1.style.display =='none')?'':'none'" 〉+ 主目录1〈/div〉〈div id="child1" style="display:none"〉〈a href="#"〉- 子目录1〈/a〉〈br〉〈a href="#"〉- 子目录2〈/a〉〈br〉〈a href="#"〉- 子目录3〈/a〉〈br〉〈a href="#"〉- 子目录4〈/a〉〈/div〉〈div id="main2" style="color:blue" onclick="document.all.child2.styl e.display=(document.all.child2.style.display =='none')?'':'none'" 〉+ 主目录2 〈/div〉〈div id="child2" style="display:none"〉〈a href="#"〉- 子目录1〈/a〉〈br〉〈a href="#"〉- 子目录2〈/a〉〈br〉〈a href="#"〉- 子目录3〈/a〉〈/div〉注:“ ”表示一个字符空格1、先定义两个DIV,一个用于主目录,取名为:main1;另一个用于相应的子目录,取名为:child1。
纯CSS打造可折叠树状菜单
纯CSS打造可折叠树状菜单1:Html代码<li><label for="subsubfolder1">下级</label><input id="subsubfolder1" type="checkbox" /><ol><li class="file"><a>下级</a></li><li><label for="subsubfolder2">下级</label><input id="subsubfolder2" type="checkbox" /><ol><li class="file"><a>⽆限级</a></li><li class="file"><a>⽆限级</a></li><li class="file"><a>⽆限级</a></li><li class="file"><a>⽆限级</a></li><li class="file"><a>⽆限级</a></li><li class="file"><a>⽆限级</a></li></ol></li></ol></li>实现的思路是运⽤checkbox的checked值来判断下级栏⽬是否展开,CSS3的选择器中提供了:checked 这个伪类,这个伪类提供我们,当元素拥有checked这个值的时候就执⾏你的CSS。
一个简单的js树形菜单
一个简单的js树形菜单上图某电子商务平台的菜单,给他多几个嵌套,然后添加收缩伸展事件,差不多就行了。
给个例子:复制代码代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><style type="text/css">body{ font-size: 12px;}h2,h3{ margin: 0;}ul{ margin: 0; padding: 0; list-style: none; }#outer_wrap li{ padding-left: 30px; line-height: 24px;}.controlSymbol{ padding: 0 5px; border: 1px solid #adff2f; cursor: pointer;}</style></head><body><ul id="outer_wrap"><li><h2>标题1</h2><ul><li>内容1</li><li>内容2</li><li>内容3</li><li>内容4</li><li><h3>标题1_1</h3><ul><li>内容1_1</li><li>内容1_2</li><li>内容1_3</li><li>内容1_4</li></ul></li><li><h3>标题1_2</h3><ul><li>内容1_1</li><li>内容1_2</li><li>内容1_3</li><li>内容1_4</li></ul></li></ul></li></ul></body></html>然后添加事件:复制代码代码如下:var innerText = document.innerText ? 'innerText' : 'textContent'; var span = document.createElement('span');span[innerText] = '-';span.className = 'controlSymbol';function $(id){return document.getElementById(id);}function $_(){var args = arguments;var ret = [];for(var i = 0; i < args.length; i++){var temp = document.getElementsByTagName(args[i]);try{ret = ret.concat(Array.prototype.slice.call(temp,0));}catch(e){for(var j = 0; j < temp.length; j++){ret.push(temp[j]);}}}return ret;}function addSymbol(h){var innerSpan = span.cloneNode(true);h.insertBefore(innerSpan,h.firstChild);}function next(el){while(el.nextSibling){if(el.nextSibling.nodeType == 1){return el.nextSibling;}el = el.nextSibling;}return null;}var outerWrap = $('outer_wrap');var hs = $_('h2','h3');for(var i = 0 ; i < hs.length; i++){addSymbol(hs[i]);}outerWrap.onclick = function(event){event = event || window.event;var t = event.target || event.srcElement;if(t.className == 'controlSymbol'){var sn = next(t.parentNode);var snStyle = next(t.parentNode).style;snStyle.display = (snStyle.display == 'block' || snStyle.display == '') ? 'none' : 'block'; t[innerText] = t[innerText] == '+' ? '-':'+';}}不过用的多的可能是动态的添加菜单,也就是动态的生成HTML序列。
BootStrapJstree树形菜单的增删改查的实现源码
BootStrapJstree树形菜单的增删改查的实现源码1.⾸先需下载jstree的插件点击打开链接2.在页⾯引⼊插件js⽂件css⽂件<link rel="stylesheet" href="plugins/jstree/themes/classic/style.css" rel="external nofollow" ><script type="text/javascript" src="plugins/jstree/_lib/jquery.js"></script><script type="text/javascript"src="plugins/jstree/_lib/jquery.cookie.js"></script><script type="text/javascript"src="plugins/jstree/_lib/jquery.hotkeys.js"></script><script type="text/javascript" src="plugins/jstree/jquery.jstree.js"></script>3.初始化控件1)html<div id="demo2" class="demo" style="height:100px;"></div>2)js 使⽤ demo2来初始化树形控件<script type="text/javascript" class="source below">$(function() {$("#demo2").jstree({"json_data" : {"ajax" : {"url" : "http://localhost:8080/MemberManager/DepartmentTreeJson","data" : function(n) {// the result is fed to the AJAX request `data` optionreturn {"operation" : "get_children","id" : n.attr ? n.attr("id").replace("node_",""): 1};}}},"plugins" : ["themes","json_data","ui","crrm","contextmenu","search" ],}).bind("loaded.jstree",function(event, data) {}).bind("select_node.jstree",function(event, data) {if (data.rslt.obj.attr("id") != undefined) {}}).bind("remove.jstree",function(e, data) {data.rslt.obj.each(function() {$.ajax({async : false,type : 'POST',url : "http://localhost:8080/MemberManager/CreateNodeForDepartment",data : {"operation" : "remove_node","id" : this.id.replace("node_", "")},success : function(r) {if (!r.status) {data.inst.refresh();}}});});}).bind("remove.jstree",function(e, data) {data.rslt.obj.each(function() {$.ajax({async : false,type : 'POST',url : "http://localhost:8080/MemberManager/CreateNodeForDepartment", data : {"operation" : "remove_node","id" : this.id.replace("node_","")},success : function(r) {if (!r.status) {data.inst.refresh();}}});});}).bind("create.jstree",function(e, data) {$.post("http://localhost:8080/MemberManager/CreateNodeForDepartment",{"operation" : "create_node","id" : data.rslt.parent.attr("id").replace("node_",""),"position" : data.rslt.position,"title" : ,"type" : data.rslt.obj.attr("rel")},function(r) {if (r.status) {$(data.rslt.obj).attr("id", "node_" + r.id);} else {data.inst.refresh();$.jstree.rollback(data.rlbk);}});}).bind("rename.jstree",function(e, data) {$.post("http://localhost:8080/MemberManager/CreateNodeForDepartment",{"operation" : "rename_node","id" : data.rslt.obj.attr("id").replace("node_",""),"title" : data.rslt.new_name},function(r) {if (!r.status) {data.inst.refresh();$.jstree.rollback(data.rlbk);}});})// 1) the loaded event fires as soon as data is parsed and inserted// 2) but if you are using the cookie plugin or the core `initially_open` option:.one("reopen.jstree",function(event, data) {})// 3) but if you are using the cookie plugin or the UI `initially_select` option:.one("reselect.jstree",function(event, data) {});});</script></pre>4.代码解析<p></p><p><pre name="code" class="java">import java.util.List;public class Department {// 部门idprivate String departmentid;// 部门名称private String name;// ⽗级部门IDprivate String parentid;//同级之间的排序。
纯CSS实现的下拉菜单
纯CSS实现的下拉菜单⼀般的下拉菜单都是由javascript 和 css去实现。
但CSS3给我们提供了很多⽅法。
下⾯的代码就是由纯CSS来实现的漂亮下拉菜单,不包括任何的脚本⽂件:它结合了text-shadow、radius-border、box-shadow等等。
但这个兼容性并不算好,⽽且代码量也⽐较⼤,实际项⽬中估计很少⽤上,但在学习CSS过程中是⼀个不错的实验,它灵活了利⽤CSS各种属性实现了原本脚本才能实现的东西。
源代码如下(有详细的解释了):1<html>2<head>3<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>4<title>纯CSS下拉菜单</title>5<style type="text/css">6 body{7 background: #ebebeb;8 width: 900px;9 margin: 20px auto;10 color: #666;11 }12 a{13 color: #333;14 }15 #nav{16 margin: 0;17 padding: 7px 6px 0;18 line-height: 100%;/*实现菜单项垂直居中*/19/*设计圆⾓外框及阴影*/20 border-radius: 2em;21 -webkit-border-radius: 2em;22 -moz-border-radius: 2em;23 -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.4);24 -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.4);25/*为菜单外框添加渐变背景效果*/26 background: #8b8b8b;/*兼容不⽀持CSS3浏览器*/27 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#a9a9a9',endColorstr='#7a7a7a');/*兼容IE*/28 background: -webkit-gradient(linear,left top,left bottom,from(#a9a9a9),to(#7a7a7a));/*兼容webkit引擎浏览器*/29 background: -moz-linear-gradient(top,#a9a9a9,#7a7a7a);/*兼容⽕狐3.6+*/30 border: 1px solid #6d6d6d;31 }32 #nav li{ /*定义⼦菜单列表样式*/33 margin: 0 5px;34 padding: 0 0 8px;35 float: left; /*实现⽔平并列显⽰*/36 position: relative; /*定义包含块*/37 list-style: none;38 }39 #nav a{ /*a链接默认样式*/40 font-weight: bold;41 color: #e7e5e5;42 text-decoration: none;43 display: block;44 padding: 8px 20px;45 margin: 0;46/*设计圆⾓外框及阴影*/47 -webkit-border-radius:1.6em;48 -moz-border-radius:1.6em;49 text-shadow:0 1px 1px rgba(0,0,0,0.3);50 }51 #nav .current a,#nav li:hover>a{ /*主菜单链接,⿏标经过时的效果*/52 background: #d1d1d1;53 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#a1a1a1');54 background: -webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#a1a1a1));55 background: -moz-linear-gradient(top,#ebebeb,#a1a1a1);56 color: #444;57 border-top: 1px solid #f8f8f8;58 -webkit-box-shadow:0 1px 1px rgba(0,0,0,0.2);59 -moz-box-shadow:0 1px 1px rgba(0,0,0,0.2);60 box-shadow: 0 1px 1px rgba(0,0,0,0.2);61 text-shadow:0 1px 0 rgba(255,255,255,0.8);62 }63 #nav ul li:hover a,#nav li:hover li a{64/*⼦菜单链接,⿏标经过时的效果*/65 background: none;66 border: none;67 color: #666;68 -webkit-box-shadow:none;69 -moz-box-shadow:none;70 }71 #nav ul a:hover{72 background: #0399d4 !important;73 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#04acec',endColorstr='#0186ba');74 background: -webkit-gradient(linear,left top,left bottom,from(#04acec),to(#0186ba)) !important;75 background: -moz-linear-gradient(top,#04acec,#0186ba) !important;76 color: #fff !important;77 -webkit-border-radius:0;78 -moz-border-radius:0;79 text-shadow:0 1px 1px rgba(0,0,0,0.1);80 }81 #nav ul{ /*⼆级列表项样式*/82 background: #ddd;83 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#cfcfcf');84 background: -webkit-gradient(linear,left top,left bottom,from(#ffffff),to(#cfcfcf));85 background: -moz-linear-gradient(top,#ffffff,#cfcfcf);86 display: none; /*在默认状态下隐藏⼦菜单列表框*/87 margin: 0;88 padding: 0;89 width: 185px;90 position: absolute;91 left: 0;92 top: 35px;93 border: 1px solid #b4b4b4;94 -webkit-border-radius:10px;95 -moz-border-radius:10px;96 border-radius:10px;97 -webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);98 -moz-box-shadow:0 1px 3px rgba(0,0,0,.3);99 box-shadow: 0 1px 3px rgba(0,0,0,.3);100 }101 #nav li:hover>ul{ /*⿏标经过时显⽰⼦菜单*/102 display: block;103 }104 #nav ul li{105 float: none;106 margin: 0;107 padding: 0;108 }109 #nav ul a{110 font-weight: normal;111 text-shadow:0 1px 1px rgba(255,255,255,0.9);112 }113/*三级菜单样式*/114 #nav ul ul{115 left: 181px;116 top: -3px;117 }118 #nav ul li:first-child>a{ /*设置第⼀个元素的圆⾓效果*/119 -webkit-border-top-left-radius:9px;120 -moz-border-radius-topleft:9px;121 -webkit-border-top-right-radius:9px;122 -moz-border-radius-topright:9px;123 }124 #nav ul li:last-child>a{ /*设置最后⼀个元素的圆⾓效果*/125 -webkit-border-bottom-left-radius:9px;126 -moz-border-radius-bottomleft:9px;127 -webkit-border-bottom-right-radius:9px;128 -moz-border-radius-bottomright:9px;129 }130 #nav:after{ /*清除固定⾼度,让菜单框⾃动张开包含所有⼦元素*/131 content: '.';132 display: block;133 clear: both;134 visibility: hidden;135 line-height: 0;136 height: 0;137 }138 #nav{139 display: inline-block;140 }141 html[xmlns] #nav{ /*兼容IE7*/142 display: block;143 }144 *html #nav{ /*兼容IE6*/145 height: 1%;146 }147</style>148</head>149<body>150<ul id="nav">151<li class="current"><a href="#">主页</a></li>152<li><a href="#">主菜单1 >></a>153<ul>154<li><a href="#">⼦菜单1</a></li>155<li><a href="#">⼦菜单2</a></li>156<li><a href="#">⼦菜单3 >></a>157<ul>158<li><a href="#">三级菜单1</a></li>159<li><a href="#">三级菜单2</a></li>160<li><a href="#">三级菜单3 >></a>161<ul>162<li><a href="#">四级菜单1</a></li> 163<li><a href="#">四级菜单2</a></li> 164<li><a href="#">四级菜单3</a></li> 165</ul>166</li>167</ul>168</li>169</ul>170</li>171<li><a href="#">主菜单2</a></li>172<li><a href="#">主菜单3</a></li>173</ul>174</body>175</html>。
纯CSS下拉菜单和右拉菜单的实现方法
纯CSS下拉菜单和右拉菜单的实现方法下拉和右拉菜单是网页当中最为常见的组件为便于理解,两个例子都只写了基本样式,实际应用时可以添加符合页面风格的美化样式,【】给大家讲解一下实现思路。
以下两例公用样式:<style>body,ul{margin:0px;padding:0px;}li{list-style:none;}a{text-decoration:none;}</style>一、纯CSS实现下拉菜单本例实现效果CSS代码#nav{height:18px;}#nav li{float:left;display:inline;}.list{background: #FFF;}.menu{height:18px;padding-left:10px;padding-right:10px;overflow:hidden;}.menu:hover{height:auto;}.menu:hover .list{position:absolute;z-index:1;}.list a{display:block}HTML代码<h3>下拉菜单示例</h3><ul id="nav"><li class="menu">菜单项目<div class="list"><a href="#">菜单项目</a><a href="#">菜单项目</a></div></li><li class="menu">菜单项目<div class="list"><a href="#">菜单项目</a><a href="#">菜单项目</a></div></li><li class="menu">菜单项目<div class="list"><a href="#">菜单项目</a><a href="#">菜单项目</a><a href="#">菜单项目</a></div></li><li class="menu">菜单项目<div class="list"><a href="#">菜单项目2</a><a href="#">菜单项目</a><a href="#">菜单项目</a></div></li></ul>实现关键点:1.一级导航指定固定高度,并将超出部分隐藏:.menu{height:18px;overflow:hidden;};2.通过hover事件将高度属性改为auto:.menu:hover{height:auto;};3.为了二级菜单显示时不影响其他节点的位置,通过position:absolute将二级菜单踢出文档流,并指定其优先层级menu:hover .list{position:absolute;z-index:1;}二、纯CSS实现右拉菜单本例实现效果CSS代码需要上面的公用样.menu-v{position:relative;width:100px;height:18px;padding-left:10px;padding-right:10px;}.list-v{background: #fff;display:none;width:120px;}.list-v a{display:block}.menu-v:hover .list-v{display:block;position:absolute;z-index:1;left:80px;top:0px;}HTML代码<ul><li class="menu-v">菜单项目<div class="list-v"><a href="#">菜单项目</a><a href="#">菜单项目</a><a href="#">菜单项目</a><a href="#">菜单项目</a></div></li><li class="menu-v">菜单项目<div class="list-v"><a href="#">菜单项目</a><a href="#">菜单项目</a><a href="#">菜单项目</a></div></li></ul>实现关键点1.先将二级菜单隐藏并指定显示位置并踢出文档流.list-v{display:none;position:absolute;z-index:1;left:80px;top:0px;width:120px;background: #fff;} 2.通hover事件将二级菜单显示.menu-v:hover .list-v{display:block;}。
纯css实现无限嵌套菜单
纯css实现⽆限嵌套菜单效果图:demo:关键的地⽅都以颜⾊明显标识<!DOCTYPE html><html><head><title>menu</title><meta charset="UTF-8"><style type="text/css">.menu {display: inline-block;box-shadow: 0 5px 15px #d8d8d8;}.menu-item {width: 100px;position: relative;padding: 5px 10px 5px 50px;border-bottom: 1px solid #e5f0f6;}.item-child {position: absolute;}.menu-item:hover{background: #eefbff;}.menu-item .item-child{top: 0;left: calc(100% + 3px);visibility: hidden;opacity: 0;box-shadow: 0 5px 15px #d8d8d8;transition: visibility 0.5s ease,opacity 0.5s ease;}.menu-item:hover > .item-child{visibility: visible;opacity: 1;}.menu-item > .item-child:active {/* 这种⽅式⽆法触发点击事件,最好改为js处理消失 */display: none;}span::after {content: '...';right: 10px;position: absolute;}span:only-child::after {content: '';}</style></head><body><div class="wrap"><div class="menu"><div class="menu-item"><span>title-1</span><div class="item-child"> <!-- ⼀级嵌套 --><div class="menu-item"><span>title-1-1</span></div><div class="menu-item"><span>title-1-2</span></div><div class="menu-item"><span>title-1-3</span><div class="item-child"> <!-- ⼆级嵌套 --><div class="menu-item"><span>title-1-3-1</span></div><div class="menu-item"><span>title-1-3-2</span></div><div class="menu-item"><span>title-1-3-3</span></div></div></div></div></div><div class="menu-item"><span>title-2</span><div class="item-child"><div class="menu-item"><span>title-2-1</span></div><div class="menu-item"><span>title-2-2</span></div><div class="menu-item"><span>title-2-3</span></div><div class="menu-item"><span>title-2-4</span></div></div></div></div></div></body></html>⼆、基于jquery plugin版本<!DOCTYPE html><html><head><title>menu</title><script type="text/javascript" src="js/jquery.min.js"></script> <meta charset="UTF-8"><style type="text/css">.cmenu {display: inline-block;box-shadow: 0 5px 15px #d8d8d8;position: absolute;}.cmenu-item {width: 100px;position: relative;padding: 5px 10px 5px 50px;border-bottom: 1px solid #e5f0f6;}.item-child {width: 0;position: absolute;top: 0;visibility: hidden;opacity: 0;box-shadow: 0 5px 15px #d8d8d8;transition: all .3s ease .2s;}.cmenu-item:hover{background: #eefbff;}.cmenu-item:hover > .item-child{width: 100%;visibility: visible;opacity: 1;}.item-child>.cmenu-item{height: 0;padding: 0;transition: all .3s ease .2s;}.cmenu-item:hover>.item-child>.cmenu-item{height: 20px;padding: 5px 10px 5px 50px;}.cmenu.item-left .item-child {left: calc(100% + 1px);}.cmenu.item-right .item-child {right: calc(100% + 1px);.cmenu span::after {content: '...';right: 10px;position: absolute;}.cmenu span:only-child::after {content: '';}.hidden {display: none;}.disabled{color: silver;}</style></head><body><div class="wrap"><div id="mn" style="position: absolute;right: 900px;"></div></div></body><script type="text/javascript">(function($){function _init(ctn,op){ctn.innerHTML = '';ctn.classList.add('cmenu');_initEvent(ctn,op);/*绑定事件*/if(op.url){$.getJson(op.url,function(data){_createMenuItem(ctn,data);});}else if(op.data) _createMenuItem(ctn,op.data,op);}function _createMenuItem(pNode,data,op){/* 迭代⽣成⼦孙节点 */data.map(function(item){var itemNode = $('<div class="cmenu-item"></div>'),spanNode = $('<span>'+item.text+'</span>');itemNode.data('info',item);if(item.show == false) itemNode.addClass('hidden');if(item.disable == true) itemNode.addClass('disabled');$(pNode).append(itemNode.append(spanNode));if(item.children) {var childNode = $('<div class="item-child"></div>');$(itemNode).append(childNode);_createMenuItem(childNode,item.children,op);}});}function _initEvent(ctn,op){$(ctn).off('click');$(ctn).on('click',function(){event = window.event || arguments.callee.caller.arguments[0];var node = event.target, cList = node.classList;if(!Array.from(cList).includes('cmenu-item')) node = $(node).parents('.cmenu-item:first');var infoRow = $(node).data('info');if(!infoRow.disable && op.click && typeof op.click == 'function') op.click(infoRow);$('.item-child').addClass('hidden');event.stopPropagation();setTimeout(function(){ $('.item-child').removeClass('hidden'); },50);});$(ctn).off('mouseenter').on('mouseenter',function(){var pageX = document.documentElement.clientWidth,itemX = ctn.offsetLeft,isLess = pageX-itemX-100<200;if(isLess){ctn.classList.remove('item-left');ctn.classList.add('item-right');}else{ctn.classList.add('item-left');ctn.classList.remove('item-right');}});}$.fn.cmenu = function(options,param){/* 判断是否为对外调⽤API */if(typeof option == 'string') $.fn.cmenu.methods[options](this,param);/* 初始化组件 */var op = $.extend({},$.fn.cmenu.defaults,options);return this.each(function(){_init(this,op);});$.fn.cmenu.methods = {}$.fn.cmenu.defaults = {}})(jQuery)/* 上⾯的js放到公共js⽂件中即可 */var data = [{text:'编程类',id:1,cls:'',children:[{text:'Java',show:true,disable: true},{text:'Javascript',id:4,cls:'',show:false}, {text:'Python',id:5,cls:'',show:true,children:[{text:'object',disable: true},{text:'array'},{text:'string'},{text:'array'},{text:'string'},{text:'array'},{text:'string'},{text:'array'},{text:'string'},{text:'array'},{text:'string'},{text:'array'},{text:'string'}]}]},{text:'算法类',id:2,cls:'',show:true}];$('#mn').cmenu({data:data,click:clickEvent}); function clickEvent(row){console.log(row);}</script></html>View Code。
用css属性画出一棵圣诞树
这里的width和height其实就是内侧border的长度然后分别设置border上下左右的属性用transparent隐藏不需要展示的border
用 css属性画出一棵圣诞树
对于学习前端的童鞋,css的掌握是必须的。今天就来实现用css画出一棵圣诞树。 主要练习的是css里面border的练习与掌握程度。 在body创建一个主区域<div></div>:我们用border搭建的三角形在主区域内。
改主区域的背景色:可以给设定一个高度 创建第一个三角形:
修改css属性得到三角形:
这里的每个区域代表一个矩形,然后通过修改矩形得到三角形
ቤተ መጻሕፍቲ ባይዱ
border。
这里的width和height其实就是内侧border的长度,然后分别设置border上下左右的属性,用transparent隐藏不需要展示的
然后用div区域做树干: 最终效果:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<li class="Child"><a href="#">叶结点2</a></li>
<li class="Child"><a href="#">叶结点3</a></li>
<li class="Child"><a href="#">Oracle/DB2/Sybase</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">服务器</a>
<ul>
<li class="Child"><a href="#">Windows/IIS</a></li><!--Child Node-->
<li class="Child"><a href="#">Perl/Python</a></li>
<li class="Child"><a href="#">Web综合/开源</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">数据库</a>
<li><a href="#">五级目录</a>
<ul>
<li><a href="#">......</a>
<ul>
<li><a href="#">第n级目录</a>
<ul>
<html xmlns="/1999/xhtml" lang="zh-cn">
<head>
<title>CNL Tree Menu Ver1.02 - 无限级树形菜单 Written by CNLei, 枫岩 </title>
<meta http-equiv="content-type" content="text/html;charset=gb2312" />
<li class="Child"><a href="#">.Net</a></li>
<li class="Child"><a href="#">ASP/VBScript</a></li>
<li class="Child"><a href="#">PHP</a></li>
<h4>CNL Tree Menu1</h4>
<p><a id="AllOpen_1" href="#" onclick="MyCNLTreeMenu1.SetNodes(0);Hd(this);Sw('AllClose_1');">全部展开</a><a id="AllClose_1" href="#" onclick="MyCNLTreeMenu1.SetNodes(1);Hd(this);Sw('AllOpen_1');" style="display:none;">全部折叠</a></p>
</ul></li><!--Sub Node 6 -->
</ul></li><!--Sub Node 5 -->
</ul></li><!--Sub Node 4-->
</ul></li><!--Sub Node 3-->
<li>通过W3C校验(XHtml1-Strict,CSS1.0). </li>
<li>最后更新:2006-2-13 </li>
</ol>
</dd>
</dl>
<!--CNLTreeMenu Start:-->
<div class="CNLTreeMenu" id="CNLTreeMenu1">
</head>
<body>
<p>实例演示:</p>
<dl>
<dt>CNL Tree Menu <small>Ver1.02</small></dt>
<dd><strong>Author</strong>:CNLei,枫岩</dd>
<dd><strong>MySite</strong>:<a href="" style="color:#00f;"></a></dd>
<li class="Child"><a href="#">网页制作工具</a></li>
<li class="Child"><a href="#">设计/图形</a></li>
<li class="Child"><a href="#">Flash/多媒体</a></li>
</ul></li><!--Sub Node 2-->
<li><a href="#1">二级目录</a>
<ul>
<li><a href="#">三级目录</a>
<ul>
<li><a href="#">四级目录</a>
<ul>
4.通过W3C校验(XHtml1-Strict,CSS1.0).
======================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</ul></li><!--Sub Node n -->
l 1.0, CSS 2.0, IE5.0+, FF1.0+, Opera8.5+
Update : 2006-2-12
**************************************
-->
<link type="text/css" rel="stylesheet" href="/mycode/CNLTreeMenu/Ver1.0.2/css/css4cnltreemenu.css" />
<li class="Child"><a href="#">JavaScript</a></li><!--Child Node-->
<li class="Child"><a href="#">HTML/XHTML/CSS</a></li>
<li class="Child"><a href="#">Ajax</a></li>
纯CSS仿树形菜单.txt
更新时间:2010-07-17 阅读次数:117
1."CNL Tree Menu"为无限级树形,兼容以下版本的浏览器:IE5.0+, FF1.06+, Opera8.5+ ……