您可以简单地定义一个具有指定大小的元素类,display: inline-block
显示在一行中,负右边距重叠。
以下是一个简单的HTML / CSS示例来解决您的问题。当然,您必须将其移植到React Native应用程序中。
.a {
display: inline-block;
height: 50px;
width: 50px;
margin-right: -20px;
background: gray;
border-radius: 50%;
border: 2px solid white;
box-shadow: 0 8px 15px #999;
}
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
最简单的(不是最好的方式)就是这样的。如果您使用预处理器,则可以编写此DRYer。
ul {
padding: 20px 0;
list-style: none;
clear: both;
}
.item {
float: left;
position: relative;
}
.item img {
border-radius: 50%;
overflow: hidden;
position: relative;
}
.item:nth-child(1) img {
background: #aaa;
border-radius: 50%;
}
.item:nth-child(2) img {
background: #bbb;
left: -20px;
}
.item:nth-child(3) img {
background: #ccc;
left: -40px;
}
.item:nth-child(4) img {
background: #ddd;
left: -60px;
}
<ul>
<li class="item"><img src="" width="50" height="50"></li>
<li class="item"><img src="" width="50" height="50"></li>
<li class="item"><img src="" width="50" height="50"></li>
<li class="item"><img src="" width="50" height="50"></li>
</ul>
您可以对所有元素使用相同的样式,因为当我们有flex-direction行时:'row',第一个元素将放在行的开头。
不要使用负边距!它可能不适用于IOS。
接下来,您应该记住,在react-native中,每个下一个元素都将超过前一个元素。所以你唯一应该做的就是在小块里面进行图像定位。