前端 - 谁来解释下这两个 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. html - 爬虫时出现“DNS lookup failed”,打开网页却没问题,这是什么情况?2. javascript - echart+百度地图3. html - 求大神!angularjs中锚点链接怎么不能用?在angular中有无类似锚点链接功能4. web - Rails3使用form_for时出现undefined method `*_path’错误。5. 无效的配置对象已使用与API模式不匹配的配置对象初始化了Webpack6. css - autoprefixer没有添加web-kit前缀7. javascript 开发百度地图8. nginx - 关于vue项目部署到ngnix后出现的问题9. angular.js - 百度爬虫如何处理“#”符号?10. nosql - mongodb 多组数据不固定字段查询问题 [百度党请绕道]
