【Bootstrap】导航栏navbar在PC上的缺陷与解决方案

在Bootstrap的官网上,提供了一种导航栏的组件:

只要在站点文件夹放好JQ与Bootstrap输入如下代码,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>navbar</title>
		<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
		<link href="css/bootstrap.css" rel="stylesheet" media="screen">
		<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
		<script type="text/javascript" src="js/bootstrap.js"></script>
	</head>

	<body>
		<div class="container">
			<nav class="navbar navbar-default" role="navigation">
			<div class="container-fluid">
				<div class="navbar-header">
					<button type="button" class="navbar-toggle collapsed"
						data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
						<span class="sr-only">Toggle navigation</span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</button>
					<a class="navbar-brand" href="#">Brand</a>
				</div>
				<div class="collapse navbar-collapse"
					id="bs-example-navbar-collapse-1">
					<ul class="nav navbar-nav">
						<li class="active">
							<a href="#">Link</a>
						</li>
						<li>
							<a href="#">Link</a>
						</li>
						<li class="dropdown">
							<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown
								<span class="caret"></span>
							</a>
							<ul class="dropdown-menu" role="menu">
								<li>
									<a href="#">Action</a>
								</li>
								<li>
									<a href="#">Another action</a>
								</li>
								<li>
									<a href="#">Something else here</a>
								</li>
								<li class="divider"></li>
								<li>
									<a href="#">Separated link</a>
								</li>
								<li class="divider"></li>
								<li>
									<a href="#">One more separated link</a>
								</li>
							</ul>
						</li>
					</ul>
					<form class="navbar-form navbar-left" role="search">
						<div class="form-group">
							<input type="text" class="form-control" placeholder="Search">
						</div>
						<button type="submit" class="btn btn-default">
							Submit
						</button>
					</form>
					<ul class="nav navbar-nav navbar-right">
						<li>
							<a href="#">Link</a>
						</li>
						<li class="dropdown">
							<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown
								<span class="caret"></span>
							</a>
							<ul class="dropdown-menu" role="menu">
								<li>
									<a href="#">Action</a>
								</li>
								<li>
									<a href="#">Another action</a>
								</li>
								<li>
									<a href="#">Something else here</a>
								</li>
								<li class="divider"></li>
								<li>
									<a href="#">Separated link</a>
								</li>
							</ul>
						</li>
					</ul>
				</div>
			</div>
			</nav>
			asdddddddddddddddddddddddddddddddddddddddddddddddd
		</div>
	</body>
</html>

则可以得到一个可以随窗口大小变化的导航栏:

还可以把<nav class="navbar navbar-default" role="navigation">中的class值改成<nav class="navbar navbar-default navbar-fixed-top" role="navigation">则导航条,就一直悬挂在网页顶部。无论窗口怎么拖动,如果把class值改成<nav class="navbar navbar-inverse" role="navigation">,则可以得到一条黑色的导航条。

看起来很好用的样子,但是缺点是相当致命的。且不论此导航条提供的颜色就只有白色与黑色,两种色调,最可怕的是在IE8中直接以手机方式显示这个导航条,然而是在1440x900的屏幕分辨率之下。

这导致用户的要选择导航条的项目需要点击右方的按钮,之后下拉菜单则变成:

让网页内容直接被下拉正整整一大截。值得注意的是,IE8是现在WIN7默认的浏览器。姑且不论IE6在中国的绝对核心地位,即使在越来越多的用户选用WIN7的情况的大背景下,IE8的兼容性还是一个值得考虑的问题。

所以,仅能不选择这种导航条作为网站的导航,可作为替代品的bootstrap的元素有两种,风格各异,一种是标签页,另一种则是按钮组,所谓的面包屑导航栏也并不是一种很好的解决方式,因为下拉菜单在bootstrap必须以按钮的方式呈现,写成文本的话,在IE8同样是吃力不讨好,当然,你完全可以选择抛开bootstrap,大神们的css都是自己手写,看不起框架。

