章节
问答
课签
笔记
评论
占位
占位

CSS3中的变形--位移 translate()

translate()函数可以将元素向指定的方向移动,类似于position中的relative。或以简单的理解为,使用translate()函数,可以把元素从原来的位置移动,而不影响在X、Y轴上的任何Web组件。

translate我们分为三种情况:

1、translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)

2、translateX(x)仅水平方向移动(X轴移动)

3、translateY(Y)仅垂直方向移动(Y轴移动)

实例演示:通过translate()函数将元素向Y轴下方移动50px,X轴右方移动100px。

HTML代码:

<div class="wrapper">
  <div>我向右向下移动</div>
</div>

CSS代码:

.wrapper {
  width: 200px;
  height: 200px;
  border: 2px dotted red;
  margin: 20px auto;
}
.wrapper div {
  width: 200px;
  height: 200px;
  line-height: 200px;
  text-align: center;
  background: orange;
  color: #fff;
  -webkit-transform: translate(50px,100px);
  -moz-transform:translate(50px,100px);
  transform: translate(50px,100px);
}

演示结果

 

 

任务

在CSS编辑器第9-11行输入正确代码,让不知道宽度和高度的元素实现水平垂直居中。

?不会了怎么办

思考一下,我们刚讲过的位移属性

||
1
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
.wrapper {
padding: 20px
      ;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / ly今夕何夕
你代码错了,多了一行:.wrapper div:hover  {

最赞回答 / qq_雙葉
left50%让元素往右边移了50%,translate(-50%,-50%)又让元素左移了50%,所以没反呢

已采纳回答 / weave_dream
中心点的x,y轴开始

最赞回答 / 慕仔5966192
跟上面一样, 严格的来说应该在50%的基础上再减掉长宽的一半

已采纳回答 / Taylor_Yan
这两个效果是叠加的,并没有脱离文档流,可以自己写个demo 看看啥情况

已采纳回答 / 走自己的路
我只知道很多用rem,比方说你html的字体是12px,1rem就是一个字体大小,通过响应式设置字体大小来改变样式(我没用过,只是了解一点,希望对你有帮助)

已采纳回答 / Frank_Yuan
纠正一下楼上的。left和top 是position 的属性。针对的也不是父类的容器。在这里position:absolute.官方给出的解释为:相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。 这么说就很含蓄了。我说不清楚,建议去看看  深入理解系列    张鑫旭讲还是不错的

已采纳回答 / 超高校级毕业生3123507
translate(x,y) 括号里填百分比数据的话,会以本身的长宽做参考,比如,本身的长为100px,高为50px. 那填(50%,50%)就是向右,向下移动50px,添加负号就是向着相反的方向移动如果设置了position:absolute;                   top:50%那你DIV的左边边框会移动到你父级(现在你的代码,DIV的父级就是body)的中央,而不是你的DIV的中心与body的中心重合,所以不剧中

最赞回答 / 缪小苗
http://www.imooc.com/wenda/detail/310427  我在这里写了一下,你看一下立马明白了

已采纳回答 / sevencuijian
不会挤开其他元素   

最新回答 / my_Sunny
不过要用个绝对定位才能实现  position:absolute;    top:50%;     left:50%;

已采纳回答 / 尤林
如果有定位的祖先元素,则参照最近的定位祖先元素的原始点为原始点,无定位祖先元素则以BODY的原始点为原始点。
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言