我正在尝试在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>以外的其他内容,您可以对其进行微调.