整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

广州蓝景技术分享—CSS中实现元素的隐藏方法

ello~~各位小伙伴,今天我们广州蓝景实训部,继续和大家分享前端技术干货,CSS隐藏元素

总结出7种隐藏元素的办法

1.CSS display的值是none。(该元素是不会在页面上显示的)

div{
    display: none;
}


2. type="hidden"的表单元素。(该元素是不会在页面上显示的)

3. 宽度和高度都显式设置为0。(该元素会在页面上显示)

div{
    width: 0;
    height: 0;
}

4. 一个祖先元素是隐藏的,(该祖先以及祖先以下的元素是不会在页面上显示)

5. CSS visibility的值是hidden(该元素是会在页面上显示,还占原来的位置)

div{
    visibility: hidden;
}

6. CSS opacity的指数是0(该元素是会在页面上显示,还占原来的位置)

div{
    opacity: 0;
}

7. 将position设为absolute然后将位置设到不可见区域

div{
   position: absolute;
   top: -9999px;
   left: -9999px;
}

想要了解更多web前端开发技术资料,可在评论区留言!也可添加我们微信:philip_tan

为一个优秀的前端,我们经常遇到需要隐藏网页上的元素的情况。在本文中,我们将分享8 种在 CSS 中隐藏元素的方法,每种方法都有优点和注意事项。

Opacity and Filter:Opacity

隐藏元素最简单的方法之一是调整其不透明度。opacity 属性允许我们通过将其值设置为 0 来使元素完全透明。例如:

.element {
  opacity: 0;
}

或者,我们可以将过滤器属性与 opacity() 函数一起使用:

.element {
  filter: opacity(0);
}

opacity 和 filter: opacity() 都可以设置动画并提供良好的性能。但是,需要注意的是,即使完全透明,元素仍保留在页面上并且仍然可以触发事件。

Visibility

Visibility属性允许我们控制元素的可见性。通过将其设置为隐藏,我们可以隐藏元素,同时保留它在布局中占用的空间。例如:

.element {
  visibility: hidden;
}

默认情况下,辅助技术仍然可以访问隐藏元素的内容,因此考虑对可访问性的影响非常重要。要完全隐藏内容,可能需要其他 CSS 属性或 ARIA 属性,例如 aria-hidden="true"。

Display

display 属性是一种广泛使用的隐藏元素的方法。通过将其设置为 none,我们可以有效地从文档流中删除该元素,使其就像在 DOM 中从未存在过一样。例如:

.element {
 display: none;
}

虽然 display: none 是一个流行的选择,但它有一些局限性。它无法设置动画,并且应用时会触发布局更改,从而影响页面上其他元素的位置。为了缓解这种情况,我们可以使用其他技术,例如定位。

Hidden 属性

在 HTML 中,我们有隐藏属性,可以将其添加到任何元素以隐藏它。当存在hidden属性时,浏览器应用其默认样式,相当于设置display:none。例如:

<p hidden>Hidden content</p>

当标签的样式不允许被改变时,此属性非常有用。但是,它与使用 display :none有相同的优点和限制。

使用 z-index

z-index 属性控制 z 轴上元素的堆叠顺序。给覆盖元素分配更高的z-index值,我们可以在视觉上隐藏其下方的元素。例如:

.element {
  position: relative;
  z-index: 1;
}


.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #ffffff; /* Same as the page background color */
  z-index: 2;
}

在此示例中,覆盖元素位于使用较高 z-index 值的元素之上。

Color AIpha Transparency

我们还可以单独隐藏特定的视觉属性,例如颜色、背景颜色或边框颜色,而不是使整个元素透明。这项技术使我们能够创建有趣的效果和动画。我们可以通过将 alpha 通道设置为 0 的 rgba() 值来实现这一点。例如:

.element {
  color: rgba(0, 0, 0, 0);
  background-color: rgba(0, 0, 0, 0);
  border-color: rgba(0, 0, 0, 0);
}

值得注意的是,这种技术可能不适用于具有图像背景的元素,除非它们是使用线性渐变或类似方法生成的。

