我有以下HTML:

<div class="outer">
    <div class="inner rotate">Centered?</div>
</div>

div.outer是一个狭窄的垂直条带.div.inner旋转90度.我想要文本"居中?"在其容器div中居中显示.我事先不知道这两个div的大小.

这接近于:http://jsfiddle.net/CCMyf/2/.您可以从jsfiddle中看到,文本在应用transform: rotate(-90deg)样式之前垂直居中,但在应用transform: rotate(-90deg)样式之后有点偏移.当div.outer是空头时,这一点尤其明显.

有没有可能在事先不知道任何尺寸的情况下将文本垂直居中?我还没有找到任何transform-origin的值可以解决这个问题.

推荐答案

关键是将位置顶部和左侧设置为50%,然后将变换X和变换Y设置为-50%.

.inner {
    position: absolute;
    top: 50%;
    left: 50%;
}

.rotate {  
    transform:  translateX(-50%) translateY(-50%) rotate(-90deg);
}

见:http://jsfiddle.net/CCMyf/79/

Css相关问答推荐

大型菜单的CSS动态布局,根据菜单项的数量以行或列形式读取

如何使用css创建带有曲线的自定义按钮

如何提高数学输出的质量?

如何为垫子制作圆角- Select 所有角点上的下拉列表

使用 place-content: center 的全宽 CSS 网格项目

CSS 网格 - 具有独立可滚动区域的两列布局

使用任意运行时字符串进行 Tailwind CSS 类定位

为什么这个绝对定位的 ::after 伪元素会崩溃,除非父级有过滤器?

在 CSS 中如何使用 100% 和最大内容之间的最大值

nth-child 在一个页面上工作,但不在另一个页面上

将 CSS 注入 Shadow 根.然而风格正在受到影响

圆形加载动画

CSS中的旋转地球

如何在连字符 (-) 等特殊字符后分词

iPhone X / 8 / 8 Plus CSS 媒体查询

根据背景 colored颜色 反转 CSS 字体 colored颜色

CSS 否定伪类 :not() 用于父/祖先元素

Unicode 通过 CSS :before

使用 CSS 更改
高度

html元素(div)的全高,包括边框,填充和边距?