前端 - 谁来解释下这两个 CSS selector 区别
PHP中文网
PHP中文网 2017-04-17 11:52:55
[CSS3讨论组]

错误代码:

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

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
PHP中文网

貌似是浏览器bug

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号