Veg*_*ega 5 css bootstrap-4 angular
我正在寻找一种<ul>在列表为空时删除“下拉菜单”标签上的填充的方法,因此没有显示而不是与填充相对应的狭窄空间。我不想这样做.dropdown{padding: 0},因为它会在它不为空时删除必要的填充。但.dropdown:empty{padding:0}不起作用,因为内容不为空,仅由 *ngIf 过滤(我猜,虽然我知道 Angular 从 DOM 中删除了元素)。
<ul role="menu" class="dropdown-menu">
<li *ngFor="let option of options">
<span *ngIf="option.condition;then template1 else template2">
</span>
<ng-template #template1>some content</ng-template>
<ng-template #template2>some content</ng-template>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
只需将 on 父级替换padding为marginson 第一个和最后一个子级即可:
.dropdown-menu {
padding-top: 0;
padding-bottom: 0;
}
.dropdown-menu > li:first-child {
margin-top: 15px;
}
.dropdown-menu > li:last-child {
margin-bottom: 15px;
}
Run Code Online (Sandbox Code Playgroud)
请注意,这里的选择器是通用的。您需要更改它们以适用于您的特定示例,并且不影响其他.dropdown-menu可能不应该受到影响的实例。
另外,15px是通用尺寸。您应该在顶部和底部填充中使用相同的值和单位.dropdown-menu。