我想构建一种卡片式布局。这些卡应具有标准tcg卡的纵横比。Bootstrap ratio
所以一个方面的服务,我发现,我要补充
padding-top: 39.68%;
在plunkr,我已经建立了这个。它在col-sm-3的初始状态下工作正常,但只要切换到col-xs-2,纵横比就完全不同。
如果你在plunkr中调整它,你会明白我的意思。
我想构建一种卡片式布局。这些卡应具有标准tcg卡的纵横比。Bootstrap ratio
所以一个方面的服务,我发现,我要补充
padding-top: 39.68%;
在plunkr,我已经建立了这个。它在col-sm-3的初始状态下工作正常,但只要切换到col-xs-2,纵横比就完全不同。
如果你在plunkr中调整它,你会明白我的意思。
你不应该直接应用填充到具有指定宽度的元素 - 宽度需要为auto
,以使填充工作并表示tcg卡的宽高比。
tcg卡的大小是63 x 88毫米。要以百分比形式获得高度,请将高度除以宽度 - 88/63 = 139%。
由于您不想将其应用于卡片本身,因此将该填充应用于伪元素,并将控制其应用于卡片的高度。
/* Styles go here */
.card {
background-color: grey;
border: 3px solid;
}
.card:before {
content: '';
width: 1px;
padding-bottom: 139.68253968%;
display: block;
}
<!DOCTYPE html>
<html>
<head>
<link data-require="[email protected]*" data-semver="3.3.2" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<div class="row">
<div class="col-sm-2 card col-xs-3">
1
</div>
<div class="col-sm-2 card col-xs-3">
2
</div>
<div class="col-sm-2 card col-xs-3">
1
</div>
<div class="col-sm-2 card col-xs-3">
2
</div>
<div class="col-sm-2 card col-xs-3">
1
</div>
<div class="col-sm-2 card col-xs-3">
2
</div>
<div class="col-sm-2 card col-xs-3">
1
</div>
<div class="col-sm-2 card col-xs-3">
2
</div>
</div>
</div>
</body>
</html>
根据您所提供即长宽比56:81卡高度应81/56*width
。卡宽度根据引导程序类别col-xs-3
(16.666667%)和col-sm-2
(25%)而变化。
我们可以通过将它作为填充到div来保持上述高度。现在,如果我们向div中添加任何内容,那么div的高度会增加,以避免这种情况在您的div中添加包装。
填充百分比是24.1%
即五十六分之八十一* 16.66667为sm
和36.16%
即56分之81* 25%%,持续xs
.card-wrapper {
padding-top: 24.1%;
background-color: grey;
border: 3px solid;
position: relative;
}
.card-content {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right:0;
}
@media (max-width: 767px) {
.card-wrapper {
padding-top: 36.16%;
}
}
<!DOCTYPE html>
<html>
<head>
<link data-require="[email protected]*" data-semver="3.3.2" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<div class="row">
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
1
</div>
</div>
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
2
</div>
</div>
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
1
</div>
</div>
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
2
</div>
</div>
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
1
</div>
</div>
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
2
</div>
</div>
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
1
</div>
</div>
<div class="col-sm-2 card-wrapper col-xs-3">
<div class="card-content">
2
</div>
</div>
</div>
</div>
</body>
</html>
这工作,不知道为什么。我想我可以以某种方式定义比率并保持它。像4:3一样,不管将来会怎样。但是, – Doomenik
你尝试使用媒体查询来改变填充值? – Kai
@ kai这应该用col-xs和col-sm来完成它也会交换css代码 – Doomenik
最后我想念一些东西,填充应该保持高度和宽度之间的比例。举个简单的例子,高度应该是宽度的两倍。 – Doomenik