一、标签页

标签的基本样式如下,存在着下拉菜单需要bootstrap.js,bootstrap.css,jq的支持

标签页不随浏览器的尺寸的变化而变化,

可以在一个网页内切换,也可以跳到其他页面,

强力建议导航的标签页上的链接,都跳到其他与此页同样布局的网页。也就是同样存在此标签页,且位置一模一样的页面。

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Togglabletabs</title>
		<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
		<link href="css/bootstrap.css" rel="stylesheet" media="screen">
		<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
		<script type="text/javascript" src="js/bootstrap.js"></script>
	</head>

	<body>
		<div class="container">
			<ul class="nav nav-tabs" role="tablist">
            <!--一个标签页组仅能有一个标签是active状态-->
				<li role="presentation" class="active">
                <!--以为跳到本页的home图层,不建议这样做,因为如果都写到一页的话,一页会占用很多代码-->
					<a href="#home" role="tab" data-toggle="tab">Home</a>
				</li>
				<li role="presentation">
					<a href="#profile" role="tab" data-toggle="tab">Profile</a>
				</li>
				<li role="presentation">
					<a href="#messages" role="tab" data-toggle="tab">Messages</a>
				</li>
				<li role="presentation">
					<a href="#settings" role="tab" data-toggle="tab">Settings</a>
				</li>
                <!--蕴含着下拉菜单的写法-->
				<li role="presentation" class="dropdown">
					<a class="dropdown-toggle" data-toggle="dropdown" href="#">
                    <!--这是下拉菜单的那个小三角形-->
						Dropdown <span class="caret"></span> </a>
					<ul class="dropdown-menu" role="menu">
						<li role="presentation">
							<a href="#home" role="tab" data-toggle="tab">Home</a>
						</li>
						<li role="presentation">
							<a href="#profile" role="tab" data-toggle="tab">Profile</a>
						</li>
						<li role="presentation">
							<a href="#messages" role="tab" data-toggle="tab">Messages</a>
						</li>
						<li role="presentation">
							<a href="#settings" role="tab" data-toggle="tab">Settings</a>
						</li>
					</ul>
                    <!--最后都跳到其他样式都相同的页,让浏览者感到没有跳转就对了,这样分开代码,以免一个网页的代码都集中在一个页面-->
					<li role="presentation">
						<a href="back.html" role="tab">The other pages</a>
					</li>
				</li>
			</ul>

			<!--如果标签页是跳到本页图层的,就在这里写图层的内容。-->
			<div class="tab-content">
				<div role="tabpanel" class="tab-pane active" id="home">
					Home
				</div>
				<div role="tabpanel" class="tab-pane" id="profile">
					Profile
				</div>
				<div role="tabpanel" class="tab-pane" id="messages">
					Messages
				</div>
				<div role="tabpanel" class="tab-pane" id="settings">
					Settings
				</div>
			</div>

		</div>
	</body>
</html>

二、选择按钮组

一个铺满页面的选择按钮组基本样式如下,

会随着浏览器的尺寸改变而改变,当然,当被压缩到极致时,不会像bootstrap自带的导航条navbar那样收起来,静静地躺在一个按钮中,

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>按钮组buttongroup</title>
		<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
		<link href="css/bootstrap.css" rel="stylesheet" media="screen">
		<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
		<script type="text/javascript" src="js/bootstrap.js"></script>
	</head>

	<body>
		<!--要求按钮组铺满整个页面-->
		<div class="btn-group btn-group-justified">
			<!--不存在下拉菜单的按钮这样写-->
			<div class="btn-group">
            <!--为按钮定义链接比较少见,请注意-->
				<a href="#">
					<button type="button" class="btn btn-success">
						Left
					</button>
                </a>
			</div>
			<div class="btn-group">
				<button type="button" class="btn btn-success">
					Middle
				</button>
			</div>
			<div class="btn-group">
				<button type="button" class="btn btn-success">
					Right
				</button>
			</div>
			<!--存在下拉菜单的按钮这样写-->
			<div class="btn-group">
				<button type="button" class="btn btn-success dropdown-toggle"
					data-toggle="dropdown">
					Dropdown
					<span class="caret"></span>
				</button>
				<ul class="dropdown-menu" role="menu">
					<li>
						<a href="#">Dropdown link</a>
					</li>
					<li>
						<a href="#">Dropdown link</a>
					</li>
				</ul>
			</div>

		</div>
	</body>
