线性渐变文本中使用&符号致文本消失的解决方法咨询
解决线性渐变文本中&符号导致部分内容消失的问题
问题原因
HTML里的&是特殊字符,属于实体引用的起始标记。当直接写NEWS & EVENTS时,浏览器会尝试解析&后面的内容为实体名称,但这里&后是空格,属于无效实体;结合-webkit-background-clip: text和-webkit-text-fill-color: transparent这类文本渐变样式时,webkit内核的渲染bug会导致后续文本无法正常渲染,最终出现EVENTS消失的情况。而#不是HTML特殊字符,不会触发这个解析和渲染问题。
解决方案
方案1:使用HTML实体代替直接写&
这是最稳妥的方法,将HTML中的&替换为&(&的标准HTML实体),浏览器会正确解析为&符号,文本渲染恢复正常。
修改后的HTML代码:
<div class="background"> <h1 class="title">NEWS & EVENTS</h1> <h1 class="title">NEWS # EVENTS</h1> </div>
方案2:CSS强制保留文本格式
如果不想修改HTML,可以给.title类添加white-space: pre属性,强制浏览器保留文本的原始格式,避免特殊字符解析异常影响渲染。不过这个方法可能会改变文本的换行和空格处理方式,需要根据布局需求调整。
修改后的CSS代码:
.title { width: 1438px; height: 142px; left: 94px; top: 201px; font-family: "Eurostile"; font-style: normal; font-weight: 900; font-size: 180px; line-height: 78.8%; /* identical to box height, or 142px */ text-align: center; text-transform: uppercase; background: linear-gradient(95.99deg, #CE9B58 25.39%, #FFEC83 73.41%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; white-space: pre; /* 添加该行 */ }
内容的提问来源于stack exchange,提问作者jack
相关产品推荐
相关产品推荐

