代码的html结构如下面代码所示

<template>
<div class="appArea" v-for="item in EAIApps.apps">
<span>{{ item.title }}</span>
<div class="apps" v-if="item.hasOwnProperty('children')">
<div class="item" v-for="child in item.children">
<center @click="jump(child)">
<div class="circle">{{ child.title.substring(0, 1) }}</div>
<center>
<span class="listItem">{{ child.title }}</span>
</center>
</center>
</div>
<van-empty description="暂无菜单" v-if="EAIApps.apps.length == 0" />
</div>
</div>
<van-tabbar v-model="active">
<van-tabbar-item icon="home-o" @click="goToPage('main')"
>首页</van-tabbar-item
>
<van-tabbar-item icon="setting-o" @click="goToPage('settings')"
>设置</van-tabbar-item
>
</van-tabbar>
</template>

我想要给最后一个appArea增加20像素的底部内边距,于是我写了:

.appArea:last-child {
padding-bottom: 20px;
}

发现没有效果。

经过查阅资料,我了解到.appArea:last-child选择器的意思是选择类名为appArea并且该元素为父节点下最后一个元素。

而该html结构父节点下最后一个元素并不是appArea,所以无效。

解决方法:

改为

.appArea:nth-last-child(2) {
padding-bottom: 20px;
}

即可,意为选择类名为appArea并且该元素为父节点下倒数第二个元素。