translateZ()變糊css
當translateZ(m)中的 m設置爲 非整數,1.5px 之類的,字體會模糊,可是不明顯;和瀏覽器渲染,字體格式,或者操做系統有關,html
這個 css中 只能儘可能避免非整數的;js 中 用Math.floor(m)或者Math.cail(m)避免就好;css3
當設置有景深 perspective:number; 被運動元素 translateZ(m)中的 m設置 非 0 的狀況下; m>0;總體背放大,距離你更近,反之,則反;(scale(m)殊途同歸);不過 此時;元素被像素化;字體變模糊;web
<style> .parent{ position:relative; text-align:center; width:1000px; border:1px solid #333; margin:20px auto; height:500px;} .child{ text-align: center; margin: 10px auto; white-space: pre; height:65px; line-height:65px;position:relative; } .font-size { font-size: 1.8em; } .scale { -webkit-transform: scale(1.8); -moz-transform: scale(1.8); -o-transform: scale(1.8); transform: scale(1.8); } .perspective { -webkit-transform: perspective(1200px) translateZ(700px); -moz-transform: perspective(1200px) translateZ(700px); -o-transform: perspective(1200px) translateZ(700px); transform: perspective(1200px) translateZ(700px); } </style> <div class='parent'> <p class="child font-size">font-size: 1.8em</p> <p class="child scale">transform: scale(1.8);</p> <p class="child perspective">transform: perspective(1200) translateZ(700px);</p> </div>
效果圖:瀏覽器
父類的元素 使用translateZ(-m);重返Z軸平面;也就是說;字體
.childrens{ -webkit-transform:translateZ(23px) rotateX(-90deg); }spa
.father{-webkit-transform:translateZ(-23px);/*父類修復子類放大問題 致使子類的文字 內容鋸齒化} 操作系統
在hover 時候,也加個這個;能夠消除 字體模糊; orm
.parent:hover{-webkit-transform:translateZ(-23px) rotateX(90deg); /* rotateX 以後 再次translateZ(-23px) 父類Hover 修復子類放大問題 致使子類的文字 內容鋸齒化*/}htm
css3的垂直居中 有時候致使垂直元素的字體模糊,尤爲pc上,寬度不定,translate自身的一半,有時候 200.1234px,出現小數位,pc瀏覽器就模糊了...
.center{ top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
附上源代碼:
。。。。