对于一个新元素,我使用 Bootstrap 3 和 SmartMenus 子菜单的插件。
我的问题是,在 Chrome (v 58) 上,具有子菜单的链接上的插入符在加载时消失,子菜单在单击而不是悬停时显示,并且它们没有关闭当另一个打开时。
不过我已经找到了这个问题的根源。 .sm-collapsible
类在加载时应用于我的 ul.navbar-nav
元素。
但是,仅当 ul.navbar-nav
元素具有 display:flex;
并且在 Chrome 上时才适用。我尝试使用 display:table;
和 display:table-cell;
重现我的布局,但它也不起作用。
所以这并不是一个特别的 flex 问题,而是它来自布局并且它扰乱了 JavaScript。
我不知道为什么或怎么可能。
您可以在此处查看在线版本:https://lesdeuxvagues.com/laloupe (悬停/单击目录以查看问题)
提前致谢...我真的被困在这里了。
编辑
我刚刚找到了负责添加 .sm-collapsible
类的 JS 行。在这里:
obj.isCollapsible = function() { return !/^(left|right)$/.test(this.$firstLink.parent().css('float') );};
它在 Chrome 上始终返回 true(当 display:flex; 未被注释时),但仅在 Firefox 和 Edge 的移动设备上返回。
最佳答案
您可以尝试在 CSS 中将 ul.navbar-nav
更改为 display: block;
(您可以修改 bootstrap.less: #header #navbar > ul { display: block; }
或在你自己的 less 文件中覆盖它)或通过查找负责添加 .sm-collapsible
并删除该操作的函数来修改插件的 JS。
关于javascript - 由于显示 :flex;,SmartMenus 在 Chrome 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43998523/