Materialize卡片truncate截断功能失效问题求助
解决Materialize卡片标题truncate失效的问题
我来帮你排查这个文本截断没生效的问题,之前我在项目里也碰到过类似情况,大概率是容器宽度约束不足或者样式被覆盖导致的,给你几个具体的解决思路:
给卡片或父容器设置明确宽度
Materialize的truncate类生效的前提是,元素所在的父容器有固定宽度或者最大宽度限制,否则卡片会跟着文本无限撑开。你可以直接给.card设置固定宽度,或者把卡片放在Materialize的网格col组件里让它继承布局宽度:<!-- 给卡片添加固定宽度示例 --> <div class="card hoverable waves-effect waves-light" style="width: 320px;"> <div class="card-image" id="house-pic" style="height: auto;"> ... </div> <div class="card-content" style="padding-left: 0px; padding-right: 0px; width: 100%;"> <span class="detail truncate card-title activator" style="font-size: 17px;">{{house.address}}</span> </div> </div>检查truncate核心样式是否被覆盖
truncate类的核心是三个CSS属性:white-space: nowrap;、overflow: hidden;、text-overflow: ellipsis;,如果你的自定义样式或者其他第三方样式把这些属性覆盖了,截断就会失效。可以打开浏览器开发者工具查看元素的computed样式,确认这三个属性是否都生效。如果被覆盖了,可以手动加强样式优先级:.detail.truncate.card-title { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }确保card-content的宽度约束
你给.card-content设置了左右padding为0,但要确保它的宽度是填满卡片的,加上width: 100%;可以让它继承卡片的宽度,这样里面的标题元素才有明确的宽度限制来触发截断效果。
先试试第一个方法,给卡片加固定宽度,这是最常见的解决方式,一般就能搞定。如果还是不行再检查样式覆盖的问题~
内容的提问来源于stack exchange,提问作者Adam LaMorre
相关产品推荐
相关产品推荐

