Bootstrap 网格水平对齐和折叠
Bootstrap Grid Horizontal alignment and collapse
我是学习 bootstrap 网格的新手,我的指南主要使用网站指南并根据此示例对其进行定制。
全屏时预期的输出应该如下所示:
预期全尺寸
折叠成较小尺寸时像这样:
预期崩溃
我的主要问题是试图让 "Aside" 和 "Section" 部分在 "Article" 部分内相互堆叠。我什至无法让它与 "article" 部分排成一行。其他细节我会自己解决,但这部分我已经苦苦挣扎了一段时间。
CSS:
body {
background-color: black;
font-size: 2em;
text-align: center;
}
.header {
background-color: cornflowerblue;
height: 60px;
text-align: center;
}
.nav {
background-color: khaki;
height: 50px;
text-align: center;
}
.article {
background-color: darkseagreen;
height: 180px;
text-align: center;
}
.aside {
background-color: goldenrod;
height: 90px;
text-align: center;
}
.section {
background-color: lightsteelblue;
height: 90px;
text-align: center;
}
.footer {
background-color: lemonchiffon;
height: 40px;
text-align: center;
}
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="mystyle-Test2.css"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">
</script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12 col-sm-12">
<div class="header">Header</div>
</div>
<div class="col-md-12 col-sm-12">
<div class="nav">Nav</div>
</div>
<div class="col-md-8 col-sm-12">
<div class="article">Article</div>
<div class="col-md-2 col-sm-12">
<div class="aside">Aside</div>
<div class="col-md-2 col-sm-12">
<div class="section">Section</div>
</div>
<div class="col-md-12 col-sm-12">
<div class="footer">Footer</div>
</div>
</div>
</div>
Bootstrap 的网格的工作方式是,如果您在调整浏览器大小时不需要更改它,您可以只设置一个尺寸,其余的将由您来处理。 col-md-12 应该对你一直都很好。
要解决您的主要问题,请查看嵌套项:https://getbootstrap.com/docs/4.0/layout/grid/#nesting
所以,我对你的代码做了很多工作,我会 post 把它还给你,我会尽可能多地解释我能记住的变化:)
我也不会称自己为 bootstrap 专家。所以这些很有趣。
首先,我注意到 <link href=
没有在头脑中工作。
所以,我将其更改为 bootstrap CDN 和最新版本
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
如果您想稍后使用可折叠导航或旋转木马或类似的东西,请务必匹配来自同一来源的 Javascript...
接下来,我将网格更改为如下所示:
<div class="container-fluid">
<div class="row">
<div class="header">Header</div>
</div>
<div class="row">
<div class="navigation-bar">Nav</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-sm mbody">
<div class="article">Article</div>
</div>
<div class="col-sm mbody">
<div class="row">
<div class="aside">Aside</div>
</div>
<div class="row">
<div class="section">Section</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="footer">Footer</div>
</div>
</div>
真的,我们想要的是单列中的两行
这些变化使我们接近我们想要的。
接下来的事情是给你所有的内部 div 的 100% 宽度
body {
background-color: black;
font-size: 2em;
text-align: center;
}
.mbody {
margin: 0;
padding: 0;
}
.header {
background-color: cornflowerblue;
height: 60px;
text-align: center;
width: 100%;
}
.navigation-bar {
background-color: khaki;
height: 50px;
text-align: center;
width: 100%;
}
.article {
background-color: darkseagreen;
height: 180px;
text-align: center;
width: 100%;
}
.aside {
background-color: goldenrod;
height: 90px;
text-align: center;
width: 100%;
}
.section {
background-color: lightsteelblue;
height: 90px;
text-align: center;
width: 100%;
}
.footer {
background-color: lemonchiffon;
height: 40px;
text-align: center;
width: 100%;
}
请注意,最后,我将 "nav" class 更改为 "navigation-bar" 因此您的样式将适用,因为 "nav" 是 class 中的预定义 bootstrap 已经覆盖了你的样式。
然后我将 "mbody" class 添加到两列并将页边距和填充设置为 0 以使所有内容都适合,并且左侧或右侧没有 space。
我的结果看起来像您在上面的两张图片中 post 编辑的结果。希望这会有所帮助。 :)
我是学习 bootstrap 网格的新手,我的指南主要使用网站指南并根据此示例对其进行定制。
全屏时预期的输出应该如下所示:
预期全尺寸
折叠成较小尺寸时像这样:
预期崩溃
我的主要问题是试图让 "Aside" 和 "Section" 部分在 "Article" 部分内相互堆叠。我什至无法让它与 "article" 部分排成一行。其他细节我会自己解决,但这部分我已经苦苦挣扎了一段时间。
CSS:
body {
background-color: black;
font-size: 2em;
text-align: center;
}
.header {
background-color: cornflowerblue;
height: 60px;
text-align: center;
}
.nav {
background-color: khaki;
height: 50px;
text-align: center;
}
.article {
background-color: darkseagreen;
height: 180px;
text-align: center;
}
.aside {
background-color: goldenrod;
height: 90px;
text-align: center;
}
.section {
background-color: lightsteelblue;
height: 90px;
text-align: center;
}
.footer {
background-color: lemonchiffon;
height: 40px;
text-align: center;
}
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="mystyle-Test2.css"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">
</script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12 col-sm-12">
<div class="header">Header</div>
</div>
<div class="col-md-12 col-sm-12">
<div class="nav">Nav</div>
</div>
<div class="col-md-8 col-sm-12">
<div class="article">Article</div>
<div class="col-md-2 col-sm-12">
<div class="aside">Aside</div>
<div class="col-md-2 col-sm-12">
<div class="section">Section</div>
</div>
<div class="col-md-12 col-sm-12">
<div class="footer">Footer</div>
</div>
</div>
</div>
Bootstrap 的网格的工作方式是,如果您在调整浏览器大小时不需要更改它,您可以只设置一个尺寸,其余的将由您来处理。 col-md-12 应该对你一直都很好。
要解决您的主要问题,请查看嵌套项:https://getbootstrap.com/docs/4.0/layout/grid/#nesting
所以,我对你的代码做了很多工作,我会 post 把它还给你,我会尽可能多地解释我能记住的变化:) 我也不会称自己为 bootstrap 专家。所以这些很有趣。
首先,我注意到 <link href=
没有在头脑中工作。
所以,我将其更改为 bootstrap CDN 和最新版本
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
如果您想稍后使用可折叠导航或旋转木马或类似的东西,请务必匹配来自同一来源的 Javascript...
接下来,我将网格更改为如下所示:
<div class="container-fluid">
<div class="row">
<div class="header">Header</div>
</div>
<div class="row">
<div class="navigation-bar">Nav</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-sm mbody">
<div class="article">Article</div>
</div>
<div class="col-sm mbody">
<div class="row">
<div class="aside">Aside</div>
</div>
<div class="row">
<div class="section">Section</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="footer">Footer</div>
</div>
</div>
真的,我们想要的是单列中的两行 这些变化使我们接近我们想要的。 接下来的事情是给你所有的内部 div 的 100% 宽度
body {
background-color: black;
font-size: 2em;
text-align: center;
}
.mbody {
margin: 0;
padding: 0;
}
.header {
background-color: cornflowerblue;
height: 60px;
text-align: center;
width: 100%;
}
.navigation-bar {
background-color: khaki;
height: 50px;
text-align: center;
width: 100%;
}
.article {
background-color: darkseagreen;
height: 180px;
text-align: center;
width: 100%;
}
.aside {
background-color: goldenrod;
height: 90px;
text-align: center;
width: 100%;
}
.section {
background-color: lightsteelblue;
height: 90px;
text-align: center;
width: 100%;
}
.footer {
background-color: lemonchiffon;
height: 40px;
text-align: center;
width: 100%;
}
请注意,最后,我将 "nav" class 更改为 "navigation-bar" 因此您的样式将适用,因为 "nav" 是 class 中的预定义 bootstrap 已经覆盖了你的样式。 然后我将 "mbody" class 添加到两列并将页边距和填充设置为 0 以使所有内容都适合,并且左侧或右侧没有 space。
我的结果看起来像您在上面的两张图片中 post 编辑的结果。希望这会有所帮助。 :)