我见过有人问过如何让两个div并排排列。我可以让我做到这一点就好了。
我的问题是他们不会相互厮杀。似乎总有差距。
例如,我有一个宽度为500px的包装div。在那个div里面我还有两个宽度为250px的div。 它们不会彼此排列,因为彼此之间没有足够的空间。
当我将宽度设置为248px时,它们会排成一行,但彼此之间的距离为4px。 我在这里有一个代码示例:
https://c9.io/riotgear66/day1/workspace/sams/html/index.html
请随时查看它,并尝试使用浏览器的元素检查器进行调整。
答案 0 :(得分:1)
布局问题是将display: inline-block
应用于div元素的结果。
在布置内容时,会考虑这些div元素之间的任何空白区域。 如果您不介意源代码的外观,可以删除div之间的空格(换行符或回车符)。
由于您的父容器具有特定尺寸(500px x 300px),因此我将使用绝对定位来放置子元素。这样可以更轻松地将徽标图案定位在其他图像上。
您也可以使用其他回复中所述的花车,而不是更容易或更难。
在此应用程序中,布局是固定的,因此对于响应式或灵活设计没有设计考虑因素,因此任何一种方法都是有效的。
您可以在以下演示中看到它的工作原理:http://jsfiddle.net/audetwebdesign/hZ5dB/
HTML:
<div class="container">
<div class="panel ul"></div>
<div class="panel ur"></div>
<div class="panel ll"></div>
<div class="panel lr"></div>
<div class="overlay"><span>Cats</span></div>
</div>
和CSS:
.container {
border: 1px dotted blue;
width: 500px;
height: 300px;
position: relative;
margin: 0 auto;
}
.panel {
width: 250px;
height: 150px;
position: absolute;
}
.ul {
background: red url("http://placekitten.com/400/400") -50px -20px no-repeat;
top: 0; left: 0;
}
.ur {
background: red url("http://placekitten.com/300/300") 0px -30px no-repeat;
top: 0; right: 0;
}
.ll {
background: red url("http://placekitten.com/350/250") -20px -20px no-repeat;
bottom: 0; left: 0;
}
.lr {
background: red url("http://placekitten.com/300/200") 0px -30px no-repeat;
bottom: 0; right: 0;
}
.overlay {
position: absolute;
top: 50%;
left: 50%;
margin: -50px 0 0 -50px;
width: 100px;
height: 100px;
background-color: red;
border-radius: 50%;
}
.overlay span {
display: block;
background-color: gray;
border-radius: 50%;
text-align: center;
vertical-align: middle;
width: 80%;
height: 80%;
margin: 10%;
line-height: 80px;
}
我还展示了如何创建圆形图案而无需修改原始背景图像,使用PhotoShop或类似工具节省了一些工作。
答案 1 :(得分:1)
答案 2 :(得分:1)
问题在于HTML中的空白区域。当使用display: inline-block
时,像Marc Audet所说的那样考虑元素之后的空格。
要修改它而不更改当前方法,您必须删除该空白区域。在保持HTML可读性的同时,我发现这样做的最简单方法是将其注释掉,或者在每个元素之后使用<!--
并在下一个元素之前使用-->
。这可以防止必须改变整个结构,你也可以再次使每个250px
您还可以将结束>
移至下一行,在开始<div>
之后将所有内容移至下一行,或者在第一行后使用margin-left:-4px;
。或者使用其他人描述的方法,浮动它或使用FlexBox
Here is the CSS Tricks page that references this situation and provides more detail