在我寫這個問題之前,我嘗試了this solution,但它不起作用。ASP.Net中的容器流體高度不是100%
我有這樣的佈局在ASP.net頁:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="ToolDesign.Home" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Availability Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/Scripts/jquery-1.9.1.js"></script>
<script type="text/javascript" src="/Scripts/bootstrap.js"></script>
<style>
body {
position: relative;
}
#section1 {padding-top:50px;height:500px;color: #fff; background-color: #009688;}
#section2 {padding-top:50px;height:500px;color: #fff; background-color: #673ab7;}
#section3 {padding-top:50px;height:500px;color: #fff; background-color: #ff9800;}
#section4 {padding-top:50px;height:500px;color: #fff; background-color: #00bcd4;}
#section42 {padding-top:50px;height:500px;color: #fff; background-color: #009688;}
<!-- make page stretch -->
html, body {
height: 100%;
}
.container-fluid {
height: 100%;
overflow-y: hidden; /* don't show content that exceeds my height */
}
.body-film {
min-height: 100%;
overflow-y: hidden; /* don't show content that exceeds my height */
}
</style>
</head>
<body data-spy="scroll" data-target=".navbar" data-offset="60">
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Availability Tool</a>
</div>
<div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li><a href="#section1">Home</a></li>
<li><a href="#section2">Availability Test</a></li>
<li><a href="#section3">Monitoring</a></li>
<li><a href="#section4">About</a></li>
</ul>
</div>
</div>
</div>
</nav>
<div id="section1" class="container-fluid">
<h1>Home section</h1>
<p>Greeting text</p>
</div>
<div id="section2" class="container-fluid">
<h1>Availability section</h1>
</div>
<div id="section3" class="container-fluid">
<h1 style="text-align: center; font-size: 300%;; vertical-align: middle; line-height: 90px; margin-top: 100px;">Soon..</h1>
</div>
<div id="section4" class="container-fluid">
<h1>About</h1>
<p>Tool version and team name</p>
</div>
</body>
</html>
的問題是高度不會適合全屏幕截圖如下所示:
我使用的是最新版本的Bootstrap 3.3.7
處理高度和百分比時始終牢記層次結構。如果你想讓一個塊的伸展率達到100%,那麼這個元素上面的所有父母也必須達到100%的高度。例如,'html> body> div.div1> div.div2 {height:100%; }'。如果你想'div.div2 {height:100%; }',你需要確保你相應地設置下面的內容'html,body,.div1 {height:100%; }'。而在asp.net應用程序中,您很可能只在您的身體代碼中包含表單標記。在添加CSS時考慮您的層次結構。 – Pegues
另外,請務必使用'* {box-size:border-box; }處理這種特殊佈局時。然後,您可以應用底部填充,看起來像您需要粘滯頁腳。您的底部填充(很可能分配給身體標記)將與粘滯頁腳的高度相同。然後,將'position:fixed'應用於粘腳,以便始終將其保留在屏幕的底部。 – Pegues
@Pegues是的親愛的感謝,你是對的我解決了這個問題,我會更新問題 – Omar