</html>

此乃两种解决导航栏navbar在PC上的缺陷的方案。

时间: 2024-10-12 02:35:44

【Bootstrap】导航栏navbar在PC上的缺陷与解决方案的相关文章

Bootstrap导航栏实例讲解

导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏是响应式元组件就,作为应用程序或网站的导航标题.导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开.在 Bootstrap 导航栏的核心中,导航栏包括了为站点名称和基本的导航定义样式. 1.默认的导航栏创建一个默认的导航栏的步骤如下: 向 <nav> 标签添加 class .navbar..navbar-default(白底黑字),navbar-inverse(黑底白字) 向上面的元素添加 ro

react-navigation 做导航栏,发现 Android 上的标题不居中

在做 React Native 应用的时候,我们常常使用 react-navigation 做导航栏,发现 Android 上的标题不居中,IOS 上没问题. 1 如果只有标题,那就在 headerTitleStyle 设置 alignSelf:'center' 就可以. 2 如果标题栏左侧还有返回按钮,发现标题偏右依然不居中,则简单的处理方式是: 在右边再添加一个等宽高的空 View,如下: headerRight: <View /> 升级新版本之后发现这招不灵了,可以在 headerTit

Bootstrap导航栏

Bootstrap中导航栏在应用和网站中作为导航页头的响应式基础组件.导航栏在移动设备视图中是折叠的,随着设备可用视口宽度的增加,导航栏也会水平展开.在Bootstrap中导航栏包含了基本的预定义类和钩子. 一.基本导航栏 创建一个默认导航栏的步骤如下: <nav>元素中添加.navbar .navbar-default; <nav>元素中添加role="navigation",增加可访问性: 向 <div> 元素添加一个标题 .navbar-hea

Bootstrap -- 导航栏样式、分页样式、标签样式、徽章样式

1. 使用图标的导航栏 使用导航栏样式: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>My Test bootstrap</title> <link rel="stylesheet" href="

eclipse Maven Bootstrap 导航栏

1创建一个maven web工程 2.在pom.xml添加两个依赖 Bootstrap 依赖和jQuery依赖 1 <!-- https://mvnrepository.com/artifact/org.webjars/bootstrap --> 2 <dependency> 3 <!--bootstrap依赖 --> 4 <groupId>org.webjars</groupId> 5 <artifactId>bootstrap&l

bootstrap 导航栏鼠标悬停显示下拉菜单

在jsp中加入一下代码: .navbar .nav > li:hover .dropdown-menu { display: block;} 全部代码如下所示: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4

Bootstrap 导航栏和登陆框

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="css/bootstrap.min.css" /> <script type="text/javascript" src="js/jq

Bootstrap——导航栏编写

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">      <div class="container">        <div class="navbar-header">          <button class="navbar-toggle collapsed"

【CSS】扁平化,支持IE6的含有方块超级链接的导航栏与含有支持IE8的下拉菜单的导航栏

上次在<[Bootstrap]导航栏navbar在IE8上的缺陷与解决方案>(点击打开链接)给大家推荐过导航栏怎么写, 这次不用任何框架,纯手写CSS,原生态,方便各位改写!请笑纳. 一.首先是含有方块超级链接的导航栏,如下图: 这个东西个人觉得拼接在一些灰色巨幕下面做首页的导航栏不错 或者放在一些标签页上面也是可以的 代码如下: <div style="width:70%; text-align:center; margin-left:auto; margin-right:a