css - iOS 上的 Safari 在使用 background-clip 和 text-fill-color 结合一些伪元素时不显示文本

标签 css iphone text safari invisible

我很难解开这个谜团。我创建了一个“挖空文本”效果,并使用 :after 添加了一个分隔符到 h2。除了 iOS (10.3.2) 上的 Safari 之外,它在我测试过的所有内容上看起来都很棒。

Link to fiddle带有损坏的临时修复程序。

h2.gradient {
    color: #013c65;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 2em;
    line-height: 1em;
    background: linear-gradient(1deg, #800909, #332222);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
    -ms-background-clip: text;
    -ms-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;
}
h2.gradient:after {
    content: '';
    position: relative;
    display: block;
    height: .12em;
    width: 2.5em;
    background-image: linear-gradient(1deg, #800909, #332222);
    top: .5em;
}

看起来问题似乎与组合 background-clip: text; 有关, text-fill-color: transparent; ,以及伪元素:display: block; .

我能够绝对定位并显示内联 block 伪元素。目前,我将 header 包装在 <div class="special-heading"> 中并在 div 之后添加分隔符。

是否有 iOS 不喜欢这个的原因或者是否有其他人遇到过类似的问题?我发现添加一个零宽度空间 &#8203;神奇地让它发挥作用。

不过,我认为这可能是一个错误,因为在我的 Mac 上打开网络检查器时,我偶尔可以使用原始方法。

谢谢你的想法!

最佳答案

找到 this fix .将此添加到具有创建渐变文本属性的元素:

-webkit-box-decoration-break: clone;

关于css - iOS 上的 Safari 在使用 background-clip 和 text-fill-color 结合一些伪元素时不显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963978/

相关文章:

iphone - iOS:何时使用多个 NIB 或同一 NIB 上的多个 View ?

javascript - 如何将 JSON 文本数组转换为 JavaScript 数组?

css - 与 Chrome 相比,Firefox 忽略了 SVG 文本中的多个空格并将它们显示得更小

html - 让 div 转到右上角的最佳方法是什么?

html - 网站上的 "W3C Markup Validator"按钮是做什么用的?

html - 在带有文本的图标 Sprite 图像之间淡入淡出

javascript - 与 HTML/CSS 中的宽度相比更改元素高度

iphone - NSManagedObject 如何重新加载

iphone - uiwebview 和 mobile safari 的区别

复制文本文件错误