我目前正在学习HTML。我想在div中添加3个图像,图像之间需要相同的空间。怎么做?
示例:https://docs.google.com/drawings/d/1WZdL0WVz-VndX2qP0Ig0S8fZnCGW2k37RHvWXLdgWz0/edit?usp=sharing
我目前的代码:
<style type="text/css">
.maindiv{
position: relative;
width:90%;
height:50%;
border-style:solid;
border-color:Red;
border-width:2px;
}
.imgbott{
height:auto;
width:auto;
max-width:200px;
max-height:200px;
float:left;
text-align: center;
}
</style>
<body>
<div class="maindiv">
<div class="imgbott">
<img src="https://sites.google.com/a/itcld.com.br/portal-de-treinadores/_/rsrc/1377018552616/imagens/images.jpg" alt="">
<a>TESTE</a>
</div>
<div class="imgbott">
<img src="https://sites.google.com/a/itcld.com.br/portal-de-treinadores/_/rsrc/1377018552616/imagens/images.jpg" alt="">
<a>TESTE</a>
</div>
<div class="imgbott">
<img src="https://sites.google.com/a/itcld.com.br/portal-de-treinadores/_/rsrc/1377018552616/imagens/images.jpg" alt="">
<a>TESTE</a>
</div>
</div>
</body>
谢谢。
答案 0 :(得分:0)
将您的CSS更改为:
.imgbott{
margin: 0px 10px;
height:auto;
width:auto;
max-width:200px;
max-height:200px;
float:left;
text-align: center;
}
margin: 0px 10px
表示0px
左上角和下边距,10px
左右边距。也许人们会期望div之间有20px
的边距,但是有一种叫做“边缘折叠”的效果会阻止它。
答案 1 :(得分:0)
这就是你要找的东西 http://jsfiddle.net/Gfnjz/
.box {
display:table;
table-layout:fixed;
min-width:900px; /* some minimum width is a good idea. */
border-spacing:20px 0; /* note that spacing is also applied to right and left ends */
background-color:#666;
margin:0 auto;
}
.box div {
display:table-cell;
width:33%;
vertical-align:middle;
border:1px solid #bbb;
background-color:#eee;
padding:30px;
}
答案 2 :(得分:0)
您可以这样做:
.divName{
width:300px;
display: inline-block;
margin: 0 20px 0 0;
float: left;
}
然后对于最后一个框,也应用一个.lastBox类来强制没有边距,这样它们就完全居中,假设你的父容器居中于:
.lastBox{
margin-right: 0;
}
HTML:
<div class="divName">
<p>stuff</p>
</div>
<div class="divName">
<p>stuff</p>
</div>
<div class="divName lastBox">
<p>stuff</p>
</div>
答案 3 :(得分:0)
如果您只想在“imgbott”div之间使用相同的空格,请设置其边距而不是width属性。
你的课程看起来像
.imgbott{
margin: 0px 10px;
float: left;
text-align: center;
}
.imgbott a
{
display:block;
}
然后无论内部图像的宽度是多少,图像之间的空间总是20px。
另外,您可以使用第一个子选择器
删除第一个图像的左边距.imgbott:first-child {
margin-left:0px;
}
答案 4 :(得分:0)
您可以使用inline-block
和text-align: justify
来实现此结果,并在通过伪元素对齐div之前和之后添加一些虚假内容:
.maindiv{
width:90%;
border: 2px solid red;
text-align: justify; /* turns on justification 'magic' */
line-height: 0; /* removes extra space below divs because of extra line */
}
.maindiv:before {
font-size: .1px;
content: 'i'; /* adds nearly invisible fake content in the beginning of the line */
}
.maindiv:after {
font-size: .1px;
content: 'i i'; /* adds nearly invisible fake content in the of the line */
word-spacing: 99in; /* huge word-spacing assures that the 2nd 'i' wraps to the next line making 'justify' work */
background: #ccc;
}
.imgbott{
display: inline-block;
line-height: 1; /* restore the normal line height inside divs */
}
可选地,如果容器比其宽度总和窄,则可以通过将white-space: nowrap
添加到容器并normal
添加到其:after
来禁止包装div:see { {3}}
这个解决方案可能看起来有点棘手,但适用于任意数量的任意(可能不同)宽度的块。