如何将页面分为三个垂直部分?

时间:2016-04-16 10:04:14

标签: html css

我想将我的网页转换为四个部分,一个是横向,另一个是垂直。水平部分没问题,但垂直部分有两个问题:

  1. 它们没有填满整个屏幕高度。
  2. 第三部分与第二部分重叠近10或20像素。
  3. 这是我的CSS:

    body{
        width: available;
        height: available;
    }
    
    .container{
        width: available;
        height: available;
    }
    
    .leftpane{
        width: 25%;
        min-width: 350px;
        height: available;
        min-height: 400px;
        float: left;
        background-color: rosybrown;
        border-collapse: collapse;
    }
    
    .middlepane{
       width: 50%;
       min-width: 800px;
       height: available;
       min-height: 650px;
       float: left;
       background-color: royalblue;
       border-collapse: collapse;
    }
    
    .rightpane{
        width: available;
        height: available;
        position: relative;
        margin-left: 75%;
        background-color: yellow;
        border-collapse: collapse;
    }
    
    .toppane{
        width: available;
        height: 100px;
        border-collapse: collapse;
        background-color: #4da6ff;
    }
    

    这是HTML页面:

    <div class="container">
                <div class="toppane">Test Page</div>
                <div class="leftpane"><h1>Test Page</h1></div>
                <div class="middlepane">Test Page</div>
                <div class="rightpane"><h1>Test Page</h1></div>
    </div>
    

    我的输出是:

    Image of my output

    我希望它是这样的:

    Enter image description here

    这是a jsfiddle

4 个答案:

答案 0 :(得分:7)

首先,width: available不是有效的属性。如果要使用所有可用空间,则应设置width: 100%。无论如何,为了解决您的问题,您还应该height: 100%body使用html。看这个例子:

body, html {
  width: 100%;
  height: 100%;
  margin: 0;
}

.container {
  width: 100%;
  height: 100%;
}

.leftpane {
    width: 25%;
    height: 100%;
    float: left;
    background-color: rosybrown;
    border-collapse: collapse;
}

.middlepane {
    width: 50%;
    height: 100%;
    float: left;
    background-color: royalblue;
    border-collapse: collapse;
}

.rightpane {
  width: 25%;
  height: 100%;
  position: relative;
  float: right;
  background-color: yellow;
  border-collapse: collapse;
}

.toppane {
  width: 100%;
  height: 100px;
  border-collapse: collapse;
  background-color: #4da6ff;
}
<div class="container">
  <div class="toppane">Test Page</div>
  <div class="leftpane">
    <h1>Test Page</h1></div>
  <div class="middlepane">Test Page</div>
  <div class="rightpane">
    <h1>Test Page</h1></div>
</div>

注意:

1。我删除了在这种情况下您不需要的所有min-widthmin-height

2。对您的元素使用height: 100%,您也应该在bodyhtml代码上设置此内容。

3。左窗格应为float: left width: 25%,右窗格float: right width: 25%和中间窗格float: left或{ {1}} float: right

就是这样!

答案 1 :(得分:3)

检查 here。您将获得最简单的代码,将您的屏幕划分为三列。

HTML文件

<body>
  <div class="class1" style="background-color:#9BCB3B;">
    <p>Hi</p>
  </div>
  <div class="class2" style="background-color:#1AB99E;">
    <p>Aditya</p>
  </div>
  <div class="class3" style="background-color:#F36F25;">
    <p>This is Working!</p>
  </div>
</body>

CSS文件

body {
  width: 100%;
  float: left;
}

.class1,
.class2,
.class3 {
  width: 33.33%;
  float: left;
  height: 100px;
}

p {
  padding-top: 25px;
  text-align: center;
}

答案 2 :(得分:2)

使用具有网格系统的Twitter Bootstrap框架。

EXAMPLE

<html>
    <head>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css" media="screen"/>
    </head>

    <body>
        <div class="container">
          <div class="row">
            <div class="col-xs-12 text-center bg-primary" style="height:40px;">Top </div>
          </div>
          <div class="row">
            <div class="col-xs-3 bg-warning" style="height:200px;">left</div>
            <div class="col-xs-6 bg-info" style="height:200px;">Center</div>
            <div class="col-xs-3 bg-danger" style="height:200px;">Right </div>
          </div>
        </div>
    </body>
</html>

答案 3 :(得分:1)

<html> <head>   <title>Divide Tab </title> <style> body, html {  
width: 100%;   height: 100%;   margin: 0; }

.container {   width: 100%;   height: 100%; } .leftpane {
    width: 25%;
    height: 100%;
    float: left;
    background-color: rosybrown;
    border-collapse: collapse;
     text-align: center; }

.middlepane {
    width: 50%;
    height: 100%;
    float: left;
    background-color: royalblue;
    border-collapse: collapse;
     text-align: center; }

.rightpane {   width: 25%;   height: 100%;   position: relative;  
float: right;   background-color: yellow;   border-collapse:
collapse;    text-align: center; }

.toppane {   width: 100%;   height: 100px;   border-collapse:
collapse;   background-color: #4da6ff;   text-align: center; }

</style>

</head> <body>  <div class="container">   <div
class="toppane"><h2>Top View</h2></div>   <div class="leftpane">
    <h1>Left View</h1></div>   <div class="middlepane"><h2>Middle View</h2></div>   <div class="rightpane">
    <h1>Right View</h1></div> </div> </body> </html>