【发布时间】:2014-07-16 05:32:36
【问题描述】:
我为我的内容创建了一个容器<div id="container">,作为回报,它有一个简单的<div id="leftbar"> 和<div id="content"> 用于页面的主要文本。
我在样式中将<div id="container"> 设置为display:table,并将<div id="leftbar"> 和<div id="content"> 设置为display:table-cell。
我现在遇到的问题是,每当我尝试更改 <div id="content"> 上的 padding 时,由于某种原因,它会影响 <div id="leftbar"> 中的填充。它仅适用于顶部padding。
我该如何解决这个问题,更好的是,为什么会发生这种情况?是表结构的原因吗?
提供代码和jsfiddle。在 jsfiddle 中更改 CSS 中的最后 padding 行,以查看它如何移动左侧栏中的所有内容。
HTML:
<body>
<div id="wrapper">
<div id="header"><img src="http://i.imgur.com/krQBHIx.jpg" width="690" height="100"/></div>
<div id="container">
<div id="leftbar">
<ul>
<p class="heading">Navigation</p>
<li><a href="#">Main</a></li>
<li><a href="#">Articles</a></li>
<li><a href="#">Lessons</a></li>
<li><a href="#">About</a></li>
</ul>
<p class="heading" style="background: #bb0;">Subscribe</p>
<form action="subscribe.php" method="POST" name="form1">
Subscribe to our RSS feed and get all the fresh news and articles directly in your mail box!<br /><br />
<label><p>Enter your name:</p><input type="text"/></label>
<label><p>Enter your e-mail:</p><input type="text"/></label>
<input type="submit" name="submit" value="Send!"/>
</form>
</div>
<div id="content">
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
</div>
</div>
<div id="footer"><img src="http://i.imgur.com/2GzQuoo.jpg" width="690" height="18"/></div>
</div>
</body>
CSS:
/* Styles */
*
{
padding: 0;
margin: 0;
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
font: 14px Verdana, Tahoma, sans-serif;
}
*:before, *:after {
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
}
a
{
color: #000;
text-decoration: none;
}
body
{
background: #606B79;
}
p
{
font: 14px Tahoma, Verdana, sans-serif;
}
#wrapper
{
width: 690px;
margin: 10px auto;
}
#header img
{
display: block;
height: 100%;
}
#footer img
{
border: 1px solid black;
border-top: none;
display: block;
}
#container
{
display: table;
width: 100%;
border-left: 1px solid black;
border-right: 1px solid black;
background: #fff;
}
#leftbar
{
display: table-cell;
width: 184px;
border-right: 2px solid black;
height: 100px;
padding: 5px;
}
#leftbar ul
{
list-style: none;
margin-bottom: 15px;
}
.heading
{
text-align: center;
background-color: #a22;
color: #fff;
padding: 3px;
margin-bottom: 7px;
}
#leftbar ul li
{
border: 1px solid gray;
border-bottom: none;
}
#leftbar ul li:last-child
{
border: 1px solid gray;
}
#leftbar a
{
display: block;
padding: 2px 4px;
}
#leftbar a:hover
{
background: #ccc;
}
#leftbar form
{
border: 1px solid gray;
padding: 10px;
text-align: justify;
}
#leftbar form input
{
width: 149px;
margin: 3px 0;
}
#leftbar form input[type="submit"]
{
height: 25px;
background: #ccc;
margin-top: 20px;
}
#content
{
display: table-cell;
width: 506px;
text-align: justify;
padding: 25px;
}
jsfiddle:http://jsfiddle.net/9Qtpj/
请帮帮我?
【问题讨论】:
-
因为表格 div 的宽度是 100%,所以表格单元格 div 的宽度被计算为给定宽度和填充的比率,因此更改一个单元格将改变该比率,从而使两个单元格都发生变化.如果你想解决这个问题,你可以在表格单元格 div 中放置一个 div,然后在其中添加填充
标签: html padding css-tables