html中如何让FLOAT:left的多个DIV整体居中

网页主要是展示图片用的,为了让网页自适应屏幕宽度,外层大DIV设WIDTH:100%,内层放图片的每一个DIV是用了FLOAT:left,现在可以实现根据浏览器大小自动调整每一行图片的显示列数,自动进行DIV的排列,问题是每一行的DIV都是靠左显示,请问能否让每一行的DIV整体居中,又不失自适应屏幕功能。以下是代码:

<html>
<head>
<title>展示</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" />
<style>
body {
font: normal 100% Helvetica, Arial,sans-serif;
}
.div1 {
width:100%; height:auto; margin:0 auto
}
.div2 {
float:left;
width:300px;
height:300px;
border-bottom: 1px solid;
border-bottom-color:#000000;
font-size: 90%;
clear: none;
margin-top: 15px;
margin-right: 4px;
margin-bottom: 5px;
margin-left:4px;}
.div2 img{width:300px; height:260px; box-shadow:5px 5px 10px #aaaaaa;
}
.div2 h2{
font-size:85%; text-shadow:0px 0px 8px red
}
</style>
</head>
<body>
</div>
<!--图片start-->
<div class="div1">
<div class="div2">
</div>
<div class="div2">
</div>
<div class="div2">
</div>
<div class="div2">
</div>
<div class="div2">
</div>
<div class="div2">
</div>
<div class="div2">
</div>
</div>
</body>
</html>

左浮动使元素从左至右自动排列,充满后自动换行显示!而最外层的div宽度为100%;则元素自动填满浏览器屏幕。而你的意思大概是如下这种:
……………………………………
123456789
123456789
123466799
……………………………………追答

我擦,百度太坑了,我打的空格直接给我删了。结果显示还是靠左了。

下面,我就详细给你讲解一下方法

你定义好浮动以及最上面的DIV代码样式后,你还需要在浮动层外面再加一层DIV,然后给这个DIV写样式。

比如:.content{
width:100px;
margin: 0 auto;
}

只需要在浮动层外,再加一层div就能实现你想要的效果。不能直接控制,咱就间接性的控制他。

浮动元素外层嵌套的div宽度应该设置为浮动元素的宽度之和。

例如:你的浮动元素是宽度是120像素,一行有五个这样的元素,纳闷外层div的宽度就是120*5

这个方法虽然能居中,但……不能让浮动元素自动填充屏幕。它只能在外层div活动。

要不然呢,你就不能采用百分比了,用自适应屏幕大小的方式来写,在css中指定当屏幕尺寸小于或等于多少时,浮动元素和浮动上层div宽度为多少!

例如:@media screen and (min-width: 1201px) {
.abc {width: 1200px}
}
/* css注释:设置了浏览器宽度不小于1201px时 abc 显示1200px宽度 */

同理,你可以用这种自适应方法设置你的浮动元素宽度。这种方法可以完美自适应各种屏幕尺寸,而百分百仅仅适合电脑端。

而你当你用浮动时,margin: 0 auto; 指令自然就是无效的,不会有任何效果。

所以我们只能在浮动元素div2上再去加一层div(暂且将其id设定为div3);而div2的宽度为300px,根据你的需要,你可以用例如:

@media screen and (min-width: 1201px) {
.div3 {width: 1200px;/*一行可显示6个浮动元素*/}
.div2{width:200px;}
}

@media screen and (min-width: 601px) {
.div3 {width: 600px;/*一行可显示6个浮动元素*/}
.div2{width:100px;}
}
/*后面的写法以此类推*/

用自适应而非百分比的方法,可以适应各种屏幕尺寸。有些自适应网站用的就是这种方法,使其电脑网页能轻松在手机端进行查看。

好了,就说那么多,你要再看不懂,我也没法了。

追问

谢谢,根据你的方法已经成功了

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-12
你直接用bootstrap不是很简单的吗?
相似回答