全页面布局的基本设计

时间:2014-11-26 22:50:08

标签: javascript jquery html css

很抱歉,如果之前有人询问过,但我一直在寻找,但仍然无法提出基本设计来实现我想要的布局(确认我不想要顶部和底部的空白区域)

我主持一个个人摄影网站,在那里我将我的业余摄影发布给亲朋好友,我想让它看起来好一点,在我的脑海中,我希望每一页都不可滚动,我会确保内容合理地适应空间。

我目前并不担心移动设备和平板电脑设备的空间有限,因为我有基本的结构,我打算制作手机和平板电脑页面,以便我可以指定设计而不是流畅的网站。 (我可能会在以后再讨论这个问题)

所以我想将下面的例子作为我的页面布局

Img Link

我不确定我的代码与我的代码相差多远,我相信我已经差不多了,而且我只是错过了那个允许我的主div被限制在剩下的可用空间的位。在hr noshade结束之间的屏幕和在页脚div开始之前停止,这将允许诸如图片为div的100%高度,并且图片(或其他对象)将根据大小的大小重新调整大小。观景区

我真的很感激任何帮助,如果之前有人问过,我会再次道歉,我尽量不要建立一个表格格式的网站,因为我知道这是非常古老的编码方式

我已经做了一些研究,并且认为我可能需要使用jquery喷出文件/窗口的高度设置,但是我对此不熟悉我找不到一个好的例子

总而言之,我只想让主要的div从hr noshade行的底部延伸到页脚的顶部。



@charset "utf-8";

/* CSS Document */

* {
  padding: 0px;
  margin: 0px;
}
html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
}
* html #outer {
  /* ie6 and under only*/
  height: 100%;
}
.content {
  padding-top: 20px;
}
.wrapper {
  min-height: 100%;
  margin: -20px auto 0;
  /*Change this to change height of footer must match .footer height number*/
  width: 70%;
}
.footer {
  height: 20px;
  /*Change this to change height of footer must match .wrapper margin -number*/
  background-color: #2C5463;
  text-align: center;
  width: 70%;
  color: #FCFCFC;
  margin-left: auto;
  margin-right: auto;
  border-radius: 151px;
}
.title {
  font-size: 50px;
  font-family: tangerine;
  font-style: normal;
  font-weight: 700;
  font-variant: normal;
  color: #2C5463;
  float: left;
  width: 100%;
  margin-bottom: 2px;
  margin-top: 10px;
}
.main {
  float: left;
  width: 100%;
  background-color: #F80307;
}
hr {
  border-radius: 208px;
  border-width: 2px;
  border-color: #2C5463;
}
.menu {
  text-align: center;
  color: #FCFCFC;
  background-color: #2C5463;
  float: left;
  width: 100px;
  margin-right: 5px;
  padding-top: 3px;
  padding-right: 3px;
  padding-bottom: 3px;
  padding-left: 3px;
  border-radius: 38px;
}
.menu2 {
  text-align: center;
  color: #FCFCFC;
  background-color: #2C5463;
  float: Right;
  width: 100px;
  padding-top: 3px;
  padding-right: 3px;
  padding-bottom: 3px;
  padding-left: 3px;
  border-radius: 38px;
}
.menuwrapper {
  width: 100%;
  float: left;
  margin-top: 2px;
  margin-bottom: 2px;
}

<!DOCTYPE html>
<html lang="en">

<head>

  <!--Start of CSS Link-->
  <link href="test.css" rel="stylesheet" type="text/css">
  <style type="text/css">
    body {
      background-color: #e4e5e7;
    }
  </style>
  <!--End of CSS Link-->

  <!--Start of Fonts-->
  <script>
    var __adobewebfontsappname__ = "dreamweaver"
  </script>
  <script src="http://use.edgefonts.net/tangerine:n4,n7:default.js" type="text/javascript"></script>
  <!--End of Fonts-->

  <meta charset="utf-8">
</head>
<!--Start of Webpage-->

<body>
  <!--Start of Page Wrapper (no main content above this line-->
  <div class="wrapper">
    <!--Start of Main Content-->
    <div class="content">
      <!--Start of Page Content-->
      <!--Start of Title-->
      <div class="title">
        <p>Skc Photography</p>
      </div>
      <!--End of Title-->
      <!--Start of Member Login--
    <div class="login"><p>Member Login</p></div>
    <!--End of Member Login-->
      <!--Start of line-->
      <hr noshade>
      <!--Start of line-->
      <!--Start of Menu-->
      <div class="menuwrapper">
        <div class="menu">
          <p>Home</p>
        </div>
        <div class="menu">
          <p>Galleries</p>
        </div>
        <div class="menu">
          <p>Contact Me</p>
        </div>
        <div class="menu2">
          <p>Member Login</p>
        </div>
      </div>
      <!--End of Menu-->
      <!--Start of line-->
      <hr noshade>
      <!--Start of line-->
      <!--Start of Main Content-->
      <div class="main">This div needs to stretch to top of the Footer and not past it.
      </div>
      <!--End of Main Content-->
    </div>
    <!--End of Page Content-->
  </div>
  <!--End of Page Wrapper (no main content Below this line-->
  <!--Start of Footer-->
  <div class="footer">SKCPhotography - Copyright &copy; 2014</div>
  <!--End of Footer-->
</body>
<!--End of Webpage-->

</html>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

您只需向position: absolute div添加.main,然后添加父.wrapper position: relative,然后从那里开始工作,查看{{3} }}

.main{
    position: absolute;
    bottom: 0;
    top: 126px;/*the height of the header menu, hr etc.*/
    right: 0;
}
.wrapper{
    position: relative;
}

答案 1 :(得分:0)

如果您将主div设置为高度计算100%减去已知高度因子(标题,菜单和页脚),则可以轻松实现该布局。

这是一个基于您的请求的简单结构化布局。你希望,你可以把它复制到你的喜欢中。

注意:查看时,请在整页中查看,因为该页面太小,无法显示主div

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

#container { 
    width: 100%;
    height: 100%;
    padding: 10%;
    box-sizing: border-box;
}

#header {
    width: 100%;
    height: 30px;
    background: blue;
    text-align: center;
}

#menu {
    width: 100%;
    height: 20px;
    background: green;
    text-align: center;
}

#main {
    width: 100%;
    height: calc(100% - 70px);
    background: orange;
    text-align: center;
}

#footer {
    width: 100%;
    height: 20px;
    background: pink;
    text-align: center;
}
<div id="container">
  <div id="header">header</div>
  <div id="menu">Menu</div>
  <div id="main">Main</div>
  <div id="footer">Footer</div>
</div>

答案 2 :(得分:0)

尝试更改css。在DOM中添加一个额外的元素,你就是完美的。 所以你需要改变的CSS是

.wrapper {
    min-height: 100%;
    margin: -20px auto 0;
    width: 70%;
    position: relative;/*This is new*/
}    
.main {
    position: absolute;/*This is new*/
    /* float: left; */ REMOVE THIS
    width: 100%;
    height: 100%;/*This is new*/
    background-color: #F80307;
 }

在具有MAIN类的div中添加另一个将被定位为相对的div。

.new_div{
    position: relative;
}