首先,理清一个概念,transform: translate(-50%,-50%);是一个二维变换,它只是一个渲染效果,而不是布局本身。决定文字是否换行的是布局效果。 默认状态下,行内文本在到达元素的包含块(Containing Block)边缘时,会换行。在你的例子中,div1是绝对定位的div2的包含块。 你可以在调试工具中临时去掉transform: translate(-50%,-50%);观察(这时候相当于就是没有经过渲染修改的布局状态),会发现div2就是从中间位置开始,随着文字数目增多,或者padding增加内边距,当到达边缘后,就开始换行。 如果文字不换行,考虑减小内边距或直接设置white-space: nowrap;。
首先,理清一个概念,
transform: translate(-50%,-50%);
是一个二维变换,它只是一个渲染效果,而不是布局本身。决定文字是否换行的是布局效果。默认状态下,行内文本在到达元素的包含块(Containing Block)边缘时,会换行。在你的例子中,
div1
是绝对定位的div2
的包含块。你可以在调试工具中临时去掉
transform: translate(-50%,-50%);
观察(这时候相当于就是没有经过渲染修改的布局状态),会发现div2
就是从中间位置开始,随着文字数目增多,或者padding增加内边距,当到达边缘后,就开始换行。如果文字不换行,考虑减小内边距或直接设置
white-space: nowrap;
。