html – 选择选项打开下拉菜单

前端之家收集整理的这篇文章主要介绍了html – 选择选项打开下拉菜单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一个下拉菜单和一个带有选择下拉菜单的表单.

问题是当我打开窗体中的下拉菜单并选择第一个选项(“1”)时,菜单自动打开.

如果我使用一些< br>或者在div中放一些边际顶点,这样做不会发生,所以我认为这与菜单与表单的接近有关,但是我无法弄清楚发生了什么.

这是发生的一个例子(或者作为jsfiddle):

  1. #menu {
  2. position: relative;
  3. z-index: 1;
  4. clear: both;
  5. }
  6.  
  7. #nav{
  8. height: 39px;
  9. font: 14px Arial,Verdana,sans-serif;
  10. background: #f8f8f8;
  11. border: 1px solid #DDDDDD;
  12. border-radius: 3px;
  13. min-width:500px;
  14. margin-left: 0px;
  15. padding-left: 0px;
  16. }
  17.  
  18. #nav li{
  19. list-style: none;
  20. display: block;
  21. float: left;
  22. height: 40px;
  23. position: relative;
  24. border-right: 1px solid #DDDDDD;
  25. }
  26.  
  27. #nav li a{
  28. padding: 0px 30px 0px 30px;
  29. margin: 0px 0;
  30. line-height: 40px;
  31. text-decoration: none;
  32. border-right: 1px solid #DDDDDD;
  33. height: 40px;
  34. color: #6791AD;
  35. font-weight: bold;
  36. }
  37.  
  38. #nav ul{
  39. background: #f2f5f6;
  40. padding: 0px;
  41. border-bottom: 1px solid #DDDDDD;
  42. border-right: 1px solid #DDDDDD;
  43. border-left:1px solid #DDDDDD;
  44. border-radius: 0px 0px 3px 3px;
  45. Box-shadow: 2px 2px 3px #ECECEC;
  46. -webkit-Box-shadow: 2px 2px 3px #ECECEC;
  47. -moz-Box-shadow:2px 2px 3px #ECECEC;
  48. width:200px;
  49. }
  50.  
  51. #nav li:hover{
  52. background: white;
  53. }
  54. #nav li a{
  55. display: block;
  56. }
  57. #nav ul li {
  58. border-right:none;
  59. border-bottom:1px solid #DDDDDD;
  60. width:200px;
  61. height:39px;
  62. }
  63.  
  64. #nav ul li li {
  65. background: #f2f5f6;
  66. padding: 0px;
  67. border-bottom: 1px solid #DDDDDD;
  68. border-right: 1px solid #DDDDDD;
  69. border-left:1px solid #DDDDDD;
  70. border-radius: 0px 0px 3px 3px;
  71. Box-shadow: 2px 2px 3px #ECECEC;
  72. -webkit-Box-shadow: 2px 2px 3px #ECECEC;
  73. -moz-Box-shadow:2px 2px 3px #ECECEC;
  74. width:200px;
  75. }
  76.  
  77. #nav ul li ul {
  78. background: #f2f5f6;
  79. padding: 0px;
  80. border-bottom: 1px solid #DDDDDD;
  81. border-right: 1px solid #DDDDDD;
  82. border-left:1px solid #DDDDDD;
  83. border-radius: 0px 0px 3px 3px;
  84. Box-shadow: 2px 2px 3px #ECECEC;
  85. -webkit-Box-shadow: 2px 2px 3px #ECECEC;
  86. -moz-Box-shadow:2px 2px 3px #ECECEC;
  87. width:200px;
  88. }
  89.  
  90. #nav ul li a {
  91. border-right: none;
  92. color:#6791AD;
  93. text-shadow: 1px 1px 1px #FFF;
  94. border-bottom:1px solid #FFFFFF;
  95. }
  96. #nav ul li:hover{background:#DFEEF0;}
  97. #nav ul li:last-child { border-bottom: none;}
  98. #nav ul li:last-child a{ border-bottom: none;}
  99. /* Sub menus */
  100. #nav ul{
  101. display: none;
  102. visibility:hidden;
  103. position: absolute;
  104. top: 40px;
  105. }
  106.  
  107. /* Third-level menus */
  108. #nav ul ul{
  109. top: 0px;
  110. left:200px;
  111. display: none;
  112. visibility:hidden;
  113. border: 1px solid #DDDDDD;
  114. }
  115. /* Fourth-level menus */
  116. #nav ul ul ul{
  117. top: 0px;
  118. left:170px;
  119. display: none;
  120. visibility:hidden;
  121. border: 1px solid #DDDDDD;
  122. }
  123.  
  124. #nav ul li{
  125. display: block;
  126. visibility:visible;
  127. }
  128. #nav li:hover > ul{
  129. display: block;
  130. visibility:visible;
  131. }
  1. <div id='menu'>
  2. <ul id='nav'>
  3. <li>
  4. <a href='#'>Level 1</a>
  5. <ul>
  6. <li><a href='#'>Level 1-1</a>
  7. <ul>
  8. <li><a href='#'>Level 1-1-1</a></li>
  9. <li><a href='#'>Level 1-1-2</a></li>
  10. </ul>
  11. </li>
  12. <li><a href='#'>Level 1-2</a>
  13. <ul>
  14. <li><a href='#'>Level 1-2-1</a></li>
  15. <li><a href='#'>Level 1-2-2</a></li>
  16. </ul>
  17. </li>
  18. <li><a href='#'>Level 1-3</a>
  19. <ul>
  20. <li><a href='#'>Level 1-3-1</a></li>
  21. <li><a href='#'>Level 1-3-2</a></li>
  22. </ul>
  23. </li>
  24. </ul>
  25. </li>
  26. </ul>
  27. </div>
  28. <div class='form'>
  29. <form>
  30. <select>
  31. <option selected='true'> 1 </option>
  32. <option> 2 </option>
  33. <option> 3 </option>
  34. </select>
  35. <input type='button' value="Go"/>
  36. </form>
  37. </div>

解决方法

这是一个Chrome(Blink?)相关的错误. Chrome尝试在光标位置“重置”菜单悬停状态.你可以尝试这个脏的解决方案:

Javascript(带JQuery):

  1. $(function(){
  2. $("select").click(function(){
  3. $("body").addClass("select-activated");
  4. setTimeout(function(){
  5. $("body").removeClass("select-activated");
  6. },200);
  7. });
  8. });

在你的CSS中:

  1. body.select-activated #nav ul {
  2. display: none;
  3. }

这将保护菜单显示与“恢复过程”.

我建议你在Chromium Issues site上报告这个bug

更新

This JSFiddle演示了原版和固定版本.在Debian 7.6上的Chrome 35.0.1916.153中进行了测试.

猜你在找的HTML相关文章