我试图弄清楚如何将图像放在自己的中心,将它们置于容器中心。我在2列中有8个图像,每行2个图像左对齐。我需要它们居中对齐。
我找到了一种在这里居中的方法: Aligning multiple images horizontally in the center of a div
浮动块级项目会将其向左或向右推。 IMG上的“display:inline-block”。并删除float和position语句。然后是容器div的“text-align:center”。
但是这样可以将所有图像放入一个列中。任何帮助将不胜感激。
这是我控制容器和图像的CSS:
.container {
width: 452px;
height: 750px;
margin-right: auto;
margin-left: auto;
margin-top: 20px;
margin-bottom: 5px;
font-size: 11px;
}
.item a img {
width: 150px;
height: 160px;
box-sizing: border-box;
float: left;
padding: 3px;
background-color: #FFF;
margin: 5px;
border: 1px solid #cccccc;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
-khtml-border-radius: 3px;
border-radius: 3px;
-moz-box-shadow: 0 0 5px rgba(0,0,0,0.45),0px 1px 2px rgba(0,0,0,0.2);
-webkit-box-shadow: 0 0 5px rgba(0,0,0,0.45),0px 1px 2px rgba(0,0,0,0.2);
box-shadow: 0 0 5px rgba(0,0,0,0.45),0px 1px 2px rgba(0,0,0,0.2);
filter: alpha(opacity=100);
-moz-opacity: 1;
-khtml-opacity: 1;
opacity: 0.7;
}
这是html:
<div class="container clearfix">
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/01.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/01t.jpg" alt="Dirty South Ink Tattoo Shop Photo" /></a></div>
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/02.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/02t.jpg" alt="Dirty South Ink Tattoo Shop Photo" /></a></div><p>
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/03.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/03t.jpg" alt="Dirty South Ink Tattoo Shop Photo" /></a></div>
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/04.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/04t.jpg" alt="Dirty South Ink Tattoo Shop Photo" /></a></div>
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/05.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/05t.jpg" alt="Dirty South Ink Tattoo Shop Photo" /></a></div>
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/07.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/07t.jpg" alt="Dirty South Ink Tattoo Shop Photo" /></a></div>
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/06.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/06t.JPG" alt="Dirty South Ink Tattoo Shop Photo" /></a></div>
<div class="item"><a rel="clearbox[gallery=Gallery,,comment=Dirty South Ink Tattoo Shop Photo]" href="../images/Dustin/10.JPG" title="Dirty South Ink Tattoo Shop Photo"><img class="border" src="../images/Dustin/thumbs/10t.jpg" alt="Dirty South Ink Tattoo Shop Photo" /></a></div>
答案 0 :(得分:0)
原始尝试中的图像最有可能被强制插入一列,因为您的DIV不够宽。你的图像是150px宽+ 2x 3px填充+ 2x 5px边距+ 2x 1px边框= 168px。
许多浏览器仍然不支持box-sizing:border-box
所以现在,最好避开它,否则会产生不一致的结果。
删除box-sizing:border-box
并使容器扩展为336px将使图像居中,或者使用以下CSS将图像包装在内部容器中也可以解决问题。
.inner_container{
width:336px;
margin-left:auto;
margin-right:auto;
}
现在当然,您仍然需要适应旧版本的IE,但这应该可以实现现代浏览器的目标。
答案 1 :(得分:0)
虽然上面的答案是正确的....我会使用额外的内包装和text-align:center;属性使整个事物跨浏览器兼容。为了完成不同的任务,我不得不想出这几次...基本上我总是回到相同的技术:我使用一个额外的内包装,就像一个普通的块元素和text-align:center;属性使整个事物跨浏览器兼容。我设置或漂浮在里面的任何东西都将停留在中心^。^我可以调整宽度和填充以使行成两三或三,或者相隔甚远,我需要它们。
示例CSS:
#container {
width: 100%;
text-align: center;
}
.innerwrap {display:inline-block;}
.innerwrap div{
padding:5px;
margin:5px;
float: left;
}
用于您的代码: http://jsfiddle.net/cwk6nd9c/1/