【发布时间】:2018-06-01 22:09:44
【问题描述】:
我做了这个例子:
.example {
max-width: 600px;
}
.flex-row {
display: flex;
flex-wrap: wrap;
}
.flex-row .col {
flex-grow: 1;
flex-basis: 0;
}
.flex-row .content {
flex: 0 0 60%;
padding: 15px;
background: #b7bdbb;
}
.image {
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
}
.image img {
flex-shrink: 0;
min-width: 100%;
min-height: 100%;
}
<div class="example">
<div class="flex-row">
<div class="col image">
<img src="https://via.placeholder.com/500x265" alt="">
</div>
<div class="col content">
some content
</div>
</div>
</div>
我希望裁剪左侧的图像,但我希望我的内容决定.example 元素的整体高度。
目前,图像决定了整个元素的总高度。我想将图像裁剪为右栏中内容的大小。我的例子可行吗?
【问题讨论】:
-
我的回答有用吗?
-
我仍然需要使用我当前的解决方案测试浏览器对 IE 的支持。但你说:
This overcome 2 bugs in IE, where one can't use calc in shorthand flex and the border-box issue to have padding inlcuded in the set width,但我目前的解决方案不需要calc,所以我想知道你是否暗示了其他一些错误? -
不是,
calc我以前是从宽度上减少padding的,不然宽度是60%+padding。如果没问题,那么就不需要使用它,如果没有,那么这就是box-sizing: border-box的解决方法,这是我的意思的第二个错误。另一种选择是在弹性项目上放置填充并在其子项目上使用边距。 -
我可以问一下为什么你保留一个不能跨浏览器工作的答案,而接受的答案有一个?