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

div块内的CSS中心文本(水平和垂直)

督弘化
2023-03-14
问题内容

我有一个div设置为display:block90px heightwidth),我有一些文字里。

我需要文本在垂直和水平方向的中心对齐。

我已经尝试过了text-align:center,但是它没有做水平部分,所以我尝试了vertical-align:middle,但是没有用。

有任何想法吗?


问题答案:

如果是一行文本和/或图像,则很容易做到。只需使用:

text-align: center;
vertical-align: middle;
line-height: 90px;       /* The same as your div height */

而已。如果可以是多行,那么它会稍微复杂一些。但是在http://pmob.co.uk/上有解决方案
。查找“垂直对齐”。

由于它们往往是黑客或添加复杂的div …我通常使用带有单个单元格的表来实现它…使其尽可能简单。

除非需要使它在早期的浏览器(例如InternetExplorer10)上运行,否则可以使用flexbox。当前所有主流浏览器都广泛支持它。基本上,需要将容器指定为弹性容器,并沿其主轴和横轴居中:

#container {
  display: flex;
  justify-content: center;
  align-items: center;
}

指定一个固定的宽度,这称为“弹性项目”:

#content {
  flex: 0 0 120px;
}

要收缩包装内容,它甚至更简单:只需flex: ...从flex项中删除该行,它就会自动收缩包装。

上面的示例已经在包括MS Edge和Internet Explorer 11在内的主要浏览器上进行了测试。

如果需要自定义一个技术说明:在flex项内部,因为该flex项本身不是flex容器,所以旧的非flexboxCSS方式可以按预期工作。但是,如果向当前的伸缩容器中添加其他伸缩项目,则两个伸缩项目将被水平放置。要使其垂直放置,请flex-direction:column;在弹性容器中添加。这是它在flex容器及其 直接 子元素之间工作的方式。

还有另一种进行居中的方法:通过不指定centerflex容器在主轴和交叉轴上的分布,而是margin: auto在flex项上指定以占据所有四个方向上的所有额外空间以及均匀分布的边距将使flex项在所有方向上居中。除存在多个弹性项目外,此方法均有效。此外,此技术在MSEdge上有效,但在Internet Explorer 11上无效。

2016年/ 2017年更新:

通常可以使用来完成此操作transform,即使在较旧的浏览器(例如Internet Explorer 10和Internet Explorer
11)中也可以很好地工作。它可以支持多行文本:

position: relative;
top: 50%;
transform: translateY(-50%);

收缩包装宽度:

上面的解决方案为内容区域使用了固定的宽度。要使用收缩包装的宽度,请使用

position: relative;
float: left;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

如果需要对Internet Explorer10的支持,则flexbox将不起作用,并且上述方法和line-height方法将起作用。否则,flexbox会完成这项工作。



 类似资料:
  • 问题内容: 我弹出一个包含ASP.NET表单的弹出窗口,单击链接“请求信息”,然后出现该表单。 但是,具有链接“请求信息”以触发弹出窗口的页面包含很多内容,因此需要滚动才能看到该链接。 如果用户滚动阅读内容,则需要始终居中,否则,如果他们不滚动,弹出窗口仍将居中显示在屏幕上。 在绝对定位,整个页面宽度与边距设置为。 问题答案: 如果div具有固定的宽度和高度,请使用:(如果width = 120p

  • 问题内容: 我正在练习CSS,却对如何强制将元素置于页面的中心(和)感到困惑(这意味着跨浏览器兼容性的一种或多种方式)? 最好的祝福! 问题答案: 有很多方法: 使用固定尺寸使元素的水平和垂直居中对齐 CSS 2。水平和垂直居中一行文本 CSS 3。没有特定度量的元素的水平和垂直居中对齐 CSS

  • 问题内容: 有没有办法在 垂直和水平方向上输入一个DIV, 但这很重要, 当窗口小于内容时,内容将不会被剪切 。div必须具有背景色,宽度和高度。 我总是将div的中心定位为绝对位置和负边距,如提供的示例所示。但是它有一个问题,那就是削减内容的顶部。有没有一种方法可以将div.content居中而不会出现此问题? CSS: HTML: 我的问题不是重复的“如何在水平和垂直方向上居中放置元素?”1-

  • 问题内容: 我有一个div 200 x 200像素。我想在div的中间放置一个50 x 50像素的图像。 怎么做到呢? 我可以通过使用div 使它水平居中。但是垂直对齐是个问题。 问题答案: 就个人而言,我将其作为div中的背景图像放置,其CSS为: (假设您已经在指定div 并添加div 应该不是问题) 让浏览器承受压力。

  • 问题内容: 我们可以将图片设置为like的背景图片: 我需要在水平和垂直中心放置一张桌子。是否有使用的跨浏览器解决方案? 问题答案: 居中是CSS中最大的问题之一。但是,存在一些技巧: 要水平放置表格,您可以将左右边距设置为自动: 要垂直居中,唯一的方法是使用javascript: 否是可能的,因为表是一个块而不是一个内联元素。 编辑

  • 问题内容: 我有一个页面,其中仅存在表单,并且我希望将表单放置在屏幕的中央。 该对齐表格水平,但我无法弄清楚如何垂直对齐。我已经尝试使用和,但是它不起作用。 我想念什么? 问题答案: 更新2019 - Bootstrap 4.3.1 有 没有必要 进行 额外的CSS 。Bootstrap中已经包含的内容将起作用。确保表格的容器为 全高 。Bootstrap4现在具有100%高度的类… 垂直中心: