【问题标题】:Responsive Menu - how to?响应式菜单 - 如何?
【发布时间】:2017-09-01 14:43:05
【问题描述】:

我正在构建一个非常简单的响应式菜单,但我在重新排列子菜单时遇到了一些麻烦。所以基本上我有4个菜单点。其中 3 个有子菜单,一个只是一个超链接。菜单的排列与屏幕宽度绑定:

宽屏:

menu point 1 | menu point 2 | menu point 3 | menu point 4  

子菜单应该出现在整个项目的底部

中间屏幕

menu point 1 | menu point 2 
menu point 3 | menu point 4

子菜单应该出现在所选菜单点的正下方,所以如果我点击第 2 点,子菜单应该出现在 2 个菜单行之间

最小的屏幕

menu point 1
menu point 2
menu point 3
menu point 4

与中间屏幕相同,菜单应出现在所选点的正下方。

所以我的菜单代码实际上只适用于中间屏幕:

<ul id="mainMenu">
  <li>menu point 1 (just hyperlink)</li>
  <li>menu point 2</li>
  <ul id="subMenu2">
    <li> ... </li>
  </ul> 
  <li>menu point 3</li>
  <li>menu point 4</li>
    <ul id="subMenu3">
      <li> ... </li>
    </ul> 
    <ul id="subMenu4">
      <li> ... </li>
    </ul> 
 </ul>

基本上,对于不同的屏幕尺寸,subMenu2、subMenu3 和 subMenu4 列表必须位于不同的位置,所以这个版本适用于最小的屏幕:

<ul id="mainMenu">
  <li>menu point 1 (just hyperlink)</li>
  <li>menu point 2</li>
  <ul id="subMenu2">
    <li> ... </li>
  </ul> 
  <li>menu point 3</li>
    <ul id="subMenu3">
      <li> ... </li>
    </ul> 
  <li>menu point 4</li>
    <ul id="subMenu4">
      <li> ... </li>
    </ul> 
 </ul>

我什至不确定这是否是正确的方法!?非常感谢任何提示。

您好,

迈克尔

【问题讨论】:

    标签: html css asp.net menu responsive-design


    【解决方案1】:

    您可以使用媒体查询为给定屏幕尺寸的任何元素设置样式。只需执行以下操作:

    @media (max-width: 768px /* Or whatever size you want */) {
       .myElement {
          /* Styles go here */
       }
    }
    

    使用这种方法,您可以根据屏幕大小更改子菜单的位置。另外,您是否考虑过使用下拉菜单?以下是一些有用的链接:

    编辑:

    这是一个根据屏幕大小完全改变 div 位置的工作示例:

    HTML

    <div></div>
    

    CSS

    div {
      position: absolute;
      left: 0;
      top: 0;
      height: 200px;
      width: 200px;
      background: red;
    }
    
    @media (max-width: 768px) {
      div {
        left: auto;
        right: 0;
      }
    }
    

    Codepen

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回复。我知道媒体 css 是如何工作的(至少是基础知识),但我不知道如何改变列表或 div 块的整个位置。这甚至可能吗?
    • 是的,我将添加一个示例来帮助说明。希望我能理解你的问题。如果我要离开,请告诉我:P
    • 看起来不错。我觉得垂直重新排列元素会有点棘手。我会让你知道 :) (对 css 也很陌生)
    • 请记住绝对元素会忽略所有其他元素。当您尝试重新排列项目时,这有时会更容易。祝你好运!
    猜你喜欢
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 2022-08-03
    相关资源
    最近更新 更多