菜单项切换并在屏幕上显示缩小尺寸

时间:2013-06-25 作者:Josh Smith

我和一个十二岁的孩子一起工作。我制作了自己的图像作为菜单背景。当我通过移动浏览器窗口来减小屏幕宽度时,菜单项似乎会自动切换。我从来没有为这种行为摆弄过任何CSS或JS。生成的下拉列表覆盖了其他菜单项,使其无法读取。更不用说,我一开始就不想要这种行为。

有自动切换之类的东西吗?

1 个回复
最合适的回答,由SO网友:tnog 整理而成

这很可能是2012年的默认行为;响应小屏幕,从而在页面上堆叠元素,包括导航的内容,#site-navigation.

让我们看看默认TT主题中的nav部分:

<nav id="site-navigation" class="main-navigation" role="navigation">
  <h3 class="menu-toggle">Menu</h3>
    <a class="assistive-text" href="#content" title="Skip to content">Skip to content</a>
    <div class="nav-menu">
       <ul class="nav-menu">

         <!-- More stuff below: li items, closing /ul, /div /nav tags-->
基本上,遵循mobile first设计理念,TT默认隐藏ul.nav-menu (显示:无)。通过使用媒体查询,它使最小宽度为600px的屏幕可见。通过jQuery点击.menu-toggle 它添加了一个额外的.toggled-onul.nav-menu 使其可见。

 // TT style.css lines 597 to 604
.main-navigation ul.nav-menu,
.main-navigation div.nav-menu > ul {
   display: none;
}
.main-navigation ul.nav-menu.toggled-on,
.menu-toggle {
   display: inline-block;
}

// 1421
@media screen and (min-width: 600px) {

    .main-navigation ul.nav-menu,
.main-navigation div.nav-menu > ul {
    border-bottom: 1px solid #ededed;
    border-top: 1px solid #ededed;
    display: inline-block !important;
    text-align: left;
    width: 100%;
}
在childtheme中,您已覆盖默认值display: none 的样式.nav-menu 因此,它在所有屏幕大小都可见。

对于一个简单的修复,我会尝试这样做:

// Basically adding a media query to float your menu li elements when small screen using TT\'s breakpoint for small screens of 600px 
@media screen and (max-width: 599px) {
   .main-navigation li {
      float: left
   }
   ul.children {
      //hide the secondary links from displaying
      display:none;
   }
}

结束

相关推荐

Custom menus not showing

作为我上一次关于菜单的未解决查询的后续,这个问题已经进一步扩展。我的菜单没有打印代码中的任何地方。我正在注册菜单功能。php:add_action( \'after_setup_theme\', \'your_newtheme_setup\' ); if ( ! function_exists( \'your_newtheme_setup\' ) ) : function your_newtheme_setup() { if (