如何移除WKWebView中未设置的文本阴影?
解决WKWebView中文本莫名出现阴影的问题
你遇到的问题大概率是因为HTML里的CSS存在语法错误,导致浏览器解析异常产生了意外阴影。先看你写的p标签样式:
p{ font-size:26pt; {font-family: 'Fira Sans', sans-serif;}
这里多了一个左大括号,属于无效的CSS语法,浏览器容错渲染时可能会出现各种奇怪的样式问题,包括你看到的文本阴影。
解决办法:
- 修正CSS语法错误
把p标签的样式改成正确的写法:
p{ font-size:26pt; font-family: 'Fira Sans', sans-serif; }
- 全局强制移除文本阴影
给所有元素添加text-shadow:none,并且用!important确保覆盖所有可能的默认或异常样式:
* { text-shadow: none !important; }
修正后的完整Swift代码示例:
let str = "<!DOCTYPE html> <html> <head> <link href='https://fonts.googleapis.com/css?family=Fira Sans Condensed' rel='stylesheet'> <style> * {text-shadow: none !important;} body {font-family: 'Fira Sans Condensed';} .image {width: 100%; height: auto;} .bg-white { background: rgba(255, 255, 255, .7); border-radius:40px; padding: 20px; }html { padding: 10px;} h2 {\(titleColor ?? "font-size:40pt; color:#000000;")} p{ font-size:26pt; font-family: 'Fira Sans', sans-serif;} .bold{font-weight:bold;}.italic{font-style: italic;}.oblique{font-style: oblique;} strong{font-size:30pt} </style> </head> <body><div class='bg-white'>\(htmlstr) </div> </body> </html>"
另外你之前试的-webkit-tap-highlight-color是用来移除点击高亮效果的,和文本阴影没关系,所以不会起作用。
内容的提问来源于stack exchange,提问作者Jessica Kimble
相关产品推荐
相关产品推荐

