将resellers
容器中的所有102+div
元素呈现给Resellers.你需要以相反的顺序渲染化身,这样他们就可以正确地"overylay"右侧的化身.
密码
<Resellers>
{!!images.slice(2).length && (
<ResellerPlus>
<span>+ {images.slice(2).length}</span>
</ResellerPlus>
)}
{images
.slice(0, 2)
.reverse()
.map((image, i) => (
<Reseller key={i}>
<img src={image} alt="reseller" />
</Reseller>
))}
</Resellers>
样式化组件
const Resellers = styled.div`
display: flex;
align-items: center;
flex-direction: row-reverse; // <-- un-reverse avatars
`;
将所有常见CSS收集到"Resellers"分区中.
const Reseller = styled.div`
align-items: center;
color: #fff;
background-color: #bdbdbd;
border: 4px solid #fff; // <-- white space around
border-radius: 50%; // <-- circle divs
display: flex;
flex-direction: row;
font-family: Nunito-Bold;
font-size: 1rem;
height: 40px;
overflow: hidden; // <-- hide edges of images
text-align: center; // <-- center text
width: 40px;
:not(:first-child) {
margin-right: -0.5rem; // <-- apply overlap
}
img {
margin-right: 0.5rem;
object-fit: contain;
}
`;
const ResellerPlus = styled(Reseller)`
font-family: Nunito-SemiBold;
span {
width: 100%; // <-- help center text
}
`;