当前位置: 首页 > 面试题库 >

如何垂直对齐具有定义的宽度/高度的div内容的中心?

连志义
2023-03-14
问题内容

这将是垂直居中在限定的宽度/高度的任何内容的正确方法div

示例中,有两个具有不同高度的内容,什么是使用class垂直居中的最佳方法.content?(并且适用于所有浏览器,而没有的解决方案table-cell

想到了一些解决方案,但想知道其他想法,一个正在使用position:absolute; top:0; bottom: 0;margin auto


问题答案:

我对此进行了一些研究,从中发现您有四个选择:

版本1:父div,显示为表格单元

如果您不介意display:table-cell在父div上使用,则可以使用以下选项:

.area{
    height: 100px;
    width: 100px;
    background: red;
    margin:10px;
    text-align: center;
    display:table-cell;
    vertical-align:middle;
}​

版本2:具有显示块和内容显示表单元的父div

.area{
    height: 100px;
    width: 100px;
    background: red;
    margin:10px;
    text-align: center;
    display:block;
}

.content {
    height: 100px;
    width: 100px;
    display:table-cell;
    vertical-align:middle;    
}​

版本3:父div浮动和内容div作为显示表格单元

.area{
    background: red;
    margin:10px;
    text-align: center;
    display:block;
    float: left;
}

.content {
    display:table-cell;
    vertical-align:middle;
    height: 100px;
    width: 100px;
}​

版本4:父div相对位置,内容绝对位置

我使用该版本的唯一问题是,似乎您将不得不为每个特定的实现创建css。原因是内容div需要具有您要填充的文本的设置高度,并且要从中确定页边距的顶部。在演示中可以看到此问题。您可以通过更改内容div的高度百分比并将其乘以-.5来获得最高边距值,从而使其手动适用于每种情况。

.area{
    position:relative; 
    display:block;
    height:100px;
    width:100px;
    border:1px solid black;
    background:red;
    margin:10px;
}

.content { 
    position:absolute;
    top:50%; 
    height:50%; 
    width:100px;
    margin-top:-25%;
    text-align:center;
}​


 类似资料:
  • 我的钢笔 http://codepen.io/helloworld/pen/dqgdk 我想垂直对齐包装器div内部的3个div。3个div中的每一个都应该有33%的高度。我可以使布局工作时,div有一个33px的高度,但我需要它的百分比,因为包装div的高度动态变化。有时是100px的高度,有时是70px等等。 我只想所有3总是正确的使用百分比高度对齐。 将divs与百分比对齐的方法是什么? H

  • 问题内容: 当内容的高度可变时,垂直对齐div内容的最佳方法是什么?在我的特定情况下,容器div的高度是固定的,但是如果有一种解决方案在容器具有可变高度的情况下也能解决问题,那将是很好的。另外,我希望不使用CSS hack和/或使用非语义标记,或者很少使用CSS hack和/或非语义标记的解决方案。 问题答案: 只需添加 到内部div 它的作用是将内部div的顶部边框移到外部div的一半高度(),

  • 问题内容: 我有一个(水平)居中的外部div,其中包含两个宽度未知的元素: 默认情况下,两个浮点都是顶部对齐的,并且高度/高度未知/不同。有什么办法可以使它们垂直居中? 我最终做了外股 和内部div 但我很好奇,是否有办法用花车做到这一点。 问题答案: 您不能直接执行此操作,因为浮点数与顶部对齐: 如果有一个线框,则浮动框的外部顶部与当前线框的顶部对齐。 确切的规则说(强调我的): 浮动框的外部顶

  • 问题内容: 是否可以将 div 垂直居中于%height div中 ? 问题答案: 在这里以及整个Internet上,已经被要求足够多次了。 快速搜索将为您带来大量结果。无论如何,我这样做的首选方式是使用和。

  • 假设我们有一个垂直的(即flex-direction:column)flexbox容器,具有给定的宽度和高度。flexbox包含div,每个div包含一个图像。 所有DIV和图像都应该以相同的百分比收缩/增长,以填充flexbox的高度,这是通过使用flex-shrink和/或Flex-Grow实现的。 所有图像都应该保持其纵横比(即不拉伸),这是通过不设置其css“width”属性来实现的。 每

  • 问题内容: 我在div中垂直对齐图像时遇到问题 据我所知,我需要“显示:块;” 定位图像在中心,这是可行的。同样在教程中,我找到了很多答案,但它们并不是“有用的”,因为我的所有图像都不在同一高度! 问题答案: 如果容器中的高度固定,则可以将line-height设置为与高度相同,并且它将垂直居中。然后只需添加text-align使其水平居中即可。 编辑 您的代码应如下所示: 更新 现在是2016年