【问题标题】:CSS responsive design hide one column for small screensCSS 响应式设计为小屏幕隐藏一列
【发布时间】:2016-02-20 01:04:04
【问题描述】:

这里是 CSS 初学者...

我正在尝试将我的网站更新为响应式 3 列布局。 我使用了来自 www.responsivegridsystem.com/ 的代码,一切运行良好。 只有一件事(目前!)我不知道如何实现。

目前,对于非常小的屏幕,这些列相互折叠,这很棒,但我希望第三列(右)也不要同时显示。

这是否可能使用 -- display: none; ——??如果是这样,有人可以建议它应该放置在哪里来隐藏此列并且不打扰其他任何东西吗? 我已经尝试过,但看不到如何执行此操作 - 我不确定是否可以在一个媒体查询中同时折叠列和隐藏一列。

非常感谢任何帮助,并对我缺乏知识表示歉意。 在此处查看完整页面代码:

https://jsfiddle.net/PIngu123456/76Lkpna0/

.span_3_of_3, .span_2_of_3, .span_1_of_3 { width: 100%; }

平谷

【问题讨论】:

  • 就像 silviagreen 所说,使用媒体查询。您已经在代码中使用了一些,因此您应该了解它们是如何工作的。这是一个很好的资源:@​​987654322@
  • 感谢大家的及时和有用的回复

标签: css


【解决方案1】:

像这样修改代码中的最后一个媒体查询

    @media screen and (max-width: 480px) {
                      #header {
                        height: auto;
                      }
                      h1 {
                        font-size: 24px;
                      }
                      #nav {
                        width auto
                      }
                      /* DIV STYLES ====================================================================== */
                      /* MARGINS */
                      #header,
                      #content {
                        margin-bottom: 5px;
                      }

                      .span_1_of_3:nth-of-type(3){ //this add your column
                        display: none;
                      }

                      }

这是结果:jsfiddle

【讨论】:

    【解决方案2】:

    是的,您可以使用display 属性轻松完成此操作。我用所需的行为更新了您的 JSfiddlehttps://jsfiddle.net/76Lkpna0/1/

    代码:

    HTML的第三列添加一个额外的类:

    <div class="col span_1_of_3 hidesmallscreen">
    

    在小屏幕的媒体查询中添加此 CSS

    .hidesmallscreen {
                       display: none;
    }
    

    【讨论】:

      【解决方案3】:

      我建议您在该列中添加一个额外的类,例如.last-col 或其他东西。然后在媒体查询中,将display: none 设置为特定宽度。

      @media only screen and (min-width : 500px) {
          .last-col {
             display: none;
          }
      }
      

      媒体查询是仅在特定条件下应用的样式。

      【讨论】:

        【解决方案4】:

        您的 div 都具有相同的类标签 span_1_of_3。它们应该命名为span_1_of_3 span_2_of_3 span_3_of_3,以便您可以为它们指定不同的样式。

        您对所有三个 div 都使用了 span_1_of_3,因为该类的样式为 width:32.26%,它为您提供了三列。实际上,span_2_of_3 是width:66.13%,span_3_of_3 是width:100%。因此,将所有三个跨度更改为 width:32.26% 以保持您的原始格式。

        然后通过添加以下规则将 span_3_of_3 隐藏在您的 css 中的 @media only screen and (max-width: 480px) { 下:

        .span_3_of_3 {
        display: none;
        }
        

        【讨论】:

        • 丹尼尔,当我按照你的建议更改标签时,列格式完全丢失
        • 我对您的 JSfiddle 进行了更改。随心所欲地工作,并允许您进一步设置每个 div 的样式。关键是标题图像正上方的 20 多行。将每个跨度设置为 width: 32.26%,然后将 display:none; 设置为跨度 3。
        • 您选择的答案没有正确使用具有三个跨度的响应式网格布局,并且无法按照布局的预期单独设置它们的样式。
        • 对不起丹尼尔,我再次尝试按照您的建议进行操作,但页面列布局已完全破坏。我不能告诉你为什么。
        • 对不起丹尼尔,我在听从你的建议时犯了一个错误。我已经重试了你的所有步骤,你是对的。您的解决方案也非常有效。 Silviagreen 和 pivemi 也是如此。现在我不确定哪个建议是最好的......我还有其他页面要做。也许你可以提出为什么你的建议更好。正如我所说,我使用了其他地方的列代码并且没有修改它;这可能是我无法理解的东西。平谷
        猜你喜欢
        • 2013-09-17
        • 1970-01-01
        • 2013-01-17
        • 2012-08-31
        • 2014-07-19
        • 1970-01-01
        • 2019-06-15
        • 1970-01-01
        • 2021-10-01
        相关资源
        最近更新 更多