【问题标题】:How to remove responsive features in Twitter Bootstrap 3?如何删除 Twitter Bootstrap 3 中的响应功能?
【发布时间】:2018-10-01 19:34:54
【问题描述】:

自 Bootstrap 3 起,响应式样式表和标准样式表不再有单独的文件。那么如何才能轻松移除响应式功能呢?

【问题讨论】:

  • This blog post 提供了一些有关这样做的信息,并在末尾提供了指向 Github 上已完成版本的链接。
  • @STLDeveloper 于 2012 年 12 月 3 日 16:11 询问。 Bootstrap 3 已经有 2 天了。
  • @STLDeveloper,他说响应式文件在 Bootstrap 3 中不再是分开的。博文和 Bootstrap 的 Github 帐户解释了这些变化。
  • 引导文档描述了如何做到这一点:getbootstrap.com/getting-started/#disable-responsive
  • @NicolasJanel 你的链接失效了。

标签: twitter-bootstrap responsive-design media-queries twitter-bootstrap-3


【解决方案1】:

要停用非桌面样式,您只需更改 variables.less 文件中的 4 行代码。在 variables.less 文件中设置屏幕宽度断点,如下所示:

// 媒体查询断点 //------------------------------------------------ -- // 超小屏幕/手机 // 注意:自 v3.0.1 起已弃用 @screen-xs 和 @screen-phone @screen-xs:1px; @screen-xs-min:@screen-xs; @screen-phone:@screen-xs-min; //小屏/平板 // 注意:自 v3.0.1 起已弃用 @screen-sm 和 @screen-tablet @screen-sm:2px; @screen-sm-min:@screen-sm; @screen-tablet:@screen-sm-min; // 中屏/桌面 // 注意:自 v3.0.1 起已弃用 @screen-md 和 @screen-desktop @screen-md:3px; @screen-md-min:@screen-md; @screen-desktop:@screen-md-min; // 大屏/宽桌面 // 注意:自 v3.0.1 起已弃用 @screen-lg 和 @screen-lg-desktop @screen-lg:9999像素; @screen-lg-min:@screen-lg; @screen-lg-desktop:@screen-lg-min;

这会将桌面样式媒体查询的最小宽度设置为较低,以便它适用于所有屏幕宽度。感谢 2callchaos 的改进!移动样式中定义了一些基本样式,因此我们需要确保包含它们。

编辑:chris 指出,您可以在引导站点上的在线 less 编译器中设置这些变量

【讨论】:

  • 您还可以通过将@grid-float-breakpoint 变量更改为1px 来阻止导航栏堆叠。
  • 哇,这也适用于引导程序自定义下载站点上的在线编译器!
  • 我不确定上述方法是否有效。如果有人定义了@media (min-width: @screen-sm-min)(意味着将此样式应用于 sm 断点和所有更高的断点;即 sm、md、lg),则上述覆盖将打破该假设,因为该定义将不再应用于 md?我将@screen-xs 设置为1px,@screen-sm 也设置为1px(除了@screen-md 为1px);这样,所有 xs、sm 和 md 样式都会被应用,并以源顺序优先级覆盖它们自己。
  • xs最好用1px,sm用2px,md用3px,lg用9999px。这样你就没有导航栏和模式在“移动模式”。
  • 有效,但浏览器水平滚动条仍然缺失
【解决方案2】:

这在official Bootstrap 3 release docs中有解释:

禁用响应式视图的步骤

要禁用响应式功能,请按以下步骤操作。在下面修改后的模板中查看它的实际效果。

  1. 删除(或不添加)CSS 文档中提到的视口 <meta>
  2. 删除 .container 上所有网格层的最大宽度 max-width: none !important;并设置一个常规宽度,如 width: 970px;。确保它出现在默认的 Bootstrap CSS 之后。您可以选择使用媒体查询或某些选择器来避免 !important。
  3. 如果使用导航栏,请撤消所有导航栏的折叠和展开行为(此处显示过多,请查看示例)。
  4. 对于网格布局,使用 .col-xs-* 类来补充或代替中/大型类。不用担心,超小的设备网格可以扩展到所有分辨率,所以您已经准备好了。

对于 IE8,您仍然需要 Respond.js(因为我们的媒体查询仍然存在并且需要获取)。这只是禁用了 Bootstrap 的“移动站点”。

另见GetBootstrap.com/examples/non-responsive/上的示例

