【问题标题】:Hiding elements in responsive layout?在响应式布局中隐藏元素?
【发布时间】:2012-12-21 20:11:04
【问题描述】:

通过引导程序查看,它们似乎支持折叠菜单栏项以用于较小的屏幕。页面上的其他项目是否有类似的东西?

例如,我有一个与 nav-pills 一起浮动的权利。在小屏幕上,这会导致问题。我想至少把它放到一个类似的点击显示更多下拉菜单中。

这在现有的 Bootstrap 框架中是否可行?

【问题讨论】:

    标签: html css twitter-bootstrap responsive-design


    【解决方案1】:

    您可以为任何模块输入这些模块类后缀,以更好地控制它的显示或隐藏位置。

    .visible-phone  
    .visible-tablet     
    .visible-desktop    
    .hidden-phone   
    .hidden-tablet  
    .hidden-desktop 
    

    http://twitter.github.com/bootstrap/scaffolding.html滚动到底部

    【讨论】:

    • 谢谢 - 我真的希望它们是可见的......只是在一个压缩/折叠的形式,如导航栏折叠,它是专门用于导航栏的,我看不到对其他元素的其他支持.. .
    • 它们可以根据类名和/或 id 进行折叠。如果您找到 CSS/JS,那么您可以添加执行相同操作的其他类/ID。
    • 你能提供一个例子吗?我看到了折叠插件,但不确定实现。至少在导航栏中,它似乎是非常自动处理的 - 或者至少内置在引导程序的核心中
    • 自 Bootstrap 3 起已弃用。
    • 请告知它仅适用于#Bootstrap 2
    【解决方案2】:

    新的可见类添加到 Bootstrap

    超小型设备 电话((Class names : .visible-xs-block, hidden-xs)

    小型设备 平板电脑(≥768px)(Class names : .visible-sm-block, hidden-sm)

    中型设备 台式机(≥992px)(Class names : .visible-md-block, hidden-md)

    大型设备 桌面(≥1200px)(Class names : .visible-lg-block, hidden-lg)

    欲了解更多信息:http://getbootstrap.com/css/#responsive-utilities


    以下内容自 v3.2.0 起已弃用


    超小型设备 电话((Class names : .visible-xs, hidden-xs)

    小型设备 平板电脑(≥768px)(Class names : .visible-sm, hidden-sm)

    中型设备 台式机(≥992px)(Class names : .visible-md, hidden-md)

    大型设备 桌面(≥1200px)(Class names : .visible-lg, hidden-lg)


    更老的 Bootstrap


    .hidden-phone, .hidden-tablet 等不受支持/已过时。

    更新:

    在 Bootstrap 4 中有两种类型的类:

    • hidden-*-up 当视口位于给定断点或更宽时隐藏元素。
    • hidden-*-down 当视口处于给定断点或更小时隐藏元素。

    此外,为宽度超过 1200 像素的设备添加了新的 xl 视口。 For more information click here.

    【讨论】:

    • 我不相信 .hidden-phone.hidden-tablet弃用**—它们是**不受支持的。已弃用往往意味着“已被其他方法取代,尽管仍受支持但打算很快淘汰”。 Bootstrap 3.2.0 似乎就是这种情况——.visible-xs 等现在仍然可以使用,而 .hidden-phone 和朋友们完全没有使用 Bootstrap 的功能。
    • 谢谢 - 我已经更新了正确措辞的答案。现在应该对其他用户更清楚了。
    • 仅供参考 做了更多的研究——似乎“过时的”通常用于正式的上下文中,因为不支持的状态跟随弃用。我认为“不受支持”也可以,但无论如何。感谢您考虑我之前的建议。
    • :) 我已经添加了两者......出于外行人的考虑。感谢您对正确的措辞进行更多研究,一定会在以后的帖子中记住这一点。干杯
    • 请注意,Bootstrap 4 更新适用于 bootstrap 4 alpha。在发布版本中,您应该使用 .d--none 和 d--block 类。 getbootstrap.com/docs/4.0/migration/#responsive-utilities
    【解决方案3】:

    我有几个澄清要在这里补充:

    1) Bootstrap 3 中已弃用显示的列表(可见手机、可见平板电脑等)。新值是:

    • 可见-xs-*
    • 可见-sm-*
    • 可见-md-*
    • 可见-lg-*
    • hidden-xs-*
    • 隐藏-sm-*
    • hidden-md-*
    • 隐藏-lg-*

    每个星号都转换为以下内容(我在下面只显示了 visible-xs-*):

    • 可见-xs-块
    • 可见-xs-inline
    • visible-xs-inline-block

    2) 使用这些类时,不要在前面添加句点(如上面答案的一部分所示令人困惑)。

    例如:

    <div class="visible-md-block col-md-6 text-right text-muted">
       <h5>Copyright &copy; 2014 Jazimov</h5>
    </div>
    

    3) 您可以使用 visible-* 和 hidden-*(例如,visible-xs 和 hidden-xs),但这些在 Bootstrap 3.2.0 中已被弃用。

    如需了解更多详情和最新规格,请前往此处搜索“可见”: http://getbootstrap.com/css/

    【讨论】:

    • 不正确的hidden-xs-block 无效,但visible-xs-block
    • @hmd:您能否为您的评论提供来源/引文,我什至不完全理解,因为它甚至不是一个完整的句子。你到底想分享什么?您是说只有 hidden-xs-block 无效还是说 hidden-xs-* 无效?您是说 hidden-md-block 有效而 hidden-xs-block 无效?请特别详细说明,因为当我实际上直接从引导在线文档中复制了措辞时,您似乎对我的评论投了反对票。您在评论中指的是哪个版本的引导程序?
    • 好的,可能是引导程序有一些变化。只需查看提供正确解决方案的最高投票答案即可。使用隐藏元素,您不能使用块、内联和内联块。有了可见的,你必须使用它。我想我正在使用 bootstrap 3.x。只需尝试您的解决方案来寻找隐藏在手机上的元素 :)
    【解决方案4】:

    Bootstrap 4 测试版答案:

    d-block d-md-none隐藏在中型、大型和超大型设备上。

    d-none d-md-block隐藏在小型和超小型设备上。

    请注意,您还可以通过将 d-*-block 替换为 d-*-inline-block 来进行内联


    旧答案:Bootstrap 4 Alpha

    • 您可以使用 .hidden-*-up 类在给定尺寸和更大的设备上隐藏

      .hidden-md-up隐藏在中型、大型和超大型设备上。

    • .hidden-*-down 也可以隐藏在给定尺寸和更小的设备上

      .hidden-md-down隐藏在中型、小型和超小型设备上

    • visible-* 不再是 bootstrap 4 的选项

    • 仅在中型设备上显示,您可以将两者结合起来:

      hidden-sm-downhidden-xl-up

    有效尺寸为:

    • xs 用于纵向模式的手机 (
    • sm 用于横屏模式 (≥34em) 的手机
    • md 用于平板电脑(≥48em)
    • lg 用于台式机 (≥62em)
    • xl 用于台式机 (≥75em)

    这是自 Bootstrap 4,alpha 5(2017 年 1 月)起。 更多细节在这里:http://v4-alpha.getbootstrap.com/layout/responsive-utilities/

    在 Bootstrap 4.3.x 上:https://getbootstrap.com/docs/4.3/utilities/display/

    【讨论】:

    • 这些已从 v4 测试版中删除。您现在使用.d- 类来隐藏或显示不同的大小。 getbootstrap.com/docs/4.0/utilities/display
    • 我看到了,但我仍在努力解决这个问题......我现在如何才能在小屏幕上隐藏一些东西?我需要 d-md-none 的反面,因为我根据大屏幕和小屏幕切换到 div。
    • @LeoMuller 如果您希望元素隐藏在 sm 及以下尺寸,但在 md、lg 和 xl 上可见,请使用 d-none d-md-blockcode.luasoftware.com/tutorials/bootstrap/…
    • @DesmondLua 我认为和 LeoMuller 一样......在 BS4 中,一些元素表现为块,而另一些元素表现为 flex......希望将其隐藏在手机中,但我想在平板电脑和笔记本电脑中将其显示为 BS4 标准?这与您通常的想法相反...我希望 BS4 团队在最终发布之前解决此问题
    • 我在当前的 Bootstrap 4 文档中找不到关于 d-block 的文档,他们删除了吗?
    【解决方案5】:

    所有hidden-*-uphidden-* 类对我都不起作用,所以我在visible-* 之前添加了自制的hidden 类(适用于当前引导版本)。如果您只需要在一个屏幕上显示 div 并为所有其他屏幕隐藏,这将非常有用。

    CSS:

    .hidden {display:none;}
    

    HTML:

    <div class="col-xs-12 hidden visible-xs visible-sm">
       <img src="photo.png" style="width:100%">
    </div>
    

    【讨论】:

    • hidden-* 类在 bootstrap 4 beta 中被删除,你现在使用 d-{sm,md,lg,xl}-none
    • 谢谢!以防万一,我的回答对非测试版仍然有效
    【解决方案6】:

    对于 Bootstrap 4.0 测试版(我认为这将保留为最终版本)有一个变化 - 请注意隐藏的类已被删除。

    查看文档:https://getbootstrap.com/docs/4.0/utilities/display/

    为了在移动设备上隐藏内容并在更大的设备上显示,您必须使用以下类:

    d-none d-sm-block
    

    第一个类集在所有设备上都显示 none,第二个类集为“sm”设备显示它(如果你想在不同的设备上显示,你可以使用 md、lg 等而不是 sm。

    我建议在迁移之前阅读一下:

    https://getbootstrap.com/docs/4.0/migration/#responsive-utilities

    【讨论】:

    • 虽然不能正常使用折叠切换器,但很遗憾
    【解决方案7】:

    Bootstrap 4.x 答案

    hidden-* 类已从 Bootstrap 4 beta 版本中移除。

    如果您想在中等或更高版本上显示,请使用 d-* 类,例如:

    <div class="d-none d-md-block">This will show in medium and up</div>
    

    如果您只想在小尺寸及以下显示,请使用:

    <div class="d-block d-md-none"> This will show only in below medium form factors</div>
    

    屏幕尺寸和分类图表

    | Screen Size        | Class                          |
    |--------------------|--------------------------------|
    | Hidden on all      | .d-none                        |
    | Hidden only on xs  | .d-none .d-sm-block            |
    | Hidden only on sm  | .d-sm-none .d-md-block         |
    | Hidden only on md  | .d-md-none .d-lg-block         |
    | Hidden only on lg  | .d-lg-none .d-xl-block         |
    | Hidden only on xl  | .d-xl-none                     |
    | Visible on all     | .d-block                       |
    | Visible only on xs | .d-block .d-sm-none            |
    | Visible only on sm | .d-none .d-sm-block .d-md-none |
    | Visible only on md | .d-none .d-md-block .d-lg-none |
    | Visible only on lg | .d-none .d-lg-block .d-xl-none |
    | Visible only on xl | .d-none .d-xl-block            |
    

    不是使用显式的.visible-* 类,而是创建一个元素 通过简单地不以该屏幕尺寸隐藏它来可见。你可以结合 一个 .d-*-none 类和一个 .d-*-block 类仅显示一个元素 在给定的屏幕尺寸间隔上(例如.d-none.d-md-block.d-xl-none 仅在中型和大型设备上显示元素)。

    Documentation

    【讨论】:

      【解决方案8】:

      在 boostrap 4.1 中(运行 sn-p,因为我从 Bootstrap 文档中复制了整个表代码):

      .fixed_headers {
        width: 750px;
        table-layout: fixed;
        border-collapse: collapse;
      }
      .fixed_headers th {
        text-decoration: underline;
      }
      .fixed_headers th,
      .fixed_headers td {
        padding: 5px;
        text-align: left;
      }
      .fixed_headers td:nth-child(1),
      .fixed_headers th:nth-child(1) {
        min-width: 200px;
      }
      .fixed_headers td:nth-child(2),
      .fixed_headers th:nth-child(2) {
        min-width: 200px;
      }
      .fixed_headers td:nth-child(3),
      .fixed_headers th:nth-child(3) {
        width: 350px;
      }
      .fixed_headers thead {
        background-color: #333;
        color: #FDFDFD;
      }
      .fixed_headers thead tr {
        display: block;
        position: relative;
      }
      .fixed_headers tbody {
        display: block;
        overflow: auto;
        width: 100%;
        height: 300px;
      }
      .fixed_headers tbody tr:nth-child(even) {
        background-color: #DDD;
      }
      .old_ie_wrapper {
        height: 300px;
        width: 750px;
        overflow-x: hidden;
        overflow-y: auto;
      }
      .old_ie_wrapper tbody {
        height: auto;
      }
      <table class="fixed_headers">
        <thead>
          <tr>
            <th>Screen Size</th>
            <th>Class</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Hidden on all</td>
            <td><code class="highlighter-rouge">.d-none</code></td>
          </tr>
          <tr>
            <td>Hidden only on xs</td>
            <td><code class="highlighter-rouge">.d-none .d-sm-block</code></td>
          </tr>
          <tr>
            <td>Hidden only on sm</td>
            <td><code class="highlighter-rouge">.d-sm-none .d-md-block</code></td>
          </tr>
          <tr>
            <td>Hidden only on md</td>
            <td><code class="highlighter-rouge">.d-md-none .d-lg-block</code></td>
          </tr>
          <tr>
            <td>Hidden only on lg</td>
            <td><code class="highlighter-rouge">.d-lg-none .d-xl-block</code></td>
          </tr>
          <tr>
            <td>Hidden only on xl</td>
            <td><code class="highlighter-rouge">.d-xl-none</code></td>
          </tr>
          <tr>
            <td>Visible on all</td>
            <td><code class="highlighter-rouge">.d-block</code></td>
          </tr>
          <tr>
            <td>Visible only on xs</td>
            <td><code class="highlighter-rouge">.d-block .d-sm-none</code></td>
          </tr>
          <tr>
            <td>Visible only on sm</td>
            <td><code class="highlighter-rouge">.d-none .d-sm-block .d-md-none</code></td>
          </tr>
          <tr>
            <td>Visible only on md</td>
            <td><code class="highlighter-rouge">.d-none .d-md-block .d-lg-none</code></td>
          </tr>
          <tr>
            <td>Visible only on lg</td>
            <td><code class="highlighter-rouge">.d-none .d-lg-block .d-xl-none</code></td>
          </tr>
          <tr>
            <td>Visible only on xl</td>
            <td><code class="highlighter-rouge">.d-none .d-xl-block</code></td>
          </tr>
        </tbody>
      </table>

      https://getbootstrap.com/docs/4.1/utilities/display/#hiding-elements

      【讨论】:

        【解决方案9】:

        附加 CSS 从移动视图中的所有页面中删除侧边栏:

        @media only screen and (max-width:767px)
        {
        #secondary {
        display: none;
        }
        }
        

        【讨论】:

        • 您必须添加一些 JS 功能才能在单击时显示项目
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-12
        • 2015-06-21
        • 1970-01-01
        • 2012-03-14
        相关资源
        最近更新 更多