布局问题是应用display: inline-block
到 div 元素的结果。
布局内容时会考虑这些 div 元素之间的任何空白。如果您不介意源代码的外观,您可以删除 div 之间的空格(换行符或回车符)。
由于您的父容器具有特定尺寸(500 像素 x 300 像素),因此我将使用绝对定位来放置子元素。这将使您的徽标主题更容易定位在其他图像上。
您也可以使用其他回复中所述的浮点数,而不是更容易或更难。
在此应用程序中,布局是固定的,因此没有针对响应式或灵活设计的设计考虑,因此任何一种方法都是有效的。
演示
您可以在以下演示中看到这可能是如何工作的: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 或类似工具的工作。