CSS中的对角堆栈效果

前端之家收集整理的这篇文章主要介绍了CSS中的对角堆栈效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在CSS中创建一堆扑克牌,其中每张牌都与前一张牌对角略微偏移.这是它的样子:
.card {
    float: left;
    width: 100px;
    height: 140px;
    background-color: #fff;
    border: 1px solid #000;
    border-radius: 5px;
}
.card:nth-child(2) {
    margin-left: -98px;
    margin-top: -2px;
}
.card:nth-child(3) {
    margin-left: -98px;
    margin-top: -4px;
}
.card:nth-child(4) {
    margin-left: -98px;
    margin-top: -6px;
}

/* and so on... */

示例:http://jsfiddle.net/coev55w6/

我知道我可以通过为每张卡指定不同的边距来做到这一点,但我想知道是否有更好的方法.

创建纯粹的水平偏移很容易:

.card {
    float: left;
    width: 100px;
    height: 140px;
    background-color: #fff;
    border: 1px solid #000;
    border-radius: 5px;
}
.card:not(:first-child) {
    margin-left: -98px;
}

纯粹的垂直也很容易.但有没有办法只用几条CSS规则来获得对角线偏移?

解决方法

这有点像黑客,但如果你使用你给的第二个选项,你最终会得到这种效果
.card:not(:first-child)

然后放一个< br>每张卡后:

<div>
    <div class=card></div><br>
    <div class=card></div><br>
    <div class=card></div><br>
    <div class=card></div><br>
</div>

的jsfiddle:
http://jsfiddle.net/e4o0k2o5/

如果您使用行高或除了< br>以外的其他内容,您可以对其进行微调.

猜你在找的CSS相关文章