使 Parent Div 高度与孩子相同
Make Parent Div height same as childs
我有一个容器 div,里面还有另外两个 div。一个是出现在左侧的 'Home',另一个是出现在右侧的 'Away'。他们并排。
在这些 div 里面是其他 divs,还有 Javascript 所以当一个元素被按下时它 shows/hides 其他 divs使用 CSS 显示。
但是,当我 hide/unhide 这些时,parent 高度不会调整,所以你无法看到显示 div 一旦你打开多个。
示例如下:
$("document").ready(function () {
setupInjuries();
});
function setupInjuries() {
$(".match-injury").each(function () {
var helpIcon = $(this).find(".match-injury-icon");
var shortDescription = $(this).find(".match-injury-shortdescription");
var latestButton = $(this).find(".match-injury-latestbutton");
var longDescription = $(this).find(".match-injury-longdescription");
helpIcon.click(function () {
if (shortDescription.css("display") == "none") {
shortDescription.css("display", "block");
}
else {
shortDescription.css("display", "none");
longDescription.css("display", "none");
latestButton.text("SEE LATEST");
}
});
latestButton.click(function () {
if (longDescription.css("display") == "none") {
longDescription.css("display", "block");
$(this).text("HIDE LATEST");
}
else {
longDescription.css("display", "none");
$(this).text("SEE LATEST");
}
});
});
}
.match-injuries-container {
width: 100%;
height: 135px;
background-color: #e5e5e5;
overflow: hidden;
}
.match-injuries-home {
width: 50%;
float: left;
text-align: center;
display: inline-block;
border-left: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injuries-away {
width: 50%;
float: right;
text-align: center;
display: inline-block;
border-right: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injury {
width: 100%;
height: auto;
background-color: #d3d3d3;
font-size: 13px;
font-weight: bold;
border-bottom: 1px solid #9c9c9c;
border: 1px solid #9c9c9c;
border-left: none;
cursor: default;
position: relative;
}
.match-injury-detail {
height: 25px;
padding: 3px 3px 3px 3px;
}
.match-injury-player {
color: #5b5b5b;
}
.match-injury-status {
margin-left: 5px;
color: #d20000;
}
.match-injury-icon {
position: absolute;
right: 5px;
top: 0;
font-size: 15px;
color: #2b3180;
cursor: pointer;
}
.match-injury-descriptions {
padding: 3px 3px 3px 3px;
}
.match-injury-shortdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
display: none;
}
.match-injury-longdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
font-style: italic;
display: none;
}
.match-injury-latestbutton {
background-image: linear-gradient(#e5e5e5,#ffffff,#e5e5e5);
width: 100%;
height: 18px;
text-align: center;
border: 1px solid #bbbbbb;
font-size: 10px;
font-weight: bold;
cursor: pointer;
padding-top: 2px;
}
.match-injury-border {
width: 100%;
height: 4px;
background-image: linear-gradient(#9a9a9a, white, #9a9a9a);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<div class="match-injuries-container">
<div class="main-header-bar">Injuries</div>
<div class="match-injuries-home">
<div class="match-injury">
<span class="match-injury-player">Player Name 1</span>
<span class="match-injury-status">OUT</span>
<div class="match-injury-icon"><i class="fa fa-info-circle"></i></div>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 2</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 3</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
</div>
<div class="match-injuries-away">
<span style="font-size:13px;">No reported injuries</span>
</div>
</div>
如何根据容器的 height/display 状态将容器高度调整到 children?
这是因为您已经为父容器指定了高度match-injuries-container
。我删除了 height
属性 并添加了 min-height
属性 并且它对我来说工作正常。如果不需要,您甚至可以完全删除此 属性。
$("document").ready(function () {
setupInjuries();
});
function setupInjuries() {
$(".match-injury").each(function () {
var helpIcon = $(this).find(".match-injury-icon");
var shortDescription = $(this).find(".match-injury-shortdescription");
var latestButton = $(this).find(".match-injury-latestbutton");
var longDescription = $(this).find(".match-injury-longdescription");
helpIcon.click(function () {
if (shortDescription.css("display") == "none") {
shortDescription.css("display", "block");
}
else {
shortDescription.css("display", "none");
longDescription.css("display", "none");
latestButton.text("SEE LATEST");
}
});
latestButton.click(function () {
if (longDescription.css("display") == "none") {
longDescription.css("display", "block");
$(this).text("HIDE LATEST");
}
else {
longDescription.css("display", "none");
$(this).text("SEE LATEST");
}
});
});
}
.match-injuries-container {
width: 100%;
/* You can have min-height but not height */
min-height: 135px;
background-color: #e5e5e5;
overflow: hidden;
}
.match-injuries-home {
width: 50%;
float: left;
text-align: center;
display: inline-block;
border-left: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injuries-away {
width: 50%;
float: right;
text-align: center;
display: inline-block;
border-right: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injury {
width: 100%;
height: auto;
background-color: #d3d3d3;
font-size: 13px;
font-weight: bold;
border-bottom: 1px solid #9c9c9c;
border: 1px solid #9c9c9c;
border-left: none;
cursor: default;
position: relative;
}
.match-injury-detail {
height: 25px;
padding: 3px 3px 3px 3px;
}
.match-injury-player {
color: #5b5b5b;
}
.match-injury-status {
margin-left: 5px;
color: #d20000;
}
.match-injury-icon {
position: absolute;
right: 5px;
top: 0;
font-size: 15px;
color: #2b3180;
cursor: pointer;
}
.match-injury-descriptions {
padding: 3px 3px 3px 3px;
}
.match-injury-shortdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
display: none;
}
.match-injury-longdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
font-style: italic;
display: none;
}
.match-injury-latestbutton {
background-image: linear-gradient(#e5e5e5,#ffffff,#e5e5e5);
width: 100%;
height: 18px;
text-align: center;
border: 1px solid #bbbbbb;
font-size: 10px;
font-weight: bold;
cursor: pointer;
padding-top: 2px;
}
.match-injury-border {
width: 100%;
height: 4px;
background-image: linear-gradient(#9a9a9a, white, #9a9a9a);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<div class="match-injuries-container">
<div class="main-header-bar">Injuries</div>
<div class="match-injuries-home">
<div class="match-injury">
<span class="match-injury-player">Player Name 1</span>
<span class="match-injury-status">OUT</span>
<div class="match-injury-icon"><i class="fa fa-info-circle"></i></div>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 2</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 3</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
</div>
<div class="match-injuries-away">
<span style="font-size:13px;">No reported injuries</span>
</div>
</div>
我有一个容器 div,里面还有另外两个 div。一个是出现在左侧的 'Home',另一个是出现在右侧的 'Away'。他们并排。
在这些 div 里面是其他 divs,还有 Javascript 所以当一个元素被按下时它 shows/hides 其他 divs使用 CSS 显示。
但是,当我 hide/unhide 这些时,parent 高度不会调整,所以你无法看到显示 div 一旦你打开多个。
示例如下:
$("document").ready(function () {
setupInjuries();
});
function setupInjuries() {
$(".match-injury").each(function () {
var helpIcon = $(this).find(".match-injury-icon");
var shortDescription = $(this).find(".match-injury-shortdescription");
var latestButton = $(this).find(".match-injury-latestbutton");
var longDescription = $(this).find(".match-injury-longdescription");
helpIcon.click(function () {
if (shortDescription.css("display") == "none") {
shortDescription.css("display", "block");
}
else {
shortDescription.css("display", "none");
longDescription.css("display", "none");
latestButton.text("SEE LATEST");
}
});
latestButton.click(function () {
if (longDescription.css("display") == "none") {
longDescription.css("display", "block");
$(this).text("HIDE LATEST");
}
else {
longDescription.css("display", "none");
$(this).text("SEE LATEST");
}
});
});
}
.match-injuries-container {
width: 100%;
height: 135px;
background-color: #e5e5e5;
overflow: hidden;
}
.match-injuries-home {
width: 50%;
float: left;
text-align: center;
display: inline-block;
border-left: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injuries-away {
width: 50%;
float: right;
text-align: center;
display: inline-block;
border-right: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injury {
width: 100%;
height: auto;
background-color: #d3d3d3;
font-size: 13px;
font-weight: bold;
border-bottom: 1px solid #9c9c9c;
border: 1px solid #9c9c9c;
border-left: none;
cursor: default;
position: relative;
}
.match-injury-detail {
height: 25px;
padding: 3px 3px 3px 3px;
}
.match-injury-player {
color: #5b5b5b;
}
.match-injury-status {
margin-left: 5px;
color: #d20000;
}
.match-injury-icon {
position: absolute;
right: 5px;
top: 0;
font-size: 15px;
color: #2b3180;
cursor: pointer;
}
.match-injury-descriptions {
padding: 3px 3px 3px 3px;
}
.match-injury-shortdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
display: none;
}
.match-injury-longdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
font-style: italic;
display: none;
}
.match-injury-latestbutton {
background-image: linear-gradient(#e5e5e5,#ffffff,#e5e5e5);
width: 100%;
height: 18px;
text-align: center;
border: 1px solid #bbbbbb;
font-size: 10px;
font-weight: bold;
cursor: pointer;
padding-top: 2px;
}
.match-injury-border {
width: 100%;
height: 4px;
background-image: linear-gradient(#9a9a9a, white, #9a9a9a);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<div class="match-injuries-container">
<div class="main-header-bar">Injuries</div>
<div class="match-injuries-home">
<div class="match-injury">
<span class="match-injury-player">Player Name 1</span>
<span class="match-injury-status">OUT</span>
<div class="match-injury-icon"><i class="fa fa-info-circle"></i></div>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 2</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 3</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
</div>
<div class="match-injuries-away">
<span style="font-size:13px;">No reported injuries</span>
</div>
</div>
如何根据容器的 height/display 状态将容器高度调整到 children?
这是因为您已经为父容器指定了高度match-injuries-container
。我删除了 height
属性 并添加了 min-height
属性 并且它对我来说工作正常。如果不需要,您甚至可以完全删除此 属性。
$("document").ready(function () {
setupInjuries();
});
function setupInjuries() {
$(".match-injury").each(function () {
var helpIcon = $(this).find(".match-injury-icon");
var shortDescription = $(this).find(".match-injury-shortdescription");
var latestButton = $(this).find(".match-injury-latestbutton");
var longDescription = $(this).find(".match-injury-longdescription");
helpIcon.click(function () {
if (shortDescription.css("display") == "none") {
shortDescription.css("display", "block");
}
else {
shortDescription.css("display", "none");
longDescription.css("display", "none");
latestButton.text("SEE LATEST");
}
});
latestButton.click(function () {
if (longDescription.css("display") == "none") {
longDescription.css("display", "block");
$(this).text("HIDE LATEST");
}
else {
longDescription.css("display", "none");
$(this).text("SEE LATEST");
}
});
});
}
.match-injuries-container {
width: 100%;
/* You can have min-height but not height */
min-height: 135px;
background-color: #e5e5e5;
overflow: hidden;
}
.match-injuries-home {
width: 50%;
float: left;
text-align: center;
display: inline-block;
border-left: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injuries-away {
width: 50%;
float: right;
text-align: center;
display: inline-block;
border-right: 1px solid #9c9c9c;
background-color: #e5e5e5;
}
.match-injury {
width: 100%;
height: auto;
background-color: #d3d3d3;
font-size: 13px;
font-weight: bold;
border-bottom: 1px solid #9c9c9c;
border: 1px solid #9c9c9c;
border-left: none;
cursor: default;
position: relative;
}
.match-injury-detail {
height: 25px;
padding: 3px 3px 3px 3px;
}
.match-injury-player {
color: #5b5b5b;
}
.match-injury-status {
margin-left: 5px;
color: #d20000;
}
.match-injury-icon {
position: absolute;
right: 5px;
top: 0;
font-size: 15px;
color: #2b3180;
cursor: pointer;
}
.match-injury-descriptions {
padding: 3px 3px 3px 3px;
}
.match-injury-shortdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
display: none;
}
.match-injury-longdescription {
font-size: 10px;
background-color: #f0f0f0;
height: auto;
padding: 3px 3px 3px 3px;
font-weight: normal;
font-style: italic;
display: none;
}
.match-injury-latestbutton {
background-image: linear-gradient(#e5e5e5,#ffffff,#e5e5e5);
width: 100%;
height: 18px;
text-align: center;
border: 1px solid #bbbbbb;
font-size: 10px;
font-weight: bold;
cursor: pointer;
padding-top: 2px;
}
.match-injury-border {
width: 100%;
height: 4px;
background-image: linear-gradient(#9a9a9a, white, #9a9a9a);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<div class="match-injuries-container">
<div class="main-header-bar">Injuries</div>
<div class="match-injuries-home">
<div class="match-injury">
<span class="match-injury-player">Player Name 1</span>
<span class="match-injury-status">OUT</span>
<div class="match-injury-icon"><i class="fa fa-info-circle"></i></div>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 2</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
<div class="match-injury-border"></div>
<div class="match-injury">
<span class="match-injury-player">Player Name 3</span>
<span class="match-injury-status">OUT</span>
<span class="match-injury-icon"><i class="fa fa-info-circle"></i></span>
<div class="match-injury-shortdescription">
Quadricepts - Expected to be out until atleast July 1st
<div class="match-injury-latestbutton">SEE LATEST</div>
</div>
<div class="match-injury-longdescription">Cousins is unlikely to return this post season, but he wont require surgery on the torn left quadriceps muscle sustained during the firsty quarter of game 2 again the Clipper's on Monday.</div>
</div>
</div>
<div class="match-injuries-away">
<span style="font-size:13px;">No reported injuries</span>
</div>
</div>