CSS布局基础(九)(元素隐藏显示之 display , visibility,overflow 区别 & 盒子遮罩层实现的几种方式)

元素隐藏显示之 display , visibility,overflow 区别

相同点

三者都能控制元素的 显示与 隐藏

display: block|none;
visibility: visible|hidden;
overflow: visible(溢出内容直接显示,但优先级较低,被普通流覆盖)
 | hidden(不显示溢出部分)
 | auto (溢出时,以滚动条方式处理,不溢出时,无滚动条);
 | scroll (总是展示滚动调,即使没有溢出)

不同点

display 关注的元素的展示方式,隐藏只是其中一种形式,而且隐藏后不占据空间
visibility 仅仅用于设置元素是否可见,而且隐藏后依然占据空间
overflow 设置的溢出盒子的那一部分内容是否显示,溢出隐藏的部分不会影响布局,那一部分的 z-index 优先级很低,会被普通流挡住默认为溢出显示 visible

开启定位的盒子,慎用 overflow:hidden;可能会导致定位溢出的部分无法显示

opacity 渐进式隐藏显示

本意是透明度的设置,这个属性配合过渡切换比较柔和。
opacity: 0;全透明
opacity: 1;不透明

隐藏显示案例——盒子遮罩层

html 几种实现方式

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子遮罩层实现方式</title>
        <style>
            .box {
                position: relative;
                width: 228px;
                height: 155px;
                margin: 100px auto;
            }

            .box img {
                width: 100%;
                height: 100%;
            }

            .box .shadow {
                position: absolute;
                top: 0;
                left: 0;
                z-index: -1;
                width: 100%;
                height: 100%;
                background: url("https://wwc.alicdn.com/avatar/getAvatar.do?userNick=&width=60&height=60&type=sns&_input_charset=UTF-8") no-repeat center rgba(0, 0, 0, 0.2);
            }

            .box:hover .shadow {
                z-index: 1;
                /*display: block;*/
            }

            .box:hover {
                cursor: no-drop;
            }



            .box2 {
                position: relative;
                width: 228px;
                height: 155px;
                margin: 100px auto;
            }

            .box2 img {
                width: 100%;
                height: 100%;
            }
            .box2::before {
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: -1;
                background: url("https://wwc.alicdn.com/avatar/getAvatar.do?userNick=&width=60&height=60&type=sns&_input_charset=UTF-8") no-repeat center rgba(0, 0, 0, 0.2);
            }

            .box2:hover::before{
                z-index: 1;
            }

            
            .box3 {
                position: relative;
                width: 228px;
                height: 155px;
                margin: 100px auto;
            }

            .box3 img {
                width: 100%;
                height: 100%;
            }
            .box3::before {
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                display: none;
                background: url("https://wwc.alicdn.com/avatar/getAvatar.do?userNick=&width=60&height=60&type=sns&_input_charset=UTF-8") no-repeat center rgba(0, 0, 0, 0.2);
            }

            .box3:hover::before{
                display: block;
            }

            .box4 {
                position: relative;
                width: 228px;
                height: 155px;
                margin: 100px auto;
            }

            .box4 img {
                width: 100%;
                height: 100%;
            }
            .box4::before {
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                visibility: hidden;
                background: url("https://wwc.alicdn.com/avatar/getAvatar.do?userNick=&width=60&height=60&type=sns&_input_charset=UTF-8") no-repeat center rgba(0, 0, 0, 0.2);
            }

            .box4:hover::before{
                visibility: visible;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <img src="https://img.alicdn.com/imgextra/i2/O1CN01lFNk4Z1JDkviZe8EG_!!6000000000995-2-tps-846-472.png" alt="">
            <div class="shadow"></div>
        </div>
        <div class="box2">
            <img src="https://img.alicdn.com/imgextra/i2/O1CN01lFNk4Z1JDkviZe8EG_!!6000000000995-2-tps-846-472.png" alt="">
        </div>

        <div class="box3">
            <img src="https://img.alicdn.com/imgextra/i2/O1CN01lFNk4Z1JDkviZe8EG_!!6000000000995-2-tps-846-472.png" alt="">
        </div>
        <div class="box4">
            <img src="https://img.alicdn.com/imgextra/i2/O1CN01lFNk4Z1JDkviZe8EG_!!6000000000995-2-tps-846-472.png" alt="">
        </div>
    </body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS中的visibility属性用于控制元素的可见性。它有四个可能的取值:visible、hidden、collapse和inherit。\[1\] - visible:visible属性值定义的元素是可见显示的,这也是默认的属性值。 - hidden:hidden属性值定义的元素是不可见不显示的,但是元素还会占据原有的空间。 - collapse:collapse属性值定义不同的元素有不同的效果。在表格元素中,会删除一行或一列,但不会影响表格的布局;在非表格元素中,和hidden属性值的效果一样。 - inherit:inherit属性值定义的元素会继承父元素visibility属性值,即该元素visibility属性值与父元素的相同。\[1\] 与visibility属性不同,display属性可以通过display:none来隐藏元素,并且隐藏元素不会占用任何空间。也就是说,该元素不仅被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。\[3\] 总结来说,visibility属性可以控制元素的可见性,而display属性可以控制元素显示隐藏,并且隐藏元素不占用空间。 #### 引用[.reference_title] - *1* [CSSvisibility 属性](https://blog.csdn.net/weixin_49272677/article/details/113802739)[target=&quot;_blank&quot; data-report-click={&quot;spm&quot;:&quot;1018.2226.3001.9630&quot;,&quot;extra&quot;:{&quot;utm_source&quot;:&quot;vip_chatgpt_common_search_pc_result&quot;,&quot;utm_medium&quot;:&quot;distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt&quot;}} ] [.reference_item] - *2* [CSS visibility](https://blog.csdn.net/jjlome/article/details/121692600)[target=&quot;_blank&quot; data-report-click={&quot;spm&quot;:&quot;1018.2226.3001.9630&quot;,&quot;extra&quot;:{&quot;utm_source&quot;:&quot;vip_chatgpt_common_search_pc_result&quot;,&quot;utm_medium&quot;:&quot;distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt&quot;}} ] [.reference_item] - *3* [web前端学习(二十二)&mdash;&mdash;CSS3元素显示display)、可见性(visibility)与溢出(overflow)属性的相关...](https://blog.csdn.net/weixin_43823808/article/details/113548969)[target=&quot;_blank&quot; data-report-click={&quot;spm&quot;:&quot;1018.2226.3001.9630&quot;,&quot;extra&quot;:{&quot;utm_source&quot;:&quot;vip_chatgpt_common_search_pc_result&quot;,&quot;utm_medium&quot;:&quot;distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt&quot;}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值