CIip-Path

Clip-path 属性允许我们创建一个剪切区域来确定元素的哪些部分是可见的。通过设置一个值,例如circle(0),我们可以完全隐藏该元素。例如:

.element {
  clip-path: circle(0);
}

使用剪辑路径为有趣的动画提供了范围。

clip-path 属性可以用于创建复杂的裁剪形状,从而实现各种有趣的效果。在这种情况下,使用 circle(0) 作为裁剪路径,是为了将元素完全裁剪掉,即不显示任何内容。

需要注意的是,clip-path 是一个比较新的 CSS 属性,不是所有浏览器都支持它。另外,即使浏览器支持 clip-path,也有可能出现一些兼容性问题,因此在使用 clip-path 时需要进行充分的测试和兼容性处理。

绝对定位

位置属性允许我们将元素从页面布局中的默认位置移动。通过使用position:absolute,我们可以将元素重新定位到屏幕外,从而有效地将其隐藏。例如:

.element {
  position: absolute;
  left: -9999px;
}

绝对定位提供了出色的浏览器支持,并且元素的原始尺寸保持不变。但是,需要注意的是,更改位置可能会影响页面的整体布局。此外,屏幕外的元素可能无法交互,因为它们不再位于视口内。

结论

总之,CSS 提供了多种技术来隐藏网页上的元素。通过了解每种方法的优点和局限性,我们可以为我们的特定用例选择最合适的方法。

1)定义n初始值0,

<script>
    Vue.config.productionTip = false
    const vm = new Vue({
        el: "#app",
        data: {
            "n": 0
        },
        methods: {},
        computed: {},

    })
</script>

(2)定义自加按钮,展示n的值,和判断结果

<p><a class="btn btn-block btn-primary" @click="n++">自加</a></p>
<h2>n == {{n}}</h2>
<h3 v-text="n == 1"></h3>

1、v-show

<h1 style="color: red">使用v-show进行条件渲染</h1>
<h3 v-show="n == 1">使用v-show进行条件渲染</h3>

2、v-if

<h1 style="color: red">使用v-if进行条件渲染</h1>
<h3 v-if="n == 1">使用v-if进行条件渲染</h3>

3、v-if v-else-if v-else

<h1 style="color: red">使用if else-if else进行条件渲染 </h1>
<h3 v-if="n === 1">使用v-if进行条件渲染 if else-if - v-if="n === 1"</h3>
<h3 v-else-if="n == 2">使用v-if进行条件渲染 if else-if - v-else-if="n == 2"</h3>
<h3 v-else-if="n == 3">使用v-if进行条件渲染 if else-if - v-else-if="n == 3"</h3>
<h3 v-else>使用v-if进行条件渲染 if else-if - v-else</h3>

4、template

<h1 style="color: red">使用template v-if进行条件渲染 </h1>
<template v-if="n == 1">
    <h3>使用v-if进行条件渲染 - template v-if="n == 1"</h3>
    <h3>使用v-if进行条件渲染 - template v-if="n == 1"</h3>
    <h3>使用v-if进行条件渲染 - template v-if="n == 1"</h3>
</template>

执行结果

笔记分享

<pre v-show="true">
    条件渲染:
    1、v-if
        写法:
            (1)v-if = "表达式"
            (2)v-else-if = "表达式"
            (3)v-else = "表达式"
        适用于:切换频率较低的场景
        特点:不展示的DOM元素将被直接删除
        注意:v-if和v-else-if、v-else一起使用的时候,要求结构不可以被打断
    2、v-show
        写法:v-show = "表达式"
        适用于:切换频率较高的场景
        特点:不展示的DOM元素未被移除,使用样式进行隐藏
    3、备注
        使用v-if时,元素可能无法获取到,使用v-show是可获取到的
    4、使用template v-if
        写的时候template对内容进行了包裹,
        等最终页面渲染的时候,将把template标签删掉,
        这也就是说不破坏原来的样式。
        但是template只能配合v-if进行使用。
</pre>

源码截图