详解transform:translate(-50%,-50%)

本文介绍了使用CSS的transform属性实现元素居中的一种方法,通过translate(-50%, -50%)将元素在父容器中居中。同时,补充了使用Flexbox布局实现块级元素居中的简便方式,只需设置display: flex, align-items: center, justify-content: center即可。这种方法更加简洁且易于理解,推荐新手学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

            这个其实就是一个位移的属性,translateX在x轴方向上进行移动,反之translateY则是在y轴方向,而translate括号里的两个参数是先x后y的。

这句话的应用场景是实现块居中,具体实现如下:

<style>
        .outer {
            width: 300px;
            height: 300px;
            position: relative;
            background-color: rgb(75, 233, 27);
        }

        span {
            position: absolute;
            background-color: red;
            width: 100px;
            height: 100px;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
</style>

<body>
    <div class="outer">
        <span></span>
    </div>
</body>

 解释一下代码的作用:

               1.首先外层盒子.outer设置了宽和高,因为是父级所以设置了相对定位,默认位置在左上角,并设置了背景色为绿色。

               2.齐次是子元素span,将其绝对定位,给定宽高,并让其位置定位在画面中心的右下角(想象屏幕中间有一个十字,这个span就紧贴着第四象限),然后利用transform属性,将其往左平移span自身长度的50%,往上平移span自身长度的50%,这样中间的盒子就居中了。这一步都可以用浏览器的调试工具来自己调,动态看效果,很容易就可以明白

注意:绝对定位后,行内元素span变成了块级元素,可以设置宽和高 

效果图如下:

其中,中间红色的就是span

21年12月20日补充:

要实现这样的块居中,学了flex之后,就不要这样了,麻烦。直接父盒子---->

display:flex;

align-item:center;

justify-content:center;

就可以实现块居中了。要是不明白为什么这样会块居中,自己到浏览器开发工具中,设置了flex的元素的标签上都会显示flex的标志,点一下,在样式中看,就可以通过选择的方式来设置flex布局,而不需要只在代码中写,然后刷新页面这样麻烦了。

只对新手说的,懂的人可能会觉得简单

} 一个最长的用法就是:让弹出的元素始终位于页面的中间位置。首先position: fixed; top: 50%; left: 50%;让这个图片的左上角处在屏幕的正中间。然后让他上下位移transform:translateX(-50%) translateY(-50%);就是相对于这个图片的宽高的50%,也就是一半。移回来。 .center-vertical {    position: fixed;    top: 50%;    left:50%;      -webkit-transform: translate(-50%-50%);    -ms-transform: translate(-50%,-50%);    -moz-transform: translate(-50%,-50%);    -o-transform: translate(-50%,-50%);    transform: translate(-50%-50%);}肖肖肖丽珠关注120分享专栏目录CSS实现垂直居中的4种思路详解09-24CSS实现垂直居中是网页布局中的常见需求,本文将详细讲解四种不同的方法,帮助开发者更好地理解和运用这些技巧。 1. **行高line-height实现单行文本垂直居中** 单行文本的垂直居中可以通过设置`line-height`来实现...CSS进阶之形变与动画 ()transform、垂直居中总结、transition动画、animation动画、vertical-alignGood Good Study,Day Day Up! 1万+水平居中的方案行内级元素:设置父元素的 text-align:center块级元素:设置当前块级元素(要有宽度) margin:0 auto绝对定位:元素有宽度的情况下,设置left0、right0、margin:0 auto;flex布局:通过设置justify-content: center;垂直居中的方案绝对定位: 元素要有高度的情况下,设置top0、bottom0、margin:auto 0;flex布局 通过设置align-CSS 盒子垂直居中的方法_css transform居中3-15margin-top: 50%; // 向下移动父盒子的一半 transform: translateY(-50%); // 向上移动自身盒子的一半 } /* 通过 定位来移动*/ .father { width: 500px; height: 500px; background-color: skyblue; border: 1px solid #000; margin: 0 auto; position: relative; } .son { width: 200px; height...CSS进阶之形变与动画 ():transform、垂直居中总结、transition动画、a...3-13translate的水平垂直居中 水平居中:使用left/translate,其中需要知道left是基于包含块的宽度,translate是基于自身的大小。 垂直居中: 使用top/translate,其中需要知道top是基于包含块的高度,translate是基于自身的大小。 .shuipin{ position: relative; left: 50%; transform: translateX(-50%); } .chuizhi{ position...transform 垂直居中weixin_33948416的博客 9212019独角兽企业重金招聘Python工程师标准>>> ...css水平垂直居中方案最新发布m0_73351190的博客 187本篇文章介绍比较常见的三种方法。...的元素水平垂直居中的总结_绝对定位位水平垂直居中 transform...3-15DOCTYPEhtml>元素的垂直居中.elem1{position:relative;width:500px;height:500px;border:1px solid red; } .elem2{position:absolute;width:200px;height:200px;border:1px solid#9521de;left:50%;top:50%;transform:translate(-50%,-50%); } 效果如下: 不过transformcss3里面的内容,所以存在兼容性问题;IE9...实现div元素在整个屏幕的的垂直居中之translateY(-50%)的利用_tran...3-14本文介绍了如何使用CSStransform: translateY(-50%)实现div元素在整个屏幕的垂直居中。通过设置position: absolute,top: 50%,right: 20px,再结合transform: translateY(-50%),即使元素高度不确定,也
03-19
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值