前端 - 谁来解释下这两个 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. 引用 node.js express加载 静态文件 报错 ??2. javascript - 引入 simditor,但是显示标签,这个怎么解决。3. angular.js - 全站用的angular,但是像下面描述的这样强交互的功能用angular该用什么思路去做呢?4. angular.js - 学习ng路由模块遇到点击链接到锚点时URL后面多出个#!是怎么回事5. angular.js - 如何让图片遇到父容器边缘自动换行显示,不会溢出6. android - 目前有哪些用Vue.js开发移动App的方案?7. angular.js - 关于ui-sref地址栏缺省的问题8. index.php错误,求指点9. 只有一条数据10. 横屏滑动的怎么做