我无法在我的div上达到匹配的高度。我需要它们来匹配div的高度和最大的内容 - 这通常很容易但我正在使用包含更多文本的叠加层。我不能用固定的高度或宽度来做,因为我需要布局才能做出响应。细胞需要基本上是col-md-2,最高的高度随着文字的包裹,它更像是一个正方形,col-sm-6会长而窄,col-xs-12也会长狭窄。
它不必是引导程序,但它需要具有这种效果。另一个问题是我需要做尽可能多的内联,因为我将它传递给客户端以粘贴到他们的drupal站点而没有太多访问后端,所以请忽略我粗略的内联代码。
我差不多了,覆盖层工作,高度由内容决定,但我无法达到与最长的匹配。谁能看到我在这里做错了什么?
#table{
display: table;
border-collapse: collapse;
width: 100%;
}
.tr{
display: table-row;
}
.td{
display: table-cell;
vertical-align: top;
text-align: center;
height: 100%;
}
.overlay {
position: absolute;
vertical-align: middle;
top: 50%;
left: 50%;
height: 100%;
width: 100%;
background-image: url('https://premium.wpmudev.org/blog/wp-content/uploads/2015/02/fullwidth-small.png');
background-position: center top;
background-size: 500% auto;
opacity: 1;
transition: .5s ease;
}
.overlay:hover {
opacity: 0;
}
.text {
color: white;
height: 100%;
top: 50%;
left: 50%;
font-size: 20px;
position: absolute;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
text-align: center;
opacity: 1;
}
.text:hover {
opacity: 0;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
text-align: center;
}
.cell {
font-size: 14px;
}
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div id="table" style="width: 100%">
<div class="td col-md-12" style="background-image: url('https://premium.wpmudev.org/blog/wp-content/uploads/2015/02/fullwidth-small.png');
background-position: center top;
background-size: 500% auto; text-align: center; padding-top: 10%; padding-bottom: 10%">test</div>
</div>
<div id="table">
<div class="td col-md-2 col-md-offset-1 col-sm-6 col-xs-12"
style="color: #0169A9; -webkit-box-shadow:inset 0px 0px 0px 6px #0169A9; -moz-box-shadow:inset 0px 0px 0px 6px #0169A9;
box-shadow:inset 0px 0px 0px 6px #0169A9; font-size: 14px;
font-weight: bold;
margin-top: 15px;
padding-top: 15px;
padding-bottom: 15px;
line-height: 1.2;">To find out more about the making of this toolkit, click here
<div class="overlay text">
Test this
</div>
</div>
<div class="td col-md-2 col-sm-6 col-xs-12" style="color: #0169A9; -webkit-box-shadow:inset 0px 0px 0px 6px #0169A9; -moz-box-shadow:inset 0px 0px 0px 6px #0169A9;
box-shadow:inset 0px 0px 0px 6px #0169A9; font-size: 14px;
font-weight: bold;
margin-top: 15px;
padding-top: 15px;
padding-bottom: 15px;
line-height: 1.2;">To find out more about the making of this toolkit
<div class="overlay text">
Test this
</div>
</div>
<div class="td col-md-2 col-sm-6 col-xs-12" style="color: #0169A9; -webkit-box-shadow:inset 0px 0px 0px 6px #0169A9; -moz-box-shadow:inset 0px 0px 0px 6px #0169A9;
box-shadow:inset 0px 0px 0px 6px #0169A9; font-size: 14px;
font-weight: bold;
margin-top: 15px;
padding-top: 15px;
padding-bottom: 15px;
line-height: 1.2;">To find out more about the making of this toolkit, click here toolkit, click here
<div class="overlay text">
Test this
</div>
</div>
<div class="td col-md-2 col-sm-6 col-xs-12" style="color: #0169A9; -webkit-box-shadow:inset 0px 0px 0px 6px #0169A9; -moz-box-shadow:inset 0px 0px 0px 6px #0169A9;
box-shadow:inset 0px 0px 0px 6px #0169A9; font-size: 14px;
font-weight: bold;
margin-top: 15px;
padding-top: 15px;
padding-bottom: 15px;
line-height: 1.2;">To find out more about the making of this toolkit, click here
<div class="overlay text">
Test this
</div>
</div>
<div class="td col-md-2 col-sm-6 col-xs-12" style="color: #0169A9; -webkit-box-shadow:inset 0px 0px 0px 6px #0169A9; -moz-box-shadow:inset 0px 0px 0px 6px #0169A9;
box-shadow:inset 0px 0px 0px 6px #0169A9; font-size: 14px;
font-weight: bold;
margin-top: 15px;
padding-top: 15px;
padding-bottom: 15px;
line-height: 1.2;">To find out more about the making of this toolkit, click here
<div class="overlay text">
Test this
</div>
</div>
<div class="clear-all">
</div>
</div>
</body>
答案 0 :(得分:1)
抱歉,我很忙,这是一个有效的例子:
//we need to iterate through row childs
$('.row').each(function() {
//Set a var to store the highest height
var maxHeight = 0;
//Then, we iterate through all cols inside the row, searching for the highest one.
$('.col-xs-4', this).each(function() {
if($(this).height() > maxHeight) {
maxHeight = $(this).height();
}
});
//Now, we have the height value of the highest one, so we can apply this height to all row childs.
$('.col-xs-4', this).each(function() {
$(this).height(maxHeight);
});
});
&#13;
.col-xs-4{
border: 1px solid black;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container-fluid">
<div class="row">
<div class="col-xs-4">
<p>text</p>
<p>text</p>
<p>text</p>
</div>
<div class="col-xs-4">
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
<div class="col-xs-4">
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
</div>
</div>
&#13;
答案 1 :(得分:0)
我们可以使用flex-box属性,有关详细信息,请参阅 https://css-tricks.com/snippets/css/a-guide-to-flexbox/
进行演示练习请访问 https://demos.scotch.io/visual-guide-to-css3-flexbox-flexbox-playground/demos/ enter link description here