我是Css的新手。我有一个HTML页面。Div定位困惑
<body>
<div id="viewer">
<div id="flow">
<img src="images/beatles.jpg">
<img src="images/blink.jpg">
<img src="images/doves.jpg">
<img src="images/flash.jpg">
<img src="images/floyd.jpg">
<img src="images/jurassic.jpg">
<img src="images/naked.jpg">
<img src="images/prodigy.jpg">
<img src="images/xx.jpg">
<img src="images/zabiela.jpg">
</div> <!--end of <div id="flow"> -->
<ul>
<li id="left">
<a href="#" title="Move Left">Left</a>
</li>
<li id="right">
<a href="#" title="Move Right">Right</a>
</li>
</ul>
</div> <!--end of <div id="viewer"> -->
</body>
每张图片都是200x200。现在我对它的CSS感到困惑。这里我一步一步展示它
#viewer {
width:700px;
height:220px;
padding:100px 0 30px;
margin:auto;
border:1px solid #000;
position:relative;
}
您可以定义主Div的宽度和高度。定义填充,意味着放置在div内的每个元素将从顶部放置200px,从左到右放置sapce,从div底部放置30px空间。另外我想在这里问我们定义相对位置。它与body或html有关吗? 我们没有定义#flow div的宽度和高度。所以它通过填充来计算。 #flow div的宽度与#viewer宽度相同,但是从#viewer div的顶部开始放置30px以下,高度为190px,距离底部30px。请告诉我,如果我错了。
#flow:after {
content:"";
display:block;
height:0;
clear:both;
visibility:hidden;
}
现在我们正在定义我们想要在#flow div之后输入的内容。我们设置隐藏的可见性,意味着它在那里,占用空间但不显示。是吗?我想问的是这个,我们使用的是明确:这两个都是。我们在这里清理什么?我们没有在#viewer div中设置任何浮动属性?
现在到了最混乱的部分
#flow img {
display:block;
margin-left:-165px;
position:relative;
top:-15px;
left:245px;
float:left;
background-color:#fff;
}
现在,我们正在设置的图像,是在#flow事业部。首先,我注意到,如果我将它的顶级属性设置为1px,这是令人困惑的。然后它对齐#流量div。这很好,因为它的位置是相对的,并且它位于#flow div内,所以它相对于#flow div对齐。 但是,当我将它的左侧属性更改为1px。然后它超出了这两个div(#viewer和#flow)。在scree左上角和div左侧之间的某处进行对齐。为什么它发生。如果它的位置是相对的,那么它应该保持在#flow div内。这是我的困惑。 同样图像缩小以容纳div内。我认为这是因为dov的大小。每张图片都是200x200。我们的#flow宽度仅为700px。
我们设定的另一件事margin-left:-165px;。现在图像水平排列,并缩小以容纳div。但如果我更改为margin-left:165px;。然后图像垂直展开,并显示所有图像。图像不缩水。我们还设置了top:-15px;。我们什么时候设定负值? 这不是作业或家庭作业。我只是在练习,我想知道事情是如何工作的。下面是剩余的CSS
#viewer li {
list-style-type:none;
position:absolute;
bottom:10px;
}
#left {
left:20px;
}
#right {
right:20px;
}
感谢
你能告诉我什么是问题:http://jsfiddle.net/tXcg9/ – jao 2012-02-24 09:55:36