【问题标题】:hide div tag on mobile view only?仅在移动视图上隐藏 div 标签?
【发布时间】:2013-05-09 03:58:01
【问题描述】:

我正在为网站创建流畅的布局。我试图在移动视图中隐藏 <div> 或整个 <div> 本身的内容,而不是平板电脑和桌面视图。

这是我到目前为止所得到的......

#title_message {
    clear: both;
    float: left;
    margin: 10px auto 5px 20px;
    width: 28%;
    display: none;
}

我将移动布局的显示设置为“无”,并在平板电脑/桌面布局上设置为块...是否有更简单的方法来做到这一点,或者是这样吗?

【问题讨论】:

    标签: css fluid-layout


    【解决方案1】:

    你需要两件事。第一个是@media screen在一定的屏幕尺寸下激活特定代码,用于响应式设计。第二个是visibility: hidden属性的使用。一旦浏览器/屏幕达到 600 像素,#title_message 将被隐藏。

    @media screen and (max-width: 600px) {
      #title_message {
        visibility: hidden;
        clear: both;
        float: left;
        margin: 10px auto 5px 20px;
        width: 28%;
        display: none;
      }
    }
    

    编辑:如果您使用其他 CSS 移动设备,则只需将 visibility: hidden; 添加到 #title_message。希望对您有所帮助!

    【讨论】:

    • 修复了它。谢谢马特!
    • 我很高兴它成功了!感谢您将答案标记为正确。
    • 当你来到 StackOverflow 时……总会有你的查询的解决方案.....除了,大多数时候我似乎遇到了一些轻微的选择。 ...这个答案正是我想要的! ...谢谢老兄。 (ps 用于我网站上的自定义移动菜单amazewebs.com ...当宽度 时将显示移动菜单
    • 它对我有用。必须只显示移动页面@媒体屏幕和 (min-width: 700px) { .mobile-title { visibility: hidden; } } div.mobile-title h1 { text-align: center !important;字体大小:20px;字体粗细:粗体;填充:5px; }
    【解决方案2】:

    将 display 属性设置为默认none,然后在浏览器达到一定宽度时使用媒体查询将所需样式应用于 div。将媒体查询中的 768px 替换为您的 div 应该可见的最小 px 值。

    #title_message {
        display: none;
    }
    
    @media screen and (min-width: 768px) {
        #title_message {
            clear: both;
            display: block;
            float: left;
            margin: 10px auto 5px 20px;
            width: 28%;
        }
    }
    

    【讨论】:

    • 这是错误的方式。 div 不会显示在不支持媒体查询的浏览器上。
    • 他们当然是解决方案,但你这样做错误的方式。除非您的网站主要用于移动设备,否则您永远不会自下而上构建 CSS。
    • 我不认为移动和桌面是独立的网站。随着浏览器变大,扩大项目比随着浏览器变小而缩小项目要容易得多。在这种情况下,KT 正在构建响应式站点,无论它是“主要”用于移动设备还是仅针对所有浏览器进行了优化。移动优先的方法使移动浏览器不必加载从未实际应用过的额外 CSS 样式。这种方法不是错误的方式,它根本不是您建议构建 css 的方式。
    • @MMM 实际上,移动优先设计就是这样:自下而上。
    • @MMM 哎呀,我以为是 2015 年。无论如何,我只是反对“你永远不会自下而上构建你的 CSS”
    【解决方案3】:

    给出的解决方案在桌面上对我不起作用,它只显示了两个 div,尽管移动设备只显示了移动 div。所以我做了一点搜索,找到了 min-width 选项。我将我的代码更新为以下内容,现在可以正常工作了:)

    CSS:

        @media all and (min-width: 480px) {
        .deskContent {display:block;}
        .phoneContent {display:none;}
    }
    
    @media all and (max-width: 479px) {
        .deskContent {display:none;}
        .phoneContent {display:block;}
    }
    

    HTML:

    <div class="deskContent">Content for desktop</div>
    <div class="phoneContent">Content for mobile</div>
    

    【讨论】:

      【解决方案4】:
      @media only screen 
      and (min-device-width : 320px) 
      and (max-device-width : 480px) { #title_message { display: none; }}
      

      这适用于响应式设计,专门针对 iphone 屏幕使用单个页面。您实际上是在路由到不同的移动页面吗?

      【讨论】:

      • 那行不通。它消除了移动布局的所有 CSS。
      • 你能提供一个你的css的小样本吗?我没有在这里看到全貌,但这不应该抹去你的布局
      • 这个效果更好,因为 visibility: hidden 仅隐藏元素但仍然存在(该位置仍然存在)。而是显示:无;真正隐藏它并完全删除它。
      【解决方案5】:

      您可以通过此示例进行指导。在您的 css 文件上:

      .deskContent {
          background-image: url(../img/big-pic.png);
          width: 100%;
          height: 400px;
          background-repeat: no-repeat;
          background-size: contain; 
      }
      
      .phoneContent {
          background-image: url(../img/small-pic.png);
          width: 100%;
          height: 100px;
          background-repeat: no-repeat;
          background-size: contain;
      }
      
      @media all and (max-width: 959px) {
          .deskContent {display:block;}
          .phoneContent {display:none;}
      }
      
      @media all and (max-width: 479px) {
          .deskContent {display:none;}
          .phoneContent {display:block;}
      }
      

      在您的 html 文件中:

      <div class="deskContent">Content for desktop</div>
      <div class="phoneContent">Content for mobile</div>
      

      【讨论】:

        【解决方案6】:

        我刚刚换了职位并为我工作(仅显示移动设备)

        <style>
         .MobileContent {
        
             display: none;
        	 text-align:center;
        
         }
        
        @media screen and (max-width: 768px) {
        
         .MobileContent {
        
             display:block;
        
         }
        
        }
        </style>
        <div class="MobileContent"> Something </div>

        【讨论】:

          【解决方案7】:

          嗯,我认为有比本页提到的更简单的解决方案!首先,我们举个例子:

          您有 1 个 DIV 并希望在桌面上隐藏该 DIV 并在移动设备上显示(反之亦然)。所以,我们假设 DIV 位置放在Head 部分并命名为header_div

          CSS file 中的全局代码将是:(对于同一个 DIV):

          .header_div {
              display: none;
          }
          
          @media all and (max-width: 768px){
          .header_div {
              display: block;
          }
          }
          

          如此简单,无需制作 2 个 div,一个用于桌面,另一个用于移动。

          希望这会有所帮助。

          谢谢。

          【讨论】:

          • 不是这样工作的
          【解决方案8】:

          试试这个

          @media handheld{
              #title_message { display: none; }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-10-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多