您的位置:首頁技術文章
文章詳情頁

css3中translate(-50%,-50%)對 transform-origin的奇葩影響?

瀏覽:141日期:2023-06-18 13:11:06

問題描述

<style>#test{ width: 100px; height: 100px; background-color: red; transition: all 1s; position: absolute; left: 50%; top: 50%; margin-left: -50px; /*transform:translate(-50%,-50%);*/ transform-origin: 50% 50%;}#test:hover{ transform: scale(1.2, 1.2);} </style></head><body> <p id='test'></p></body>

當我使用 margin-left為負值的方法來居中對齊,然后鼠標hover的時候放大,中心點就是transform-origin設置的上下居中,沒有任何問題:css3中translate(-50%,-50%)對 transform-origin的奇葩影響?

可是當我使用 transform:translate(-50%,-50%)的居中對齊時:

<style>#test{ width: 100px; height: 100px; background-color: red; transition: all 1s; position: absolute; left: 50%; top: 50%; /*margin-left: -50px;*/ transform:translate(-50%,-50%); transform-origin: 50% 50%;}#test:hover{ transform: scale(1.2, 1.2);} </style></head><body> <p id='test'></p></body>

css3中translate(-50%,-50%)對 transform-origin的奇葩影響?

鼠標hover上去,放大的中心點貌似就跑到了 左上角,即使我設置了 transform-orgin,但是仍然不起作用,css3中translate(-50%,-50%)對 transform-origin的奇葩影響?

從控制臺來看,transform-origin 屬性是起了作用的。本人非常困惑為什么會這樣,請個人大佬指點迷津

問題解答

回答1:

很明顯的錯誤,hover 的時候把原有的 translate 覆蓋掉了

正確寫法如下

#test:hover{ transform: scale(1.2, 1.2) translate(-50%,-50%);}

標簽: CSS
国产综合久久一区二区三区