html - 转换问题:translateX 和 translateY
问题描述
再会!我正在研究如何在中心垂直对齐文本。我想知道为什么 transform:translateY(50%) 移动了一点,而 transform:translateX(50%) 移动了很多。
我已经尝试使用精确的 px 值移动我的元素,我以某种方式了解它是如何工作的,但是使用像这样的百分比转换:translateY(-50%),我很困惑。
<head>
<style type="text/css">
.Container {
background-color: #85C1E9;
height: 200px;
width: 200px;
}
.Content {
position: relative;
transform: translateY(50%);
transform: translateY(50%);
}
</style>
</head>
<body>
<div class="Container">
<div class="Content">
<p>Hello</p>
</div>
</div>
</body>
我只想知道为什么如果我使用 translateX(50%),元素会移动得更远,而当它是 translateY(50%) 时,它确实会移动,但只是一点点。
解决方案
使用 translate 时,移动与框的大小有关。
假设您有一个 200 像素 x 50 像素的 div。如果使用translateX(50%)
,则将元素向右移动其宽度的 50%(100 像素)。
translateY(50%)
相比之下,如果您要使用它,您会将其向下移动其高度的 50%,在本例中为 25px。
对于您的具体示例,您有一个 200px x 200px 的容器。但是,这不是您要应用 translate 的元素。相反,您正在.Content
容器内移动 div。由于您没有为该元素指定定义的大小,因此它将是 200px x 段落的高度。高度远小于宽度,因此两种平移形式之间的移动距离存在差异。
推荐阅读
- pandas - 如何根据列值修改数据框
- powershell - Powershell - 正确导出 CSV 文件
- python - 如何在 Geopandas Dataframe 的几何列中访问/获取/提取 POLYGON 的值?
- android - ConstraintLayout 在父级中垂直居中,没有重叠
- c - 通过 FIFO 流水线进行双向处理
- python - 为什么不是全球性的?
- http-headers - 如何在 Angular 13 中实现 max-age Cache 控制
- python - 在 Python API 调用中传递多个字符串
- c# - 如何读取位于 app 目录中的 settings.settings 文件
- javascript - NEXT JS req.body 未定义