【讨论】:

  • 这对我不起作用。一些元素响应视口的宽度。
  • @ZiyanJunaideen 你可能错过了一些东西。你能提供一个jsfiddle吗?
  • 这对我有用。我认为应该将其标记为正确答案。
【解决方案3】:

我最近才发现让 bootstrap v3.1.1 无响应是多么容易。这包括不折叠的导航栏。不知道大家是不是都知道,不过还是分享一下吧。

非响应式 Bootsrap v3.1.1 的两个步骤

首先,创建一个 css 文件,命名为 non-responsive.css。确保在引导 css 文件之后将其附加到您的主题或链接。

其次,将此代码粘贴到您的 non-responsive.css:

/* Template-specific stuff
 *
 * Customizations just for the template; these are not necessary for anything
 * with disabling the responsiveness.
 */

/* Account for fixed navbar */
body {
  min-width: 970px;
  padding-top: 70px;
  padding-bottom: 30px;
}

/* Finesse the page header spacing */
.page-header {
  margin-bottom: 30px;
}
.page-header .lead {
  margin-bottom: 10px;
}


/* Non-responsive overrides
 *
 * Utilitze the following CSS to disable the responsive-ness of the container,
 * grid system, and navbar.
 */

/* Reset the container */
.container {
  width: 970px;
  max-width: none !important;
}

/* Demonstrate the grids */
.col-xs-4 {
  padding-top: 15px;
  padding-bottom: 15px;
  background-color: #eee;
  background-color: rgba(86,61,124,.15);
  border: 1px solid #ddd;
  border: 1px solid rgba(86,61,124,.2);
}

.container .navbar-header,
.container .navbar-collapse {
  margin-right: 0;
  margin-left: 0;
}

/* Always float the navbar header */
.navbar-header {
  float: left;
}

/* Undo the collapsing navbar */
.navbar-collapse {
  display: block !important;
  height: auto !important;
  padding-bottom: 0;
  overflow: visible !important;
}

.navbar-toggle {
  display: none;
}
.navbar-collapse {
  border-top: 0;
}

.navbar-brand {
  margin-left: -15px;
}

/* Always apply the floated nav */
.navbar-nav {
  float: left;
  margin: 0;
}
.navbar-nav > li {
  float: left;
}
.navbar-nav > li > a {
  padding: 15px;
}

/* Redeclare since we override the float above */
.navbar-nav.navbar-right {
  float: right;
}

/* Undo custom dropdowns */
.navbar .navbar-nav .open .dropdown-menu {
  position: absolute;
  float: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, .15);
  border-width: 0 1px 1px;
  border-radius: 0 0 4px 4px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
  color: #333;
}
.navbar .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar .navbar-nav .open .dropdown-menu > li > a:focus,
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
  color: #fff !important;
  background-color: #428bca !important;
}
.navbar .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  color: #999 !important;
  background-color: transparent !important;
}

就是这样,尽情享受吧..^^

来源:non-responsive.css来自example at getbootstrap.com

【讨论】:

  • 哇非常好!谢谢:)
  • 复制/粘贴时请链接到您的代码源代码。
【解决方案4】:

来源:http://getbootstrap.com/getting-started/#disable-responsive

  1. 省略 CSS 文档中提到的视口 <meta>
  2. 为每个具有单一宽度的网格层覆盖.container 上的width,例如width: 970px !important; 确保它位于默认Bootstrap CSS 之后。您可以选择使用媒体查询或一些选择符来避免 !important
  3. 如果使用导航栏,请移除所有导航栏折叠和展开行为。
  4. 对于网格布局,使用.col-xs-* 类补充或代替中/大类。不用担心,超小的设备网格可以扩展到所有分辨率。

