Har*_*rry 5 css css3 twitter-bootstrap twitter-bootstrap-3
我正在尝试构建Pricing Table类似于下面显示的一个.
以下是我的要求
Get Started按钮应在同一水平findTallest = function () {
var tallestByGroupNum = {}
$(".item-contents").each(
function () {
var grpNum = $(this).parent().attr('data-group-num');
// !< instead of > to support undefined values
if (!($(this).height() < tallestByGroupNum[grpNum] )) {
tallestByGroupNum[grpNum] = $(this).height();
}
}
);
$(".item-box").height(
function () {
return tallestByGroupNum[$(this).attr('data-group-num')];
}
);
};
$(window).resize(findTallest);
findTallest();Run Code Online (Sandbox Code Playgroud)
/* Put your css in here */
.item-box {
border: 1px solid red;
}
.pricingCard {
border: 2px solid red;
text-align: center;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="col-xs-6 pricingCard">
<h1>Free</h1>
<div class="item-box" data-group-num="1">
<div class="item-contents">
Long long long long long long long long long long long long long long long long long description
</div>
</div>
<button class="btn btn-primary">Get Started</button>
<div class="item-box" data-group-num="2">
<div class="item-contents">
<div>Point</div>
<div>Point</div>
<div>Point</div>
</div>
</div>
<button class="btn btn-primary">Get Started</button>
</div>
<div class="col-xs-6 pricingCard">
<h1>Premium</h1>
<div class="item-box" data-group-num="1">
<div class="item-contents">
Short description
</div>
</div>
<button class="btn btn-primary">Get Started</button>
<div class="item-box" data-group-num="2">
<div class="item-contents">
<div>Point</div>
<div>Point</div>
<div>Point</div>
<div>Point</div>
<div>Point</div>
<div>Point</div>
</div>
</div>
<button class="btn btn-primary">Get Started</button>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
此外,评论中建议的解决方案仅与此类似.
/* Put your css in here */
.item-box {
border: 1px solid red;
}
.pricingCard {
border: 2px solid red;
text-align: center;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="col-xs-6 pricingCard">
<h1>Free</h1>
<div class="item-box" data-group-num="1">
<div class="item-contents">
Long long long long long long long long long long long long long long long long long description
</div>
</div>
<button class="btn btn-primary">Get Started</button>
<div class="item-box" data-group-num="2">
<div class="item-contents">
<div>Point</div>
<div>Point</div>
<div>Point</div>
</div>
</div>
<button class="btn btn-primary">Get Started</button>
</div>
<div class="col-xs-6 pricingCard">
<h1>Premium</h1>
<div class="item-box" data-group-num="1">
<div class="item-contents">
Short description
</div>
</div>
<button class="btn btn-primary">Get Started</button>
<div class="item-box" data-group-num="2">
<div class="item-contents">
<div>Point</div>
<div>Point</div>
<div>Point</div>
<div>Point</div>
<div>Point</div>
<div>Point</div>
</div>
</div>
<button class="btn btn-primary">Get Started</button>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
目前我正在使用javascript来实现这一目标.我检测到最高的元素,然后将父容器的高度设置为该元素.
这可以单独在css中完成(使用一些引导类).
有了flexbox,我会做这样的事情:
* {
box-sizing: border-box;
}
.pricing {
background: #eee;
display: flex;
flex-direction: column;
padding: 2em 0;
}
@media (min-width: 48em) {
.pricing {
flex-direction: row;
flex-wrap: wrap;
}
}
.pricing .block {
display: flex;
justify-content: center;
flex: 1 1 50%;
}
@media (max-width: 48em) {
.pricing .block {
flex: 1;
}
.pricing .block:nth-child(odd) {
order: -1;
}
.pricing .block:nth-child(2) {
margin-top: 2em;
}
}
.pricing header,
.pricing ul {
background-color: white;
box-shadow: 0 0 0 1px silver;
padding: 1em;
width: 80%;
}
.pricing header {
display: flex;
flex-direction: column;
}
.pricing button {
margin-top: auto;
}
ul {
margin: 0;
}
ul li {
margin-left: 1em;
}
h1,
h2 {
margin: 0.125em 0;
}
button {
font: inherit;
}Run Code Online (Sandbox Code Playgroud)
<div class="pricing">
<div class="block">
<header>
<h1>Free</h1>
<h2>0$</h2>
<p>short description</p>
<button>Get Started</button>
</header>
</div>
<div class="block">
<header>
<h1>Premium</h1>
<h2>5$</h2>
<p>long description long description long description long description long description long description</p>
<button>Get Started</button>
</header>
</div>
<div class="block">
<ul>
<li>Point 1</li>
<li>Point 2</li>
<li>Point 3</li>
</ul>
</div>
<div class="block">
<ul>
<li>Point 1</li>
<li>Point 2</li>
<li>Point 3</li>
<li>Point 4</li>
<li>Point 5</li>
<li>Point 6</li>
<li>Point 7</li>
</ul>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |