前端 - 谁来解释下这两个 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. mysql - mybatis select语句问题2. docker start -a dockername 老是卡住,什么情况?3. angular.js - angularjs中的拦截器会拦截哪些请求?4. java内存模型的happens-before语义顺序问题5. python运行后没有任何反馈要怎么排查6. javascript - vue+webpack项目中src属性里面的波浪线是什么意思?7. java - 配置tomcat免安装版,无法启动 返回错误码48. linux - 打不开nginx默认页面9. python - Scrapy存在内存泄漏的问题。10. logging - Python日志, 时间应该使用UTC时间还是本地时间?
