像素不会加起来

  • 本文关键字:起来 像素 html css
  • 更新时间 :
  • 英文 :


我的像素计算不添加。

我有一个主div(#page),即:980px宽它有一个儿童div(#content),也有:980px wide

在Div(#content)内部有两个Divs(#left-pane),它是300px宽的,(#右窗格),宽676 px。

他们俩一直都有一个1px边框 - 水平遍布站点,这应该给出4px的宽度。

因此,

300px 676px 4px = 980px

尽管如此,我的DIV(#right-pane)还是向下移动(#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;
}

我不确定这是否有效,但请添加它并查看它是否有效。

* {
 -moz-box-sizing: border-box;
 -webkit-box-sizing: border-box;
  box-sizing: border-box; 
}

您使用什么浏览器来测试您的网站?

我将您的代码扔在小提琴上,这在我的Firefox中看起来还不错,这表明您可能在IE中查看它,可能是在非标准模式或旧版本中。<<<<<<<<<<<<

如果是这样,则是由于IE(即旧版本)如何处理框模型和数学。到IE,300px 676px 4px> 980px。解决此问题的最简单方法是将影响宽度影响宽度的东西减少1-2PX,并且可能会修复它。

要考虑一个div的宽度,您应该考虑4个comoponents

  1. DIV本身的宽度(例如,这是您的文本的位置)
  2. 填充宽度(上面点1中提到的宽度周围)
  3. 边界的宽度(周围填充)
  4. 边界的边缘(周围)

因此,如果您搜索CSS框模型(一些示例在这里http://www.org/tr/css2/box.html,此处http://wwwwwwwwwwwwwwwwwwww.w3schools.com/css/css/csss_boxmodel。ASP),您将能够看到可以帮助您的框模型。另外,使用jQuery可以使用以下方法检索每个部分的宽度:.width(),.innerwidth()和.outerwidth()。请注意,您可能需要进行一些计算以查找边框宽度,填充宽度或边距宽度。

阅读CSS文档和jQuery文档,以更清楚地了解它们的工作原理。有时,如果您需要一些具有可变宽度对象的确切值,则可能需要使用jQuery正确计算宽度。

最新更新