CSS3 菜单和选择菜单 - 在 IE 和 Firefox 中不起作用

标签 css firefox internet-explorer-11 microsoft-edge

我创建了一个 CSS3 下拉菜单,工作完美 直到我的任务是添加一个选择框来选择预设主题

然后出现了 IE 11、Edge 和 Firefox 的问题

以下只是我运行的脚本的一个非常基本的版本,但结果仍然相同

HTML:

#menu {
  background: green;
}
#menu li {
  list-style: none;
  float: left;
  padding: 5px;
}
#subMenuItems {
  display: none;
  background: red;
  background-color: red;
}
#subMenuItems li {
  float: none !important;
}
#menu li:hover #subMenuItems {
  display: block;
}
<div id="menu">
  <ul id="menuContent">
    <li>
      Item 1
      <ul id="subMenuItems">
        <li>
          <select>
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
          </select>
        </li>
      </ul>
    </li>
    <li>Item 2
      <ul id="subMenuItems">
        <li>Test1</li>
        <li>Test 2</li>
        <li>Test 3</li>
      </ul>
    </li>
    <li>Item 3
      <ul id="subMenuItems">
        <li>Test 1</li>
        <li>
          <select name="D1">
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
            <option>1</option>
          </select>
        </li>
        <li>Test 2</li>
        <li>Test 3</li>
      </ul>
    </li>
  </ul>
</div>

复制我得到的结果: 1) 将鼠标悬停在元素 1 或元素 3 上即可查看菜单 2)在此菜单内将有一个选择 3) 单击选择箭头展开菜单 4)将鼠标光标移离菜单(使其隐藏)

在 IE 11 和 Edge 中 您应该看到选择的下拉菜单仍然可见

Firefox 将隐藏所有内容(正如它应该的那样) 但重复步骤 1 和 2 并且选择下拉菜单仍然被消耗 当您将鼠标悬停在下拉菜单中时,即使您仍然将鼠标悬停在 li 元素上,它也会隐藏菜单,并且菜单应该保持可见

我的问题: 这只是浏览器的一个错误吗? 我的代码有错误吗? 有什么解决方案吗?

最佳答案

这并不是 select 函数的一个很好的用途,因为它是一个 form-element-submit 元素。

select 是为表单创建的,以便某人可以加载选择并提交。

我想您可以在菜单结构中使用选择,但它需要包含鼠标事件,以便选择操作有一些事情要做。

   this is the code I played with:

 <!DOCTYPE html>
 <html>
 <head>
 <style>
 #menu {
  background: green;
  }
  #menu li {
  list-style: none;
  float: left;
  padding:5px;
   }
   #subMenuItems {
   display: none;

    background-color: red;
  }
  #subMenuItems li {
    float: none !important;
   }
  #subMenuItems li:hover {

  color: yellow;
  background-color: black;

    }


 #menu li:hover #subMenuItems {

  display: block;
  }
</style>
</head>
<body>
<div id="menu">
 <ul id="menuContent">
  <li>
  Item 1
  <ul id="subMenuItems">
   <li>1</li>
    <li>2</li>
    <li>3</li>
  </ul>
</li>
<li>Item 2
  <ul id="subMenuItems">
    <li>Test1</li>
    <li>Test 2</li>
    <li>Test 3</li>
  </ul>
</li>
  <li>Item 3
  <ul id="subMenuItems">
    <li>a</li>
    <select name="D1">
        <option onclick='Javscript:alert("box1")'>1</option>
        <option onclick='Javscript:alert("box2")'>2</option>
        <option onclick='Javscript:alert("box3")'>3</option>
  </select>
   <li>b</li>
    <li>c</li>
  </ul>
  </li>
  </ul>
  </div>
  </body>
  </html>

关于CSS3 菜单和选择菜单 - 在 IE 和 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39489835/

相关文章:

javascript - 选择特定单选框时使用 jquery 禁用循环中的文本框

wordpress - 更改 Wordpress 产品页面中侧边栏和内容的宽度

javascript - HTML - 页面的全高,包括滚动之外的内容

jquery - Firefox:将文件上传对话框限制为仅 mp3

html - flex-grow 在 Internet Explorer 11 (IE11) 中无法正确呈现

angularjs - 无法在 Internet Explorer 11 上运行 Protractor

css - 相对元素中的绝对定位元素导致 Chrome/Safari 溢出

php - 在打印页面中显示背景颜色

javascript - 使用 jQuery 按数据属性进行选择 - 在 Chrome 中有效,在 Firefox 中无效。选择?

html - IE11 中的 CSS3 动画问题