[英]Float Issue - Divs Drop When Width is Greater than Page Width
缩写代码如下; 现场直播在这里: http : //www.nwitimes.com/app/100objects/index.php 。 代码中有100张图像,但是为了简洁起见,我将其缩短为10张。
我想发生的是使类.picholder的图像位于屏幕的右侧,并填充所有空白区域。 发生的是,如果我没有浮子,那么它们会堆叠100张图像。 如果我在.picholder中添加float:left,那么只要我不到达页面边缘,图像就会像我想要的那样平铺。 但是,如果我有七个以上的图像,它们都将落在左侧的div下。 (此div将保存一个表单,但我将图像用作占位符。)
我曾尝试给div设置宽度,但这没有用。 完成后,表单(左侧)将为350px宽,而picside占据了页面的其余部分。 如果小图像也位于表格下方,那很好。 我只是不想他们都在那里。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
#container {width:100%;}
#formside {float:left; margin:0 50px 50px 0;}
#picside {float:left;border:5px solid #cfc;}
.picholder {width:150px; background-color:#EFEFEF; text-align:center; padding:5px; border:1px solid #DDD; height: 100px;}
</style>
</head>
<body>
<div id="container">
<div id="formside">
<img src="bigs/001.jpg" width="620" height="419">
</div>
<div id="picside">
<div class="picholder"><img src="smalls/001.jpg" width="148" height="100"></div>
<div class="picholder"><img src="smalls/002.jpg" width="147" height="100"></div>
<div class="picholder"><img src="smalls/003.jpg" width="67" height="100"></div>
<div class="picholder"><img src="smalls/004.jpg" width="150" height="100"></div>
<div class="picholder"><img src="smalls/005.jpg" width="143" height="100"></div>
<div class="picholder"><img src="smalls/006.jpg" width="150" height="100"></div>
<div class="picholder"><img src="smalls/007.jpg" width="149" height="100"></div>
<div class="picholder"><img src="smalls/008.jpg" width="70" height="100"></div>
<div class="picholder"><img src="smalls/009.jpg" width="150" height="100"></div>
<div class="picholder"><img src="smalls/010.jpg" width="125" height="100"></div>
</div>
</div>
</body>
</html>
我知道这个网站上有上千个浮动问题,而且我已经读了很多。 我还没有找到类似的情况。 谢谢你的帮助。
通过为每个主要元素设置百分比宽度,我成功了: .formside
和.picside
。 我选择的百分比(60%和40%)总计为100%。
我不得不调整其他一些CSS,主要是添加box-sizing:border-box
来调整box模型,以便填充和边框不会影响元素的宽度。
在这里,我将margin
更改为padding
并添加了width
和box-sizing
:
#formside {
float: left;
padding: 0 50px 50px 0;
width: 40%;
box-sizing: border-box;
}
在这里,我为图像添加了max-width
,以便它可以通过#formside
缩小,但不会超出其原始宽度:
#formside img {
max-width:100%;
}
在这里,我添加了width
和box-sizing
:
#picside {
float: left;
border: 5px solid #cfc;
width: 60%;
box-sizing: border-box;
}
然后,我重新浮动了所有.picholder
元素:
.picholder {
width: 150px;
background-color: #EFEFEF;
text-align: center;
padding: 5px;
border: 1px solid #DDD;
height: 100px;
float: left;
}
再次阅读您的问题后,这可能是一个更简单的示例(尽管可能不太漂亮)。 简单地漂浮.formside
向左和删除.picside
,让所有的.picholder
元素环绕.formside
。
实际上,如果固定左侧的宽度,则要简单得多。 只需浮动左侧,并在左侧给margin-left
等于(或大于)左侧的宽度即可:
#formside {
float: left;
width: 350px
}
#formside img {
max-width:100%;
}
#picside {
margin-left:400px; /* Gives a 50px margin between left and right */
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.