css 容器 div 未与页面顶部对齐

发布于 2024-12-07 15:41:55 字数 3201 浏览 0 评论 0原文

我有一个两列布局。我有一个 #mainContainer div,其中包含以下所有内容(#footer 除外):

  1. 顶部:标题 div (#intro)(包含一个小的渐变图像), 和 #hero div(包含图像)
  2. 包含两列: #content div
  3. 在左侧的 #content div 内: #mainContent div
  4. 在右侧的 #content div 内: #sideBar div
  5. 横跨底部(外侧) #mainContainer div): 底部的#footer div (包括像标题 div 这样的渐变图像)

很简单,对吧?但我无法让 #mainContainer div 位于浏览器顶部(没有空格或所有浏览器顶部都有 6-8 像素的默认边距/填充)并使 #footer div 跨越整个底部浏览器窗口的(不在任何 Div 内部)。 (忽略页脚中的内联样式)。有人可以帮我吗?

更新:添加了 HTML

body {
font-family:Arial, Helvetica, sans-serif;
margin:0;
padding:0;
background:#bbb;
text-align:center;
}



#mainContainer {
width:980px;
margin: 0 auto;
background: #fff url(../i/content-box-header-gray.jpg) repeat-x;
text-align:left;
/*height: 700px;*/

}

#intro {
/*top:0;*/
margin: 0;
text-align:left;

}


#hero {
width:960px;
padding-left:10px;
padding-right:10px

}



#content {
width:960px;
padding-left:10px;
padding-right:10px;
}

#mainContent_left {

float:left;
width:640px;
margin:0;
padding-right: 20px;
background:#ccc;
}



#sideBar {
float:left;
width:300px;
margin:0;
/*padding-right: 20px;*/
background:#ffd;
}


#footer {
width:960px;
clear:both;
background:#cc9;
}

HTML:

<title>Descriptions </title>


<link rel="stylesheet" href="css/mainstyles.css" type="text/css" />
</head>

<body>
<div id="mainContainer">

<div id="intro"><h2>introducing</h2></div>

<div id="Hero">
    <ul>
        <li class="name"></li>
        <li class="textJoin">is a member of </li>
        <li class="name"></li>
    </ul>
</div>

<div id="content">
    <div id="mainContent">

        <h3>First Topic title</h3>
        <p>floated left image and text</p>
        <p>Some content</p>
        <p>Some content</p>

        <h3>Second Topic title</h3>
        <p>Some content</p>        
        <p>Image here</p>

        <h3>Third Topic title</h3>
        <p>(floated left image here) Some text</p>

        <h3>Fourth Topic title</h3>
        <p>(floated left image here) Some text</p>>

        <h3>Fifth Topic title</h3>
        <p>(floated left image here) Some text</p>        
        <p>Image here</p>

        <p>(link to FAQ page)</p>

    </div>


    <div id="sideBar">sidebar content
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
    </div>


    <div id="footer_warranty">footer content
        <div id="wf_logos" style="float:left; padding:0 10px 0 0;"><p>contact info</p>
</div>
        <div id="wf_footerCopy" style="float:left; padding:0 10px 0 0;">
<p>some text</p></div>
        <p style="clear:both;" />
    </div>
</div>
<p style="clear:both;" />
</div>

</body>
</html>

I have a two-column layout. I have a #mainContainer div that contains all of the following (except the #footer):

  1. Across the top: a header div (#intro)(contains a small gradient image),
    and a #hero div (contains images)
  2. To contain the two columns: a #content div
  3. Within the #content div on the left: a #mainContent div
  4. Within the #content div on the right: a #sideBar div
  5. Across the bottom (outside the #mainContainer div): a #footer div on the bottom
    (including a gradient image like the header div)

Simple, right? But I'm having trouble getting the #mainContainer div to be at the top of the browser (no spaces or that 6-8px default margin/padding all browsers have at the top) and getting the #footer div to span across the entire bottom of the browser window (not inside any of the Div's ). (disregard inline styles in footer). Could someone help me out?

UPDATED: ADDED HTML

body {
font-family:Arial, Helvetica, sans-serif;
margin:0;
padding:0;
background:#bbb;
text-align:center;
}



#mainContainer {
width:980px;
margin: 0 auto;
background: #fff url(../i/content-box-header-gray.jpg) repeat-x;
text-align:left;
/*height: 700px;*/

}

