html - Angular:显示或隐藏元素而不影响元素间距
问题描述
我有一排包含品牌名称和图像等信息的 div。如果品牌有名称,我想显示它,否则将其留空。问题不在于所有产品都有品牌名称。无论是否有名称,我都希望保持间距一致。
我已经尝试过 ngIf 和 hidden 指令,但都没有想要的结果。
<div *ngFor="let product of products">
<h5 class="product-brandname" [hidden]="!product.brandname">{{product.brandname}}</h5>
<img/>
etc...
</div>
https://www.dropbox.com/s/ucs51qugchvfxso/Screen%20Shot%202019-01-28%20at%202.03.48%20PM.png?dl=0
解决方案
为确保h5
元素不会折叠,请将不可破坏的空格设置为默认值:
<h5 class="product-brandname">{{ product.brandname || " " }}</h5>
如果你真的想隐藏h5
仍然占据相同空间的空元素,请将它们的样式可见性属性设置为hidden
. 在这种情况下,默认文本可以是任何非空字符串:
<h5 class="product-brandname" [style.visibility]="product.brandname ? 'visible' : 'hidden'">
{{ product.brandname || "Any text" }}
</h5>
请参阅此 stackblitz以获取演示。
推荐阅读
- python-3.x - 如何使用 SSIM 或与“纯 python”或 Pythonista 兼容的类似算法比较两张 PIL.Image JPEG 照片(相同大小)?
- c# - 可以做些什么来防止多人黑客攻击?
- r - R:如何将 x 聚合并分离成多个列?有趣 = 独一无二
- gradle - 查看存储库中是否存在 Gradle 构建中较新版本的工件
- r - 在 R 中使用 ggmap 和 ggplot2 进行映射:(警告消息:1:`panel.margin` 已弃用。2:删除了没有值的行)
- linker - ctype 加载的共享库符号也在 glibc 中定义;如何选择符号?
- git - 如何在修订版中“穿越” git 存储库?
- c# - 使用 Autofac 创建运行时类型的实例
- python - 如何获取用户名 Python
- javascript - 将一系列 Promise 集成到现有链中