如何使 Bootstrap 网格在选项卡窗格中按预期工作?
How do I make Bootstrap grids work as expected inside a tab pane?
我见过一些与此类似的问题,但没有遇到与我见过的完全相同的问题。
我已经知道如何使网格(或多或少)在选项卡窗格中工作。但是,它们似乎并没有像我预期的那样工作。我希望看到的是一组选项卡,每个选项卡都使用自己的个人 space 来显示包含网格的数据。相反,我看到的是带有试图共享同一网格 space 的数据的选项卡集,因此数据行正在堆叠,以便将它们向下推到页面上。整个选项卡区域将是所需高度的两倍,Tab2 上的数据位于选项卡窗格的下半部分,而上半部分是空的(或者将保存 Tab1 的数据)。
示例:
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#tab1">Tab1</a></li>
<li><a data-toggle="tab" href="#tab2">Tab2</a></li>
</ul>
<div id="tab-content">
<div id="tab1" class="tab-pane fade in active">
<div class="row">
<div class="col-sm-6">
...tab1, col1 information...
</div>
<div class="col-sm-6">
...tab1, col2 information...
</div>
</div>
</div>
<div id="tab2" class="tab-pane fade in active">
<div class="row">
<div class="col-sm-6">
...tab2, col1 information...
</div>
<div class="col-sm-6">
...tab2, col2 information...
</div>
</div>
</div>
</div>
</div>
</div>
</div>
我想弄清楚的是我的代码是否有误,或者 Bootstrap 根本不支持我正在努力完成的工作。我已经测试了删除 .row div 的想法,但没有成功。 (数据堆叠不均匀,而不是留在单独的行中。)看起来 .col*-* 类 无法共享相同的 space,即使在隐藏时也是如此。
有什么想法吗?
您在带有选项卡的容器上缺少 .tab-content
class,这适用于 display:none
隐藏的选项卡。此外,您的两个选项卡都有 active
class,这使得它们都显示在开头。
这是标记:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#tab1">Tab1</a>
</li>
<li><a data-toggle="tab" href="#tab2">Tab2</a>
</li>
</ul>
<div id="tab-content" class="tab-content">
<div id="tab1" class="tab-pane fade in active">
<div class="row">
<div class="col-sm-6">
...tab1, col1 information...
</div>
<div class="col-sm-6">
...tab1, col2 information...
</div>
</div>
</div>
<div id="tab2" class="tab-pane fade">
<div class="row">
<div class="col-sm-6">
...tab2, col1 information...
</div>
<div class="col-sm-6">
...tab2, col2 information...
</div>
</div>
</div>
</div>
</div>
</div>
</div>
工作示例
#tabby h3 {
color: white;
background-color: #428bca;
padding: 5px 15px;
margin-bottom: 0;
}
.colorBlue {
color: white;
background-color: #266080;
padding: 15px;
margin: 0;
}
.colorRed {
color: white;
background-color: #f00;
padding: 15px;
}
.colorYellow {
color: white;
background-color: #E4EC45;
padding: 15px;
}
.colorGrey {
color: white;
background-color: #343537;
padding: 15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="container">
<h2>Panels and Grids</h2>
</div>
<div id="tabby" class="container">
<ul class="nav nav-tabs">
<li class="active"> <a href="#1" data-toggle="tab">Uno</a>
</li>
<li><a href="#2" data-toggle="tab">Dos</a>
</li>
<li><a href="#3" data-toggle="tab">Tres</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="1">
<h3>Tab One</h3>
<div class="col-md-6 colorBlue">This is my first 6.</div>
<div class="col-md-6 colorRed">This is my second 6.</div>
</div>
<!--/row-->
<div class="tab-pane" id="2">
<h3>Tab Two</h3>
<div class="col-md-4 colorBlue">This is my first 3.</div>
<div class="col-md-4 colorRed">This is my second 3.</div>
<div class="col-md-4 colorYellow">This is my second 3.</div>
</div>
<div class="tab-pane" id="3">
<h3>Tab Three</h3>
<div class="col-md-3 colorBlue">This is my first 4.</div>
<div class="col-md-3 colorRed">This is my second 4.</div>
<div class="col-md-3 colorYellow">This is my second 4.</div>
<div class="col-md-3 colorGrey">This is my second 4.</div>
</div>
</div>
</div>
AJK,这将使Tab2内容保持在顶部,不会向下移动页面。当您只需要 class
.
时,您将 tab-content
作为 id
此外,如果您不希望带有文本的 div 像我在此处显示的那样堆叠,请使用 col-xs-xx。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>HTML/CSS Block not appearing</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<style>
body {
padding-top: 50px;
}
.spacer {
margin-top: 2%;
margin-bottom: 2%;
}
.block {
height: 240px;
padding-top: 15px;
background-color:orangered;
}
.tab2-clr {
color: blue;
}
</style>
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top ">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<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="#">Project name</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container col-lg-12 spacer"></div>
<div class="container block">
<div class="panel panel-default">
<div class="panel-body">
<ul class="nav nav-tabs">
<li class="active">
<a href="#tab1" data-toggle="tab">Tab1</a>
</li>
<li><a href="#tab2" data-toggle="tab">Tab2</a>
</li>
</ul>
<div class="tab-content ">
<div class="tab-pane active" id="tab1">
<div class="col-xs-6">
<h4>...tab1, col1 information...</h4>
</div>
<div class="col-xs-6">
<h4>...tab1, col2 information...</h4>
</div>
</div>
<div class="tab-pane fade in tab2-clr" id="tab2">
<div class="col-xs-6">
<h4>...tab2, col1 information...</h4>
</div>
<div class="col-xs-6">
<h4>...tab2, col2 information...</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>
我也有这个问题。我通过使用接受的答案进行试验然后在这里我得到了解决方案
在您的标签内容中添加行 class
例如:
<div class="tab-content">
<div class="row">
<!-- Write your grid column in here -->
</div>
</div>
我见过一些与此类似的问题,但没有遇到与我见过的完全相同的问题。
我已经知道如何使网格(或多或少)在选项卡窗格中工作。但是,它们似乎并没有像我预期的那样工作。我希望看到的是一组选项卡,每个选项卡都使用自己的个人 space 来显示包含网格的数据。相反,我看到的是带有试图共享同一网格 space 的数据的选项卡集,因此数据行正在堆叠,以便将它们向下推到页面上。整个选项卡区域将是所需高度的两倍,Tab2 上的数据位于选项卡窗格的下半部分,而上半部分是空的(或者将保存 Tab1 的数据)。
示例:
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#tab1">Tab1</a></li>
<li><a data-toggle="tab" href="#tab2">Tab2</a></li>
</ul>
<div id="tab-content">
<div id="tab1" class="tab-pane fade in active">
<div class="row">
<div class="col-sm-6">
...tab1, col1 information...
</div>
<div class="col-sm-6">
...tab1, col2 information...
</div>
</div>
</div>
<div id="tab2" class="tab-pane fade in active">
<div class="row">
<div class="col-sm-6">
...tab2, col1 information...
</div>
<div class="col-sm-6">
...tab2, col2 information...
</div>
</div>
</div>
</div>
</div>
</div>
</div>
我想弄清楚的是我的代码是否有误,或者 Bootstrap 根本不支持我正在努力完成的工作。我已经测试了删除 .row div 的想法,但没有成功。 (数据堆叠不均匀,而不是留在单独的行中。)看起来 .col*-* 类 无法共享相同的 space,即使在隐藏时也是如此。
有什么想法吗?
您在带有选项卡的容器上缺少 .tab-content
class,这适用于 display:none
隐藏的选项卡。此外,您的两个选项卡都有 active
class,这使得它们都显示在开头。
这是标记:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#tab1">Tab1</a>
</li>
<li><a data-toggle="tab" href="#tab2">Tab2</a>
</li>
</ul>
<div id="tab-content" class="tab-content">
<div id="tab1" class="tab-pane fade in active">
<div class="row">
<div class="col-sm-6">
...tab1, col1 information...
</div>
<div class="col-sm-6">
...tab1, col2 information...
</div>
</div>
</div>
<div id="tab2" class="tab-pane fade">
<div class="row">
<div class="col-sm-6">
...tab2, col1 information...
</div>
<div class="col-sm-6">
...tab2, col2 information...
</div>
</div>
</div>
</div>
</div>
</div>
</div>
工作示例
#tabby h3 {
color: white;
background-color: #428bca;
padding: 5px 15px;
margin-bottom: 0;
}
.colorBlue {
color: white;
background-color: #266080;
padding: 15px;
margin: 0;
}
.colorRed {
color: white;
background-color: #f00;
padding: 15px;
}
.colorYellow {
color: white;
background-color: #E4EC45;
padding: 15px;
}
.colorGrey {
color: white;
background-color: #343537;
padding: 15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="container">
<h2>Panels and Grids</h2>
</div>
<div id="tabby" class="container">
<ul class="nav nav-tabs">
<li class="active"> <a href="#1" data-toggle="tab">Uno</a>
</li>
<li><a href="#2" data-toggle="tab">Dos</a>
</li>
<li><a href="#3" data-toggle="tab">Tres</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="1">
<h3>Tab One</h3>
<div class="col-md-6 colorBlue">This is my first 6.</div>
<div class="col-md-6 colorRed">This is my second 6.</div>
</div>
<!--/row-->
<div class="tab-pane" id="2">
<h3>Tab Two</h3>
<div class="col-md-4 colorBlue">This is my first 3.</div>
<div class="col-md-4 colorRed">This is my second 3.</div>
<div class="col-md-4 colorYellow">This is my second 3.</div>
</div>
<div class="tab-pane" id="3">
<h3>Tab Three</h3>
<div class="col-md-3 colorBlue">This is my first 4.</div>
<div class="col-md-3 colorRed">This is my second 4.</div>
<div class="col-md-3 colorYellow">This is my second 4.</div>
<div class="col-md-3 colorGrey">This is my second 4.</div>
</div>
</div>
</div>
AJK,这将使Tab2内容保持在顶部,不会向下移动页面。当您只需要 class
.
时,您将 tab-content
作为 id
此外,如果您不希望带有文本的 div 像我在此处显示的那样堆叠,请使用 col-xs-xx。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>HTML/CSS Block not appearing</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<style>
body {
padding-top: 50px;
}
.spacer {
margin-top: 2%;
margin-bottom: 2%;
}
.block {
height: 240px;
padding-top: 15px;
background-color:orangered;
}
.tab2-clr {
color: blue;
}
</style>
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top ">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<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="#">Project name</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container col-lg-12 spacer"></div>
<div class="container block">
<div class="panel panel-default">
<div class="panel-body">
<ul class="nav nav-tabs">
<li class="active">
<a href="#tab1" data-toggle="tab">Tab1</a>
</li>
<li><a href="#tab2" data-toggle="tab">Tab2</a>
</li>
</ul>
<div class="tab-content ">
<div class="tab-pane active" id="tab1">
<div class="col-xs-6">
<h4>...tab1, col1 information...</h4>
</div>
<div class="col-xs-6">
<h4>...tab1, col2 information...</h4>
</div>
</div>
<div class="tab-pane fade in tab2-clr" id="tab2">
<div class="col-xs-6">
<h4>...tab2, col1 information...</h4>
</div>
<div class="col-xs-6">
<h4>...tab2, col2 information...</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>
我也有这个问题。我通过使用接受的答案进行试验然后在这里我得到了解决方案
在您的标签内容中添加行 class 例如:
<div class="tab-content">
<div class="row">
<!-- Write your grid column in here -->
</div>
</div>