Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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/36.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 如何在另一个固定高度div内垂直对齐动态高度div_Html_Css - Fatal编程技术网

Html 如何在另一个固定高度div内垂直对齐动态高度div

Html 如何在另一个固定高度div内垂直对齐动态高度div,html,css,Html,Css,我遇到了一个CSS难题,我正在为以下技巧寻找最佳解决方案: <div class="vertical-wrapper"> <div class="vertical-content"> Variable length of text which can be multiple lines </div> </div> 下面是实现这一点的方法。您正在上设置最小高度。垂直包装,但随后溢出:自动。如果改为设置一个固定的高度,

我遇到了一个CSS难题,我正在为以下技巧寻找最佳解决方案:

<div class="vertical-wrapper">
    <div class="vertical-content">
        Variable length of text which can be multiple lines
    </div>
</div>

下面是实现这一点的方法。

您正在
上设置
最小高度
。垂直包装
,但随后
溢出:自动
。如果改为设置一个固定的高度,而文本变得太大,它仍然会变得更高,并实现相同的效果

固定高度后,可以使用
display:table cell
vertical align:middle
垂直对齐div,如中所述

。垂直包装器{
宽度:220px;
高度:220px;
背景:#cf0000;
溢出:自动;
显示:表格单元格;
垂直对齐:中间对齐;
}
.垂直内容{
背景:#fff;
利润率:10px;
填充物:5px;
}

文本长度可变,可以是多行。
祝您好运!
文本长度可变,可以是多行。
祝您好运! 文本长度可变,可以是多行。
祝您好运

文本长度可变,可以是多行。
祝您好运

文本长度可变,可以是多行。
祝您好运

文本长度可变,可以是多行。
祝您好运

文本长度可变,可以是多行。
祝您好运


您可以使用
内联flex
显示。以下是正确的CSS:

。垂直包装器{
display:inline flex;/*此处有细微更改*/
宽度:220px;
最小高度:220px;
背景:#cf0000;
溢出:自动;
}   
.垂直内容{
背景:#fff;
保证金:自动10px;/*在这里*/
填充物:5px;
}

}
一种解决方案是将其
Y轴
转换为
-50%
,然后将
边距顶部:50%
应用于
。垂直内容

。垂直包装器{
宽度:220px;
最小高度:220px;
背景:#cf0000;
溢出:自动;
}
.垂直内容{
背景:#fff;
利润率:10px;
填充物:5px;
利润率最高:50%;
转化:translateY(-50%);
}

可变长度的文本,可以是多行。可变长度的文本,可以是多行。
祝你好运!

我把上面的一些答案和我自己的一些研究结合起来,找到了答案,多亏了你们

HTML代码


当我看到片段中的第二个框不知怎么地没有居中时,我正准备向上投票。但你的逻辑是有道理的…@Rhumborl-它居中,看看整页或小提琴。我做了-是小提琴在Chrome中的样子。34px以上,63pxbelow@Rhumborl-奇怪!当框显示为内联块时,在Firefox上可以完美地工作,如果只有一个框,则可以在所有浏览器中工作。很好。顺便说一句,如果这正是你所需要的,并且你认为这是最好的解决方案,你可以将你自己的答案标记为被接受的答案。
.vertical-wrapper{
width: 220px;
min-height: 220px;
background: #red;
overflow: auto;
}
.vertical-content{
    background: #green;
    margin: 10px;
    padding: 5px;
}
<div class="vertical-wrapper">
    <div class="vertical-content">
        Variable length of text which can be multiple lines.<br />
        Variable length of text which can be multiple lines.<br />
        Variable length of text which can be multiple lines.<br />Good luck!
    </div>
</div>
.vertical-wrapper{
width: 220px;
height: 220px;
background: #cf0000;
overflow: auto;
position: relative;
}

.vertical-content{
position: absolute;
top: 50%;
left:10px;
right:10px;
background: #fff;
padding: 5px;
transform: translateY(-50%);
}