html设置元素可见性,CSS Display(显示) 与 Visibility(可见性) | 菜鸟教程

CSS Display(显示) 与 Visibility(可见性)

display属性设置一个元素应如何显示,visibility属性指定一个元素应可见还是隐藏。

Box 1

191636640_1_2020052907132481.jpg

Box 2

191636640_2_20200529071324144.jpg

Box 3

191636640_3_20200529071324175.jpg

隐藏元素 - display:none或visibility:hidden

隐藏一个元素可以通过把display属性设置为'none',或把visibility属性设置为'hidden'。但是请注意,这两种方法会产生不同的结果。

visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

实例

h1.hidden {visibility:hidden;}

尝试一下 »

display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

实例

h1.hidden {display:none;}

尝试一下 »

CSS Display - 块和内联元素

块元素是一个元素,占用了全部宽度,在前后都是换行符。

块元素的例子:

内联元素只需要必要的宽度,不强制换行。

内联元素的例子:

如何改变一个元素显示

可以更改内联元素和块元素,反之亦然,可以使页面看起来是以一种特定的方式组合,并仍然遵循web标准。

下面的示例把列表项显示为内联元素:

实例

li {display:inline;}

尝试一下 »

下面的示例把span元素作为块元素:

实例

span {display:block;}

尝试一下 »

注意:变更元素的显示类型看该元素是如何显示,它是什么样的元素。例如:一个内联元素设置为display:block是不允许有它内部的嵌套块元素。

191636640_4_20200529071324206.gif

更多实例

这个例子演示了如何显示一个元素的内联元素。

这个例子演示了如何显示一个元素的块元素。

这个例子演示了如何使用表的collapse属性。

### Vue 中动态隐藏 `span` 标签的实现方式 在 Vue.js 中,可以通过绑定条件渲染指令 `v-if` 或 `v-show` 来动态控制 DOM 元素显示隐藏。以下是基于所提供的引用内容[^1]以及常见实践的具体方法。 #### 方法一:使用 `v-show` 通过 `v-show` 指令可以轻松实现元素的显隐切换。它会根据表达式的布尔值来设置 CSS 属性 `display` 的值为 `none` 或保留默认状态。这种方式不会移除 DOM 节点,仅改变其可见性。 ```html <template> <div> <ul> <li v-for="item in items" :key="item.id" @click="toggle(item)"> <!-- 使用 v-show 控制 span 显示/隐藏 --> <span v-show="item.show">{{ item.content }}</span> </li> </ul> </div> </template> <script> export default { data() { return { items: [ { id: 1, content: "This is item 1", show: true }, { id: 2, content: "This is item 2", show: false }, { id: 3, content: "This is item 3", show: true } ] }; }, methods: { toggle(item) { item.show = !item.show; } } }; </script> ``` 上述代码展示了如何利用点击事件触发 `toggle` 函数,从而更改对象属性 `show` 的值,进而影响 `span` 的显示状态[^1]。 --- #### 方法二:使用 `v-if` 如果希望完全销毁或创建 DOM 节点,则应选用 `v-if` 指令替代 `v-show`。此方法适用于需要频繁更新数据结构或者性能优化场景下的操作。 ```html <template> <div> <ul> <li v-for="item in items" :key="item.id"> <!-- 使用 v-if 判断是否渲染该节点 --> <span v-if="item.show">{{ item.content }}</span> </li> </ul> <button @click="updateItems">Toggle All Items</button> </div> </template> <script> export default { data() { return { items: [ { id: 1, content: "Item One", show: true }, { id: 2, content: "Item Two", show: false }, { id: 3, content: "Item Three", show: true } ] }; }, methods: { updateItems() { this.items.forEach((item) => (item.show = !item.show)); } } }; </script> ``` 在此示例中,当按钮被按下时调用 `updateItems()` 方法翻转所有项的状态并重新评估模板中的逻辑。 --- #### 结合样式限制文本长度 除了简单的显隐功能外,还可以配合 CSS 设置让过长的内容自动截断,并提供工具提示展示完整信息[^2]: ```css <style scoped> .truncate-text { color: #00afff; font-size: 20px; margin-bottom: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 提供鼠标悬浮效果 */ .truncate-text:hover { cursor: pointer; } </style> ``` 将这些样式应用于目标 `<span>` 上即可达到既定目的[^2]。 --- ### 总结 无论是采用 `v-show` 还是 `v-if` 方案都可以满足需求;而针对特殊情况下还需要额外考虑用户体验设计方面的要求,比如超长字符串处理等问题则需引入适当样式的辅助支持。 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值