由于display:flex;

时间:2017-05-16 10:10:53

标签: javascript html css twitter-bootstrap flexbox


对于一个新项目,我使用 Bootstrap 3 和子菜单的 SmartMenus 插件。

我的问题是在 Chrome (第58页)上,带有子菜单的链接上的插入符号在加载时消失,子菜单在点击时显示而不是悬停,并且它们没有关闭当另一个人打开时。

我已经找到了这个问题的来源。课程.sm-collapsible在加载时应用于我的ul.navbar-nav元素。 但是,仅当ul.navbar-nav元素在Chrome上有display:flex; AND时才会应用它。我尝试使用display:table;display:table-cell;重现我的布局,但它也无效。

所以这不是特别灵活的问题,但它来自布局,它会混淆JavaScript。

我不知道为什么或怎么可能。

您可以在此处查看在线版本:https://lesdeuxvagues.com/laloupe(悬停/点击目录查看问题)

提前致谢...我真的被困在这里。

编辑
我刚刚找到了添加.sm-collapsible类的负责任的JS行。这是:
obj.isCollapsible = function() { return !/^(left|right)$/.test(this.$firstLink.parent().css('float')‌​);};

它在Chrome上一直返回true(当显示:flex;未注释时),但仅适用于Firefox和Edge的移动设备。

3 个答案:

答案 0 :(得分:0)

您可以尝试将CS​​S中的ul.navbar-nav更改为display: block;(您可以修改bootstrap.less:#header #navbar > ul { display: block; }或在您自己的较少文件中覆盖它)或修改插件的JS寻找负责添加.sm-collapsible并删除该操作的功能。

答案 1 :(得分:0)

我联系了该插件的编辑器,因为它似乎是插件编码方式的问题,现在已经修复了。显示:弯曲;不再造成问题了。

答案 2 :(得分:0)

这对我有用:

$string = '05/21/2018 ghijkl 10/12/2017 mnopqrst';
preg_split('/([0-9]{1,2}\/[0-9]{1,2}\/[0-9]{2,4})([a-zA-Z\s]+)/g', $string, $stringParts);

array (
    0 => '05/21/2018', 
    1 => 'ghijkl',
    2 => '10/12/2017',
    3 => 'mnopqrst'
);

注意obj.isCollapsible = function() { return (!/^(flex)$/.test(this.$firstLink.parent().parent().css('display'))) && (!/^(left|right)$/.test(this.$firstLink.parent().css('float'))); }; 必须位于display: flex