HTML & CSS+ Twitter Bootstrap: pełny układ strony lub wysokość 100% - Npx
Próbuję zrobić następujący layout:
+-------------------------------------------------+
| Header + search (Twitter navbar) |
+------------+------------------------------------+
| | |
| | |
|Navigation | Content column |
| | |
| | |
| | |
| | |
| | |
| | |
+------------+------------------------------------+
| Footer |
+-------------------------------------------------+
Układ musi zabierać całą dostępną wysokość i szerokość, kolumny nawigacji i treści zabierać całą dostępną przestrzeń i przewijać na przepełnieniu, stopka powinna trzymać się dołu.
HTML wygląda teraz tak:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
<link href="css/app.css" rel="stylesheet" media="screen">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div class="container-fluid">
<div class="navbar">
<!-- navbar content -->
</div>
<div class="row-fluid columns">
<div class="span2 article-tree">
<!-- navigation column -->
</div>
<div class="span10 content-area">
<!-- content column -->
</div>
</div>
<div class="footer">
<!-- footer content -->
</div>
</div>
</body>
</html>
CSS:
body, html, .container-fluid { /// take all available height
height: 100%;
}
.article-tree {
color: #DCE6E5;
background: #2F323B;
}
.content-area {
overflow: auto;
height: 100%; /// explicit height to make scrolling work
}
.columns {
height: 100%; /// columns should take all height
margin-top: 42px; /// minus header
margin-bottom: 20px; // minus footer
}
.columns > div {
height: 100%; // make each column to take all available height
}
.footer {
background: red;
height: 20px;
}
Teoretycznie powinno działać, ale kolumny.marża nie działa tak, jak się spodziewam. Myślałem, że powinien zrobić height = 100% - magin, ale po prostu przesuwa Pojemnik.
I ' ve googled i widziałem wiele pytań na StackOverflow. Wszystkie z nich zawierają JavaScript lub position: absolute i manual positioning. IMHO to więcej hacków niż rozwiązań, myślę, że powinien być jakiś prostszy i bardziej elegancki sposób na rozwiązanie tego problemu.
Więc jak zrobić layout opisany powyżej? Może Bootstrap może mi pomóc(przeglądałem dokumentację, ale nie ma wzmianek o takich przypadkach)?
4 answers
Znalazłem tutaj post na Stackoverflow i wdrożyłem Twój projekt:
Oto oryginalny post: https://stackoverflow.com/a/5768262/1368423
Tego szukasz?HTML:
<div class="container-fluid wrapper">
<div class="row-fluid columns content">
<div class="span2 article-tree">
navigation column
</div>
<div class="span10 content-area">
content column
</div>
</div>
<div class="footer">
footer content
</div>
</div>
CSS:
html, body {
height: 100%;
}
.container-fluid {
margin: 0 auto;
height: 100%;
padding: 20px 0;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.columns {
background-color: #C9E6FF;
height: 100%;
}
.content-area, .article-tree{
background: #bada55;
overflow:auto;
height: 100%;
}
.footer {
background: red;
height: 20px;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:30:44
Wiem, że jest późno, ale może pomóc komuś innemu!
body,html {
height: 100%;
}
.contentarea {
/*
* replace 160px with the sum of height of all other divs
* inc padding, margins etc
*/
min-height: calc(100% - 160px);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-18 16:11:45
Jeśli używasz Bootstrap 2.2.1 to może właśnie tego szukasz.
Przykładowy indeks plików.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link href="Content/bootstrap.min.css" rel="stylesheet" />
<link href="Content/Site.css" rel="stylesheet" />
</head>
<body>
<menu>
<div class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Application name</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About</a></li>
<li><a href="/Home/Contact">Contact</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="/Account/Register" id="registerLink">Register</a></li>
<li><a href="/Account/Login" id="loginLink">Log in</a></li>
</ul>
</div>
</div>
</div>
</menu>
<nav>
<div class="col-md-2">
<a href="#" class="btn btn-block btn-info">Some Menu</a>
<a href="#" class="btn btn-block btn-info">Some Menu</a>
<a href="#" class="btn btn-block btn-info">Some Menu</a>
<a href="#" class="btn btn-block btn-info">Some Menu</a>
</div>
</nav>
<content>
<div class="col-md-10">
<h2>About.</h2>
<h3>Your application description page.</h3>
<p>Use this area to provide additional information.</p>
<p>Use this area to provide additional information.</p>
<p>Use this area to provide additional information.</p>
<p>Use this area to provide additional information.</p>
<p>Use this area to provide additional information.</p>
<p>Use this area to provide additional information.</p>
<hr />
</div>
</content>
<footer>
<div class="navbar navbar-default navbar-fixed-bottom">
<div class="container" style="font-size: .8em">
<p class="navbar-text">
© Some info
</p>
</div>
</div>
</footer>
</body>
</html>
Zawartość Pliku / Strona.css
body {
padding-bottom: 70px;
padding-top: 70px;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-27 14:05:41
Tego szukasz? Oto demo fiddle .
Układ jest oparty na procentach, kolory są dla jasności. Jeśli kolumna content przepełnia się, powinien pojawić się pasek przewijania.
body, html, .container-fluid {
height: 100%;
}
.navbar {
width:100%;
background:yellow;
}
.article-tree {
height:100%;
width: 25%;
float:left;
background: pink;
}
.content-area {
overflow: auto;
height: 100%;
background:orange;
}
.footer {
background: red;
width:100%;
height: 20px;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-31 14:36:56