Vue的if指令是在模板中控制元素是否展示的常用方式。我們知道CSS可以通過display屬性來控制元素的展示與隱藏,所以在Vue中我們也可以借助CSS來控制if指令的展示效果。
假設我們有一個簡單的Vue組件,內容如下:
<template>
<div v-if="showContent" class="content">
<p>這是顯示的內容</p>
</div>
</template>
<script>
export default {
data() {
return {
showContent: true
}
}
}
</script>
我們可能希望當showContent為false時,不僅隱藏內容,而且不占用空間。那么我們可以添加如下的CSS樣式:
.content {
display: none;
}
.content-show {
display: block;
}
然后在Vue中使用class綁定來達到效果:
<template>
<div v-if="showContent" :class="{'content': true, 'content-show': showContent}">
<p>這是顯示的內容</p>
</div>
</template>
這樣當showContent為true時,div元素會有.content和.content-show兩個類名,展示相應的效果;而當showContent為false時,div元素只有.content一個類名,展示display: none的效果。
上一篇vuex css兩端對齊
下一篇css選項卡片