我有一个祖父母div .grandparent
,其图像元素.child-image
相对于.grandparent
处于绝对位置。我希望包装元素.parent-wrapper
(用于包装图像)的宽度和高度与其子元素.child-image
相同。可能吗?我尝试了几乎所有内容,但仍然无法解决。
这是codepen:https://codepen.io/anon/pen/MRNwoJ?editors=1100
.grandparent {
height: 650px;
max-height: calc(100vh - 100px);
width: 642px;
position: relative;
display: inline-block;
float: left;
padding: 0;
margin: 0 0 25px 0;
background-color: #464646;
text-align: center;
}
.parent-wrapper {
height: unset;
max-height: calc(100vh - 300px);
background-color: red;
float: left;
}
.child-image {
display: block;
margin: 0 auto;
min-height: 1px;
height: auto;
width: auto;
max-height: 100%;
max-width: 100%;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
cursor: unset;
}
<div class="grandparent">
<div class="parent-wrapper">
<img class="child-image" src="https://cfl.dropboxstatic.com/static/images/index/rebrand/co_create/desktop/dropbox_digital_desktop_02-vflq-5NiU.jpg">
</div>
</div>
答案 0 :(得分:0)
从子图像中删除绝对位置并将其分配给父div,这样父div的位置和大小将与子div相同。
constexpr
}
答案 1 :(得分:0)
我不知道你为什么要把这些复杂化。我已经以更简单的形式更改了代码,希望这就是您想要的。如果您想要其他特定的东西,请发表评论。
.grandparent {
display: flex;
align-items: center;
justify-content: center;
height: 650px;
width: 100%;
margin: 0 0 25px 0;
background-color: #464646;
text-align: center;
}
.parent-wrapper {
display: inline-block;
}
img {
max-width: 100%;
}
<div class="grandparent">
<div class="parent-wrapper">
<img class="child-image" src="https://cfl.dropboxstatic.com/static/images/index/rebrand/co_create/desktop/dropbox_digital_desktop_02-vflq-5NiU.jpg">
</div>
</div>