Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 收缩图像以适合柔性柱_Html_Css_Flexbox - Fatal编程技术网

Html 收缩图像以适合柔性柱

Html 收缩图像以适合柔性柱,html,css,flexbox,Html,Css,Flexbox,我有一个图像,我想在flexbox列布局中缩小。我读了很多相关的文章,但我还是搞不懂 我希望右栏的高度始终与左栏相同,右栏中的图像填充文本未占用的剩余空间的高度。有什么想法吗?谢谢大家! 我希望它看起来像这样: 代码笔在这里: 这是我的HTML: <div class="block-one"> <div class="block-one-left"> <img src="https://vi

我有一个图像,我想在flexbox列布局中缩小。我读了很多相关的文章,但我还是搞不懂

我希望右栏的高度始终与左栏相同,右栏中的图像填充文本未占用的剩余空间的高度。有什么想法吗?谢谢大家!

我希望它看起来像这样:

代码笔在这里:

这是我的HTML:

<div class="block-one">
    <div class="block-one-left">
        <img src="https://via.placeholder.com/300x400" alt="">
    </div>
    <div class="block-one-right">
        <div class="block-one-right-top">
           <img src="https://via.placeholder.com/300x400?text=Shrink+Me!" alt="">
        </div>
        <div class="block-one-right-bottom">
            <p>Lorem ipsum dolor sit amet, consectetuer diiscing elit, sed diam nonummy nibh dolor it euismod tincidunt ut laoreet dolore.</p>
        </div>
    </div>
</div>

您可以使用一小段javascript来计算左侧img高度减去文本高度的差值,并将右侧图像高度设置为该差值。只需将这4行javascript放在一个
-标记中,就在结束body标记之前

工作示例:

var max_height=document.querySelector('.block one left').clientHeight;
var text_height=document.querySelector('.block one right-bottom').clientHeight;
var shrink\u height=最大高度-文本高度;
document.querySelector(“.block one right top”).style.height=收缩高度+px
*{
保证金:0;
填充:0;
框大小:边框框;
}
1号楼{
显示器:flex;
宽度:600px;
余量:0 50px 100px 50px;
填充:25px;
背景:#9ac1e4;
}
1号楼左转{
高度:300px;
右边距:25px;
}
.左一号街区{
身高:100%;
}
1号楼右转{
宽度:225px;
}
.阻塞一个右上img{
身高:100%;
}
.右下角1号楼{
填充顶部:25px;
}

这是一个很好的例子,它是一个很好的例子


文本是否仍应在蓝色框中?哪里右下角?居中?是的,仍在右侧图像下方的蓝色框中。查看带有图片的更新帖子您不需要响应行为吗?如果您固定了图像的高度,并尝试缩小浏览器的宽度,您的图像将失真,您的容器宽度是否固定?i、 一号楼有固定的宽度吗?如果是的话,那么你只需要在第二列有一个固定高度的图像,可能是60%的高度是的,我希望它是响应。任何东西都没有固定的宽度或高度。谢谢!所以我想用纯flexbox是没有办法做到这一点的?不,因为flexbox会像内容所需要的那样变大。在你的情况下,最好有一个“收缩箱”。。。但是如果这回答了你的问题,你应该将答案标记为已接受。。。
.block-one {
    width: 50%;
    padding: 50px;
    background: #9ac1e4;
    margin: 0 50px 100px 50px;
    display: flex;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    max-height: 100%;
}

.block-one-left {
    width: 40%;
    padding-right: 50px;
}

.block-one-left img {
    width: 100%;
}

.block-one-right {
    width: 60%;
    display: flex;
    flex: 1;
    flex-direction: column;
}

.block-one-right-top {
    height: 100%;
    flex: 1;
}

.block-one-right-top img {
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    min-height: 0;
    min-width: 0;
    width: auto;
    object-fit: contain;
}