如何删除Twitter Bootstrap 3中的响应功能?

时间:2013-07-29 22:57:46

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

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

8 个答案:

答案 0 :(得分:103)

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

// Media queries breakpoints
// --------------------------------------------------

// Extra small screen / phone
// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1
@screen-xs:                  1px;
@screen-xs-min:              @screen-xs;
@screen-phone:               @screen-xs-min;

// Small screen / tablet
// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1
@screen-sm:                  2px;
@screen-sm-min:              @screen-sm;
@screen-tablet:              @screen-sm-min;

// Medium screen / desktop
// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1
@screen-md:                  3px;
@screen-md-min:              @screen-md;
@screen-desktop:             @screen-md-min;

// Large screen / wide desktop
// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1
@screen-lg:                  9999px;
@screen-lg-min:              @screen-lg;
@screen-lg-desktop:          @screen-lg-min;

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

编辑:chris指出你可以在bootstrap网站上的在线较少的编译器中设置这些变量

答案 1 :(得分:45)

official Bootstrap 3 release docs

中对此进行了解释
  

禁用响应式视图的步骤

     

要禁用自适应功能,请按以下步骤操作。请在下面的修改后的模板中查看它。

     
      
  1. 删除(或只是不添加)CSS docs
  2. 中提到的视口<meta>   
  3. 删除所有网格层的.container上的最大宽度,使用max-width:none!important;并设置宽度的常规宽度:970px;。确保这是在默认的Bootstrap CSS之后。您可以选择使用媒体查询或某些selector-fu。
  4. 来避免使用!important   
  5. 如果使用导航栏,请撤消所有导航栏折叠和展开行为(此处显示的内容太多,请仔细查看示例)。
  6.   
  7. 对于网格布局,除了中/大类之外,还应使用.col-xs- *类。不用担心,超小型设备网格可以扩展到所有分辨率,因此您可以将其设置在那里。
  8.         

    你仍然需要针对IE8的Respond.js(因为我们的媒体查询仍然在那里,需要被选中)。这只会禁用Bootstrap的“移动网站”。

另请参阅GetBootstrap.com/examples/non-responsive/

上的示例

答案 2 :(得分:20)

我最近才弄清楚,让你的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

答案 3 :(得分:11)

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

  1. 省略CSS docs
  2. 中提到的视口<meta>
  3. 使用单个宽度覆盖每个网格层的width上的.container,例如width: 970px !important;请确保这是在默认的Bootstrap CSS之后。您可以选择使用媒体查询或某些selector-fu。
  4. 来避免!important
  5. 如果使用导航栏,请删除所有导航栏折叠和展开行为。
  6. 对于网格布局,除中型/大型之外,使用.col-xs-*类。别担心,超小设备网格可以扩展到所有分辨率。

答案 4 :(得分:11)

我需要完全删除Bootstrap响应功能,最后我用以下代码覆盖了行为:

.container {
    width: 960px !important;
}

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

完整摘要:https://gist.github.com/ivanminutillo/8557293

答案 5 :(得分:5)

您可以通过使用具有无响应功能的Bootstrap 3 CSS来实现此目的

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

答案 6 :(得分:0)

如果你想要一个固定规模的网站,这应该很简单:

&#13;
&#13;
// 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;
&#13;
&#13;
&#13;

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

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

答案 7 :(得分:-2)

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

我使用cookie来定义我是否需要桌面版或响应版。在页面的页脚中,您可以找到两个跨度,一般来说,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拆分为两个文件我不使用自举导航但我自己这样,这是我的大多数自定义样式,所以它不会解决你的整个问题 但它对我有用

我还创建了非响应式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" />

如果您选择桌面,我会加载/回显

<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 for it和其他位在我的其他css文件

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