了解 css中 backface-visibility 属性

简介: `backface-visibility` 是一个CSS属性,用于3D转换时控制元素背面的可见性,以优化渲染性能。默认情况下,背面被隐藏以减少不必要的渲染。此属性有两值:`visible` 表示背面可见;`hidden`(默认值)则隐藏背面。通过双面卡片案例演示了其用法:两个重叠盒子,一个显示图片,另一个显示文字且初始状态为背面朝外。鼠标悬停时,图片盒子翻转显示背面,文字盒子翻转显示正面,同时设置 `backface-visibility: hidden` 以确保背面不被渲染。兼容性良好,广泛支持现代浏览器。

1. 介绍

backface-visibility 是一个CSS属性,用于控制元素的背面是否可见。它主要用于在进行3D转换时控制元素的背面可见性。

当我们对一个元素应用3D转换(例如旋转或倾斜)时,默认情况下,元素的背面是不可见的,即不会显示在屏幕上。这是因为浏览器默认会进行背面剪裁(backface culling),以提高性能减少不必要的渲染。但有时候,我们可能需要让元素的背面可见,这时就可以使用 backface-visibility 属性来控制。

backface-visibility 属性有两个可能的值:

  • visible:表示元素的背面可见。背面将正常渲染并显示在屏幕上。
  • hidden:表示元素的背面不可见。背面将被隐藏,不会显示在屏幕上(这是默认值)

2. 演示使用

这个是案例是中午刷抖音看到渡一老师的视频 看到的, 双面卡片案例, 同时也第一次认识到了backface-visibility 属性. 然后自己就练了一下手, 顺便分享给大家.

效果是这样的:

jcode

3. 实现思路

  • 两个盒子重叠,这里用的是相对定位
  • 设置文字那个盒子一开始显示背面, 图片那个盒子正常显示(即正面).
  • 当鼠标悬停在外层的盒子上面的时候, img进行翻转,显示背面. 文字盒子进行翻转,显示正面
  • 最后设置img 和 文字盒子 元素 背面不可见 即:backface-visibility : hidden

代码:

html

    <div class="main">

        <div class="card">
            <img src="https://gd-hbimg.huaban.com/2d32cac77850cae23aec172c71c93f8411afbeec7723c-RCvaHn_fw658webp" alt="">
            <div class="text_box">
                哈哈哈
            </div>
        </div>

    </div>

css



        .main {
   
   
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100vw;
            height: 100vh;
            background-color: #2d2d2d;
        }

        /*  */

        .card {
   
   
            position: relative;
            /* width: 400px; */
            height: 200px;
            border-radius: 12px;
            /* display: flex; */
        }

        img {
   
   
            width: 200px;
            height: auto;
            transition: .5s linear;
            perspective: 500px;
            z-index: 2;
            border-radius: 12px;
        }

        .text_box {
   
   
            position: absolute;
            top: 0;
            left: 0;
            width: 200px;
            height: 200px;
            z-index: 1;
            text-align: center;
            line-height: 200px;
            font-size: 22px;
            font-weight: 600;
            background-color: #fff;
            /* 一开始展示反面 */
            transform: rotateY(180deg);
            border-radius: 12px;
            transition: .6s linear;
            perspective: 400px;
        }

        /*  鼠标划入 展示反面 */
        .card:hover img {
   
   
            transform: rotateY(-180deg);
        }   

        /* 鼠标划入 展示正面 */

        .card:hover .text_box {
   
   
            transform: rotateY(0deg);
        }


        /* 隐藏反面 */
        img,.text_box{
   
   
            backface-visibility: hidden;
        }

4. 兼容性

最后附上这个属性的兼容性:

兼容性还是很不错的

1.jpg

目录
相关文章
|
3月前
|
前端开发
CSS属性:盒子模型
CSS属性:盒子模型
38 0
|
3月前
|
前端开发
CSS属性
CSS属性
33 0
|
29天前
|
前端开发
CSS 浮动属性讲解和使用
本文介绍了CSS中的浮动(float)属性,包括其基本功能、属性选项及其在网页布局中的应用。浮动使元素脱离文档流,向左或右排列,周围元素随之调整。文章还详细讲解了清除浮动的方法,如使用clear属性、设置父元素高度、利用overflow属性、伪元素等,以解决因浮动导致的布局问题。最后,强调了浮动在创建复杂布局时的作用,并预告后续内容。
35 2
|
29天前
|
前端开发
CSS transition过渡属性详解
本文介绍了CSS中`transition`属性的作用、用法及实例。`transition`用于在元素属性变化时添加平滑过渡动画,通过设置`transition-property`、`transition-duration`、`transition-timing-function`和`transition-delay`等属性值,可以精细控制过渡效果。文末提供了HTML示例代码,展示了如何使用`transition`实现鼠标悬停时背景颜色的平滑变化。
44 1
|
1月前
|
Web App开发 前端开发 iOS开发
css所有缩写属性,CSS属性简写整理
css所有缩写属性,CSS属性简写整理
33 1
|
2月前
|
前端开发
CSS 中哪些属性可以继承
在 CSS 中,属性分为可继承与不可继承。可继承属性会在子元素中沿用父元素的样式设定。常见可继承属性包括:文本属性(如 `font-family`, `color`),列表属性(如 `list-style`),表格布局属性(如 `border-collapse`),以及其他如 `visibility` 和 `direction` 等属性。正确理解这些属性有助于更高效地进行样式设计。
|
1月前
|
前端开发
css简写属性
css简写属性
32 0
|
2月前
|
前端开发 JavaScript
如何在CSS中添加自定义属性
如何在CSS中添加自定义属性
20 0
|
2月前
|
前端开发
运用CSS伪类与属性,巧妙实现背景图片旋转效果
运用CSS伪类与属性,巧妙实现背景图片旋转效果
45 0
|
2月前
|
前端开发
哪些 CSS 属性可以继承?
哪些 CSS 属性可以继承?
53 0