我正在尝试为我的网站创建一个水平的、可滚动的布局。我的代码看起来像这样
<div id="outerWrapper">
<div id="innerWrapper" style="position: relative;">
<div style="width: 200px; position: absolute; top: 0px; left: 0px;">
some lengthy content!
</div>
<div style="width: 200px; position: absolute; top: 0px; left: 220px;">
some lengthy content!
</div>
<div style="width: 200px; position: absolute; top: 0px; left: 440px;">
some lengthy content!
</div>
...
<div style="width: 200px; position: absolute; top: 0; left: 1100px;">
some lengthy content!
</div>
</div>
</div>
我现在正在尝试为整个内容添加右边距,所以我尝试向 innerWrapper 和/或 outerWrapper 添加右边距,但它被忽略了。 左边距正在工作。我实际上使用了position: absolute
方法而不是float: left
以避免这些问题,但似乎它不起作用。任何想法为什么我不能对内容进行边距处理?即使我在内包装器或外包装器上显式设置了宽度,它仍然不起作用。
有趣的是,正文没有正确的宽度 - 正文的宽度是浏览器窗口的宽度,而不是包装器的宽度。
应该说,内容(innerWrapper和下面的所有内容)是通过JS动态创建的,如果这很重要的话。
如果你想要一个 horiz. 布局,首先设置 outerWrapper
的高度。
然后使用列表元素在"页面"中设置您的内容:
<div id="outerWrapper">
<ul id="maincontent">
<li ><a name="p1">Box 1</a></li>
<li ><a name="p2">Box 2</a></li>
<li ><a name="p3">Box 3</a></li>
<li ><a name="p4">Box 4</a></li>
<li ><a name="p5">Box n</a></li>
</ul>
</div>
现在对于导航系统,您可以:
<div id="scroll-buttons">
<a href="#p1">Go to the section 1</a> |
<a href="#p2">Go to the section 2</a> |
<a href="#p3">Go to the section 3</a> |
<a href="#p4">Go to the section 4</a>
</div>
.CSS:
#container{
width:3000px;
height:400px;
}
#maincontent{
border:0;
margin:0;
padding:0;
}
#maincontent li{
line-style:none;
width:240px;
height:380px;
padding:10px;
float:left;
}
#scroll-buttons{position:fixed;}
关于你的"为什么"问题:请注意,绝对定位的元素退出 DOM 结构树。(顺便说一句,float:
也这样做)。
您可以使用负margin-left
代替margin-right
如下所示:
#innerWrapper{
margin-left:-5px;
}
试试这个。也许对您的病情有所帮助。
.class
{
margin-right:10px !important;
}