前端 - 誰來解釋下這兩個 CSS selector 區別
問題描述
錯誤代碼:
input { padding: 4px 0; // https://css-tricks.com/almanac/selectors/p/placeholder-shown/ &:focus:not(:placeholder-shown) + .input__clear, &.input--filled:focus + .input__clear { opacity: 1; }}
正確代碼:
input { padding: 4px 0; // https://css-tricks.com/almanac/selectors/p/placeholder-shown/ &:focus:not(:placeholder-shown) + .input__clear { opacity: 1; } /* !!! 不能和上面的合并成一行,會導致下面的選擇器無法匹配 */ &.input--filled:focus + .input__clear { opacity: 1; }}
demo 見https://jsfiddle.net/mLz7rajf/3/https://jsfiddle.net/mLz7rajf/5/正確情況應該是在不支持:placeholder-shown的瀏覽器(比如Firefox, 或者將placeholder-shown,隨便改成一個無法識別的偽類),輸入內容后顯示 Clear
問題解答
回答1:貌似是瀏覽器bug
相關文章:
1. angular.js - 輸入郵箱地址之后, 如何使其自動在末尾添加分號?2. 如何解決docker宿主機無法訪問容器中的服務?3. javascript - 如何使用nodejs 將.html 文件轉化成canvas4. javascript - Web微信聊天輸入框解決方案5. angular.js - $stateChangeSuccess事件在狀態跳轉的時候不執行?6. javascript - 后臺管理系統左側折疊導航欄數據較多,怎么樣直接通過搜索去定位到具體某一個菜單項位置,并展開當前菜單7. python - Scrapy存在內存泄漏的問題。8. 如何用筆記本上的apache做微信開發的服務器9. java如何生成token?10. CSS3 畫如下圖形
