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

转换:翻译(-50%,-50%)

寇桐
2023-03-14
问题内容

当使用英雄图像或全屏显示时,我通常会看到带有以下CSS的文本或图像:

.item {
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
}

有人可以向我解释此代码的实际作用吗?


问题答案:

之所以transform: translate(-50%, -50%)需要这样做,是因为您希望 元素 的中心与父 元素
的中心对齐。简单来说,可以归结为translateX(-50%) translateY(-50%),这意味着:

  • 沿x轴向左移动我宽度的50%,并且
  • 沿y轴将我向上移动我身高的50%

这有效地将元素的中心移动到其原始的左上角。请记住,而不是在left: 50%; top 50%元素上进行设置时,您要将其左上角移至其父级的中心(这意味着它根本不在视觉上居中)。通过将元素分别向左和向上移动其宽度和高度的一半,您可以确保其中心现在与父对象的中心对齐,从而使其在视觉上水平+垂直居中。

作为概念验证,请参见下面的代码段:将鼠标悬停在父元素上,以通过以下方式使子元素的“ ghost”重新定位transform: translate(-50%, -50%)

body {

  margin: 0;

  padding: p;

}



.parent {

  background-color: #ccc;

  width: 100vw;

  height: 100vh;

  position: relative;

}



.child {

  background-color: rgba(0,0,255,0.5);

  width: 50px;

  height: 50px;

  position: absolute;

  top: 50%;

  left: 50%;

}



.child::before {

  background-color: rgba(255, 0, 0, 0.5);

  position: absolute;

  top: 0;

  left: 0;

  width: 50px;

  height: 50px;

  content: '';

  transition: all .5s ease-in-out;

}



body:hover .child::before {

  transform: translate(-50%, -50%);

}


<div class="parent">

  <div class="child"></div>

</div>


 类似资料:
  • 问题内容: 我想模拟在CSS 中使用的属性。 根据MDN,这很有可能: 通过首先使用属性的取反值转换元素,然后应用元素的变换,然后通过属性值进行转换,来应用此属性。 但是,当我尝试时,会得到不正确的结果。这两个矩形显然不相同: 我已经尝试了很长时间没有运气寻找答案了,在我看来,这应该是相对简单的,我只是想不通。 问题答案: 您几乎不错,但是有两个错误。您需要反转翻译,并且需要更改第二个翻译的翻译。

  • 您可使用 Google Translate™ 应用程式翻译词组: 按下侧边电源按钮打开应用程式菜单,找到并轻触Translate(翻译)。 您将看到翻译源语言与目标语言这两种语言。您可通过轻触某一语言的名称来更改语言。 轻触“麦克风”图标并说出您想翻译的词组。 译文将显示在屏幕上。

  • 本文向大家介绍SVG 翻译,包括了SVG 翻译的使用技巧和注意事项,需要的朋友参考一下 示例 将矩形向右移动10个单位,向下移动20个单位: 将其水平移动0个单位,向上移动20个单位: 将其向左移动10个单位,垂直移动0个单位:            

  • 在学习计算机科学概念时,学生不必在学习英语的同时费劲。 如果您以英语以外的其他语言为母语,那么我们很感谢您为世界上95%的母语不是英语的人所提供的帮助。 Translatewiki Blockly和Blockly游戏的翻译均由Translatewiki处理。 注册成为translatewiki.net的翻译。 做一些测试翻译以获得翻译许可(在右上角选择一种语言)。 简要阅读Blockly的翻译风格

  • 我想使用嵌入在我的应用程序中的 H2 数据库来创建一个由 CSV 文件填充的内存中数据库。所以我使用了CSVREAD函数。 除了一个麻烦的问题之外,一切都很好,那就是它似乎无法识别换行符。它将字面上翻译为两个字符和。 文档说默认的转义字符是引号,但是如果我尝试使用引号来转义除另一个引号之外的任何其他内容,它只会在那里结束记录。 有没有可能将带有换行符的文本放入CSV文件中,并让H2的CSVREAD

  • 你可以在应用程序的启动方法中向本地化文本注册表(local text registry)添加翻译。 这些翻译可来源自数据库表、xml 文件、嵌入的资源等。 void Application_Start() { // ... var registry = Dependency.Resolve<ILocalTextRegistry>(); registry.Add("es",