Bootstrap 导航栏 - 从移动设备中删除固定 header
Bootstrap navbar - removing fixed header from mobile devices
如何更改 header 不固定用于移动设备,而是固定用于 md 和 lg 屏幕尺寸?
例如,您可以将导航 class 更改为;
手机:<nav class="navbar navbar-default" role="navigation">
桌面:<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
??
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-brand-centered">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-brand navbar-brand-centered">Brand</div>
</div>
<div class="collapse navbar-collapse" id="navbar-brand-centered">
<ul class="nav navbar-nav">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
您想隔离移动设备或较小的屏幕尺寸?这是有区别的。如果你想要后者:
HTML:
<nav class="navbar navbar-default navbar-static-top" role="navigation">
CSS:
@media (min-width:992px) {
body {padding-top:HEIGHTOFNAVBAR}
.navbar-static-top {position:fixed;top:0;right:0;left:0;}
}
如果你真的想避免移动设备上的固定导航,你可以通过 javascript.
嗅探设备是否被触摸。
/* --------------- SUPPORTS TOUCH OR NOT for IOS, Android, and Windows Mobile --------------- */
/*! Detects touch support and adds appropriate classes to html and returns a JS object | Copyright (c) 2013 Izilla Partners Pty Ltd | http://www.izilla.com.au / Licensed under the MIT license | https://coderwall.com/p/egbgdw */
var supports = (function() {
var d = document.documentElement,
c = "ontouchstart" in window || navigator.msMaxTouchPoints;
if (c) {
d.className += " touch";
return {
touch: true
}
} else {
d.className += " no-touch";
return {
touch: false
}
}
})();
那么就可以用HTML(一样):
<nav class="navbar navbar-default navbar-static-top" role="navigation">
CSS
.no-touch body {padding-top:HEIGHTOFNAVBAR}
.no-touch .navbar-static-top {position:fixed;top:0;right:0;left:0;}
为手机设置 none 固定 header 并不难,它只是一个 CSS 特性:
CSS
.headerclass { position:static;} //over rides the position fixed
现在更改 类 有点困难,但您可以做的是挂钩媒体查询更改。这需要使用 Jquery 完成(bootstrap)。
您必须搜索 css 更改。
如果我们在媒体查询上设置一些值,那么我们可以切换 类.
CSS
@media only screen
and (min-device-width : 1224px) {
width:300px;
}
JavaScript Jquery
var navbar = $('navbar');
if (navbar.css('width') == '300px') {
navbar.addClass('navbar-default navbar-fixed-top');
}
我使用这些测量值:Link
如何更改 header 不固定用于移动设备,而是固定用于 md 和 lg 屏幕尺寸?
例如,您可以将导航 class 更改为;
手机:<nav class="navbar navbar-default" role="navigation">
桌面:<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
??
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-brand-centered">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-brand navbar-brand-centered">Brand</div>
</div>
<div class="collapse navbar-collapse" id="navbar-brand-centered">
<ul class="nav navbar-nav">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
您想隔离移动设备或较小的屏幕尺寸?这是有区别的。如果你想要后者:
HTML:
<nav class="navbar navbar-default navbar-static-top" role="navigation">
CSS:
@media (min-width:992px) {
body {padding-top:HEIGHTOFNAVBAR}
.navbar-static-top {position:fixed;top:0;right:0;left:0;}
}
如果你真的想避免移动设备上的固定导航,你可以通过 javascript.
嗅探设备是否被触摸。/* --------------- SUPPORTS TOUCH OR NOT for IOS, Android, and Windows Mobile --------------- */
/*! Detects touch support and adds appropriate classes to html and returns a JS object | Copyright (c) 2013 Izilla Partners Pty Ltd | http://www.izilla.com.au / Licensed under the MIT license | https://coderwall.com/p/egbgdw */
var supports = (function() {
var d = document.documentElement,
c = "ontouchstart" in window || navigator.msMaxTouchPoints;
if (c) {
d.className += " touch";
return {
touch: true
}
} else {
d.className += " no-touch";
return {
touch: false
}
}
})();
那么就可以用HTML(一样):
<nav class="navbar navbar-default navbar-static-top" role="navigation">
CSS
.no-touch body {padding-top:HEIGHTOFNAVBAR}
.no-touch .navbar-static-top {position:fixed;top:0;right:0;left:0;}
为手机设置 none 固定 header 并不难,它只是一个 CSS 特性:
CSS
.headerclass { position:static;} //over rides the position fixed
现在更改 类 有点困难,但您可以做的是挂钩媒体查询更改。这需要使用 Jquery 完成(bootstrap)。
您必须搜索 css 更改。 如果我们在媒体查询上设置一些值,那么我们可以切换 类.
CSS
@media only screen
and (min-device-width : 1224px) {
width:300px;
}
JavaScript Jquery
var navbar = $('navbar');
if (navbar.css('width') == '300px') {
navbar.addClass('navbar-default navbar-fixed-top');
}
我使用这些测量值:Link