我的像素计算没有加起来有问题。
我有一个主要的div(#page
):980px宽
它有一个子div(#content
)也是:980px宽
div(#content
)内有两个div(#left-pane
),宽度为300px,(#右窗格),宽度为676 px。
它们两个都有一个1px的边框 - 横向看整个网站,这应该是4px的宽度。
因此,
300px + 676px + 4px = 980px
尽管如此,我的div(#right-pane
)向下移动到div(#left-pane
)以下。为什么呢?
我在两者上都有填充和边距设置为NONE。
HTML:
<head>
<title>Brazil Learner | The easy was to master Brazilian-Portuguese</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="page">
<div id="top">
<img class="logo" src="images/logo.png" />
<ul class="social">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
<div id="nav">
<div class="nav-button"><a href="#">Home</a></div>
<div class="nav-button"><a href="#">Lessons</a></div>
<div class="nav-button"><a href="#">Guides</a></div>
<div class="nav-button"><a href="#">About us</a></div>
</div>
<div id="content">
<div id="left-pane">
</div>
<div id="right-pane">
</div>
</div>
<div id="footer">
<div>
</div> <!-- Page closer -->
</body>
</html>
CSS:
html,body,p,ul,li,img,h1,h2,h3 {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
a {
text-decoration: none;
color: black;
}
#page {
width: 980px;
margin: 0px auto;
}
/* Top */
#top {
border: 1px solid black;
overflow: hidden;
padding: 30px 30px;
}
.logo {
float: left;
width: 130px;
height: 130px;
}
.social {
float: right;
margin-right: 40px;
}
.social li {
display: inline;
margin: 0px 10px 0px 0px;
}
/* Nav */
#nav {
border: 1px solid red;
overflow: hidden;
margin-bottom: 20px;
}
.nav-button {
float: left;
width: 100px;
margin-right: 6px;
background-color: grey;
text-align: center;
}
/* Content */
#content {
margin-bottom: 20px;
overflow: hidden;
width: 980px;
}
#left-pane {
float: left;
width: 300px;
height: 700px;
border: 1px solid green;
}
#right-pane {
float: right;
width: 676px;
height: 700px;
border: 1px solid black;
}
/* Footer */
#footer {
float: left;
width: 980px;
height: 70px;
border: 1px solid blue;
}
答案 0 :(得分:6)
我不确定这是否有效,但添加此内容并查看是否有效。
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
答案 1 :(得分:1)
要考虑div的宽度,您应该考虑4个comoponents
因此,如果你搜索CSS Box模型(这里有一些例子http://www.w3.org/TR/CSS2/box.html和http://www.w3schools.com/css/css_boxmodel.asp),你将能够看到可以帮助你的盒子模型。同样使用jQuery,您可以使用以下方法检索每个部分的宽度:.width(),.innerWidth()和.outerWidth()。请注意,您可能需要进行一些计算才能找到边框宽度,填充宽度或边距宽度。
阅读CSS文档和jQuery文档,以更清楚地了解这些工作原理。有时,如果需要一些具有可变宽度对象的精确值,您可能需要使用jQuery来正确地进行宽度计算。
答案 2 :(得分:1)
您使用哪种浏览器来测试您的网站?
我把你的代码扔到一个小提琴上,它在我的Firefox中显得很好,这表明你可能在IE中看它,可能是在非标准模式下,或者是旧版本。 / p>
如果是这种情况,那么它是由于IE(即旧版本)如何处理盒子模型和数学。对于IE,300px + 676px + 4px> 980px。解决此问题的最简单方法是将影响宽度的内容减少1-2px,并且可能会修复它。