自 Bootstrap 3 以来,响应式样式表和标准样式表不再有单独的文件。那么如何轻松删除响应式功能呢?
8 回答
要停用非桌面样式,您只需更改 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 的改进!移动样式中定义了一些基本样式,因此我们需要确保包含它们。
编辑:克里斯指出,您可以在引导站点上的在线少编译器中设置这些变量
这在官方 Bootstrap 3 发布文档中进行了解释:
禁用响应式视图的步骤
要禁用响应功能,请按照以下步骤操作。在下面修改后的模板中查看它的实际效果。
- 删除(或不添加)
<meta>
CSS 文档中提到的视口- 删除 .container 上所有网格层的最大宽度 max-width: none !important; 并设置一个常规宽度,如 width: 970px;。确保它出现在默认的 Bootstrap CSS 之后。您可以选择使用媒体查询或某些选择器来避免 !important。
- 如果使用导航栏,请撤消所有导航栏折叠和展开行为(此处显示太多,因此请看示例)。
- 对于网格布局,使用 .col-xs-* 类来补充或代替中/大型类。不用担心,超小型设备网格可扩展到所有分辨率,因此您已准备就绪。
对于 IE8,您仍然需要 Respond.js(因为我们的媒体查询仍然存在并且需要获取)。这只是禁用了 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;
}
就是这样,享受..^^
来源: http: //getbootstrap.com/getting-started/#disable-responsive
- 省略
<meta>
CSS 文档中提到的视口 - 例如,使用单个宽度覆盖每个网格层的
width
on确保它位于默认 Bootstrap CSS 之后。您可以选择避免使用媒体查询或某些选择器。.container
width: 970px !important;
!important
- 如果使用导航栏,请删除所有导航栏折叠和展开行为。
- 对于网格布局,使用
.col-xs-*
类来补充或代替中型/大型。别担心,超小的设备网格可以扩展到所有分辨率。
我需要完全删除 Bootstrap 响应功能,我最终用以下代码片段覆盖了该行为:
.container {
width: 960px !important;
}
@media (min-width: 1px) {
.container {
max-width: 940px;
}
.col-lg-1,
.col-lg-2,
[...]
您可以通过使用具有非响应功能的 Bootstrap 3 CSS 来做到这一点
如果您想要一个固定大小的网站,这应该相当简单:
// 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;
}
看看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 文件中
请注意,即使在桌面浏览器上,我的设置也会像桌面一样运行