最近開發iPhone上的富文本編輯器(參考 Rich-Text Editing in Mozilla), 遇到了與-webkit-tab-highlight-color
相關的一些問題, 但未見到過討論類似問題的文章, 故撰文總結.
點擊編輯器區域(頂級容器是 div[contenteditable=true]
)以編輯內容時, 會出現以下情況:
由於:
body
設置contenteditable=true
)也有以上問題.於是, 將問題交與iOS開發工程師, 但亦不能解決. 問題只好掛起, 藏心中.
後來在處理鏈接的點擊特效, 心中忽然靈機一動:
使用-webkit-tab-highlight-color: rgba(0, 0, 0, 0);
一試, 不但解決了第1, 2個問 題, 而且解決了第3個問題.
先查了一下-webkit-tab-highlight-color
的官方文檔 Safari
CSS Reference, 有以下描述:
-webkit-tap-highlight-color
Overrides the highlight color shown when the user taps a link or a JavaScript clickable element in Safari on iOS.
Syntax
-webkit-tap-highlight-color: color;
Parameters
color
The tapped link color.
Discussion
This property obeys the alpha value, if specified. If you don’t specify an alpha value, Safari on iOS applies a default alpha value to the color. To disable tap highlighting, set the alpha value to 0 (invisible). If you set the alpha value to 1.0 (opaque), the element is not visible when tapped.
Availability
Available in iOS 1.1.1 and later.
Support Level
Apple extension—Safari on iOS only.
分析以上資料得出:
link
和clickable的元素默認有tab-highlight特效color
的alpha
值為0
可以禁用tab-highlight特效結合工程中的問題, 可以得出:
contenteditable=true
的元素是clickable的, iOS上默認有tab-highlight特效.