#intro {
/*top:0;*/
margin: 0;
text-align:left;

}


#hero {
width:960px;
padding-left:10px;
padding-right:10px

}



#content {
width:960px;
padding-left:10px;
padding-right:10px;
}

#mainContent_left {

float:left;
width:640px;
margin:0;
padding-right: 20px;
background:#ccc;
}



#sideBar {
float:left;
width:300px;
margin:0;
/*padding-right: 20px;*/
background:#ffd;
}


#footer {
width:960px;
clear:both;
background:#cc9;
}

HTML:

<title>Descriptions </title>


<link rel="stylesheet" href="css/mainstyles.css" type="text/css" />
</head>

<body>
<div id="mainContainer">

<div id="intro"><h2>introducing</h2></div>

<div id="Hero">
    <ul>
        <li class="name"></li>
        <li class="textJoin">is a member of </li>
        <li class="name"></li>
    </ul>
</div>

<div id="content">
    <div id="mainContent">

        <h3>First Topic title</h3>
        <p>floated left image and text</p>
        <p>Some content</p>
        <p>Some content</p>

        <h3>Second Topic title</h3>
        <p>Some content</p>        
        <p>Image here</p>

        <h3>Third Topic title</h3>
        <p>(floated left image here) Some text</p>

        <h3>Fourth Topic title</h3>
        <p>(floated left image here) Some text</p>>

        <h3>Fifth Topic title</h3>
        <p>(floated left image here) Some text</p>        
        <p>Image here</p>

        <p>(link to FAQ page)</p>

    </div>


    <div id="sideBar">sidebar content
        <p> </p>
        <p> </p>
        <p> </p>
        <p> </p>
    </div>


    <div id="footer_warranty">footer content
        <div id="wf_logos" style="float:left; padding:0 10px 0 0;"><p>contact info</p>
</div>
        <div id="wf_footerCopy" style="float:left; padding:0 10px 0 0;">
<p>some text</p></div>
        <p style="clear:both;" />
    </div>
</div>
<p style="clear:both;" />
</div>

</body>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

挽梦忆笙歌 2024-12-14 15:41:55

我无法重现您的问题。不过,我为你创建了一个小提琴,其中我还添加了一些 CSS 重置规则,这些规则应该可以解决诸如此类的跨任何和所有浏览器的问题。

当您启动新站点时,您应该始终使用重置 CSS。这样,一切都按照您的意愿进行,您不必“编写代码”特定的浏览器行为。

我还创建了一些占位符代码,因为您没有提供任何占位符代码。

我希望重置可以解决您的问题。

http://jsfiddle.net/dekket/eERsK/

编辑:

检查这个新的小提琴。出去工作了。
http://jsfiddle.net/dekket/6bTkZ/

I am unable to reproduce your problem. However, I have created a fiddle for you, where I have also added some CSS reset rules which should take care of a problem such as this, cross any and all browsers.

You should always use a reset CSS when you start a new site. That way, it's all on your terms and you don't have to "code away" specific browser behaviour.

I have also created some placeholder code since you did not provide any.

I hope the reset fixes your problem.

http://jsfiddle.net/dekket/eERsK/

Edit:

Check this new fiddle. Out to work.
http://jsfiddle.net/dekket/6bTkZ/

淡笑忘祈一世凡恋 2024-12-14 15:41:55

尝试导入 Meyer 的重置样式表:
http://meyerweb.com/eric/tools/css/reset/

Try importing Meyer's reset stylesheet:
http://meyerweb.com/eric/tools/css/reset/

挖鼻大婶 2024-12-14 15:41:55

尝试将 float:leftoverflow:hidden 添加到您的 #mainContainer

try adding float:left and overflow:hidden to your #mainContainer

如梦亦如幻 2024-12-14 15:41:55

您需要将 html 和 body css margin 和 padding 属性设置为 0。

在 css 文件中使用以下内容

html, body {
margin: 0;
padding: 0;
}

you need to set the html and body css margin and padding properties to 0.

use the following in your css file

html, body {
margin: 0;
padding: 0;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文