【讨论】:

    【解决方案5】:

    我需要完全删除 Bootstrap 响应功能,我最终用以下 sn-p 覆盖了该行为:

    .container {
        width: 960px !important;
    }
    
    @media (min-width: 1px) {
      .container {
        max-width: 940px;
      }
      .col-lg-1,
      .col-lg-2,
    [...]
    

    完整的sn-p:https://gist.github.com/ivanminutillo/8557293

    【讨论】:

      【解决方案6】:

      您可以通过使用具有非响应功能的 Bootstrap 3 CSS 来做到这一点

      https://github.com/bassjobsen/non-responsive-tb3

      【讨论】:

      • 很好,但太糟糕了,它是完整的引导 css 集。最好让 css 只禁用响应功能。假设我们将其命名为“nonresponsive.css”。那样的话,如果我们包含 nonresponsive.css,响应特性就会被禁用。如果删除该 css,则响应式将恢复。
      • 您可以按照您的建议进行操作,只需在标题中添加原始 bootstrap.css 和上述链接中发布的非响应式 bootstrap.css。显然,您可以根据需要重命名它。注释掉该行,然后它将按需要工作。
      • 是的,但这会覆盖我所有的自定义引导主题。例如,如果我使用来自 bootswatch.com 的主题,它将被该 css 覆盖。
      • 当然。如果您在引导程序上使用自定义主题,您将丢失所有自定义项,但如果您使用原始引导程序 CSS
      【解决方案7】:

      如果您想要一个固定大小的网站,这应该相当简单:

      // Override container sizes
      @container-sm:	700px;
      @container-md:	700px;
      @container-lg:	700px;
      
      // Fixate media queries to tablet view only (lower viewports set to 0px, desired one to 1px, and the higher to ~9999px)
      
      @screen-xs-min: 0px;
      @screen-sm-min:	1px;
      @screen-md-min: 9999px;
      @screen-lg-min: 9999px;
      
      // Disable responsive features such as navbar-collapse
      @grid-float-breakpoint: 9999px;

      除非您使用 .container-fluid,否则还要添加:

      .container-fluid {
          width: 700px;
      }
      body {
          width: 700px + @general-min-width;
      }
      

      【讨论】:

        【解决方案8】:

        看看www.goo.gl/2SIOJj,这是一项正在进行的工作,但它可能会对你有所帮助。

        我使用 cookie 来定义我想要桌面版还是响应式版本。在页面的页脚中,您可以找到两个 span,general.js 是处理点击的脚本。

                <div class="col-xs-6" style="text-align:center;"><span class="make_desktop">Desktop</span></div>
                <div class="col-xs-6" style="text-align:center;"><span class="make_responsive">Mobile</span></div>
        
        function setMobDeskCookie(c_name, value, exdays) {
            var exdate = new Date();
            exdate.setDate(exdate.getDate() + exdays);
            var c_value = escape(value) + ((exdays === null) ? "" : "; expires=" + exdate.toUTCString());
            document.cookie = c_name + "=" + c_value + "; path=/";
            window.location.reload();
        }
        
        $(function() {
            $(".make_desktop").click(function() {
                setMobDeskCookie('deskmob', 1, 3650);
            });
            $(".make_responsive").click(function() {
                setMobDeskCookie('deskmob', 0, 3650);
            });
        });`enter code here`
        

        我最终将所有自定义 css 拆分为两个文件 但它对我有用

        我还创建了 non-responsive.css 强制网格保持大屏幕版本

        如果你选择手机,我会加载/回显

        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">  
        <!-- Bootstrap core CSS and JS -->
                <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
                <link href="/themes/responsive_lime/bootstrap-3_1_1/css/bootstrap.css" rel="stylesheet">
                <script src="/themes/responsive_lime/bootstrap-3_1_1/js/bootstrap.min.js"></script>
        
        and load these stylesheets
        <link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/style.css?modified=14-06-2014-12-27-40" />
        <link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/style-responsive.css?modified=1402758346" />
        

        如果你选择桌面,我会加载 /echo

        <meta name="viewport" content="width=1024">    
        
        
                <!-- Bootstrap core CSS and JS -->
                <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
                <link href="/themes/responsive_lime/bootstrap-3_1_1/css/bootstrap.css" rel="stylesheet">
                <script src="/themes/responsive_lime/bootstrap-3_1_1/js/bootstrap.min.js"></script>
        
                <!-- Main CSS -->
                <link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/style.css?modified=14-06-2014-12-27-40" />
        <link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/non-responsive.css?modified=1402758635" />
        

        non-responsive.css 是覆盖引导程序的那个我关心的是布局,所以那里没有太多,因为我以自己的方式处理导航,所以它的 css 和其他位在我的其他css文件

        请注意,即使在桌面浏览器上,我的设置也确实像桌面一样运行,这与我见过的其他一些解决方案不同,这些解决方案只会忽略似乎只在移动设备上为我工作的视口

        【讨论】:

          猜你喜欢
          • 2013-07-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-02
          • 2013-09-05
          • 1970-01-01
          相关资源
          最近更新 更多