• 技术文章 >web前端 >前端问答

    css3 旋转出现锯齿怎么办

    藏色散人藏色散人2023-01-28 14:23:53原创51

    css3旋转出现锯齿的解决办法:1、在CSS3 transform属性后加入“translateZ(0)”;2、利用元素外层容器的“overflow:hidden;”加上元素“margin:-1px;”;3、在无需border时,将元素border属性颜色设置成transparent或者和背景色相同即可。

    本教程操作环境:Windows10系统、css3版、DELL G3电脑

    css3 旋转出现锯齿怎么办?

    使用CSS3 transform rotate 出现锯齿效果的解决办法

    今天,有朋友在学习CSS3的时候碰到了点问题,transform rotate之后出现了一个和背景颜色同色的 “边框” 。 刚看到的时候,也是很好奇,我还没他学的这么仔细,都没遇到过这个问题。

    这篇文章仅讨论锯齿问题。

    解决:

    1. 在CSS3 transform属性后加入translateZ(0)

    2. 手机上,利用元素外层容器的overflow:hidden; 加上元素margin:-1px;

    3. 无需border时,元素border属性颜色设置成 transparent 或者和背景色相同


    详细:

    f98804b23158c9545deb5236b1005a3.jpg

    代码如下:

    <!DOCTYPE html>
    <html>
    
    <head>
        <title>分享图标</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
    
            .container {
                position: relative;
                margin: 5% auto;
                border: 1px solid #cccccc;
                width: 300px;
                height: 300px;
            }
    
            .bor {
                position: relative;
                top: 2%;
                left: 40%;
                width: 40%;
                height: 40%;
                border: 25px solid white;
                transform: rotate(45deg);
                -webkit-transform: rotate(45deg);
                background-color: black;
            }
        </style>
    </head>
    
    <body>
        <div class="container">
            <div class="bor">
            </div>
        </div>
    </body>
    
    </html>

    发现 “边框” 的颜色和背景色相同,元素各值正常如下,并且元素本身已经border,便觉得可能是本身渲染的问题。

    b5c0660d0ffc569dca2903016239c5a.jpg

    经查阅资料,有以下三个方法:

    1. 在CSS3 transform属性后加入translateZ(0)

    03b6f48bbcfefad7ba64b8b31906533.jpg

    这是在本例中,最方便的解决办法。

    使用CSS3 3D transforms,通过GPU来渲染,能有效的起到抗锯齿效果。 GPU加速是在IE9时才加入的,所以兼容性上有点问题。

    2. 利用元素外层容器的overflow:hidden; 加上元素margin:-1px;

    修改代码,尝试了一下:

    .container {
                position: relative;
                left: 100px;
                top: 300px;
                overflow: hidden;
            }
    
            .bor {
                margin: -1px;
                width: 200px;
                height: 200px;
                transform: rotate(45deg);
                -webkit-transform: rotate(45deg);
                border: 25px solid white;
                background-color: black;
            }

    42c86e042fefd428930955475c48ae7.jpg

    46bdf54c5ae4fc48b4d86aba9891502.jpg

    在本例中并未作用。

    这方案手机上可以,在电脑上会出问题。

    3.元素border属性颜色设置成 transparent 或者和背景色相同

    修改代码,尝试了一下:

    45225586a31faa1dc6eb845218dd743.jpg

    765366159723fc5e90b004cf2689332.jpg

    与本例中的border要求冲突。

    若不需要border可以解决。

    推荐学习:《css视频教程

    以上就是css3 旋转出现锯齿怎么办的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:锯齿 CSS3
    上一篇:jquery怎么设置元素多个属性值 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PS消除锯齿选项在哪里?• php怎么实现消除锯齿• css如何消除锯齿• css3消除锯齿的属性是什么• 实例详解CSS渐变锯齿问题如何解决!
    1/1

    PHP中文网