阅读:2811回复:4
已解决 [stylish/stylus/xStyle] 有办法让css样式,*不*对iframe里的节点生效吗?
小白不知道怎么用技术语言描述
举栗子,比如有个html::before的规则,想只对顶层document的html有效,对iframe里的html节点不生效 ——怎么做到呢? 写脚本可以做,但启用禁用就必须刷新才能生效,所以还是想尽量用样式来做。google了半天,没找到啥有用方案: https://stackoverflow.com/questions/16428067/apply-css-to-html-but-not-iframe-html |
|
1楼#
发布于:2019-01-17 12:47
单纯的css没法判定。如果iframe有src属性,倒是可以直接在扩展的css应用范围里设置。否则只能利用iframe中内容结构的差异点来处理
stylus会给iframe的html节点加上个stylus-iframe属性,可以根据这点来写规则 html:not([stylus-iframe]) body { background: red; } |
|
2楼#
发布于:2019-01-18 06:27
taoww:单纯的css没法判定。如果iframe有src属性,倒是可以直接在扩展的css应用范围里设置。否则只能利用iframe中内容结构的差异点来处理谢谢,请问stylus加这个属性,有什么其它触发条件么? 我测试了很多页面,例如以这个页面为例子:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/iframe iframe下的html并没有添加这个属性(stylus用的最新版本): 图片:5c40fec5a3065[1].png |
|
3楼#
发布于:2019-01-18 11:06
喜马拉雅:谢谢,请问stylus加这个属性,有什么其它触发条件么? stylus的设置里有一个选项 图片:Snipaste_2019-01-18_11-07-55.png 除此之外目前看来还有两个条件。一是要有可以应用到上层页面的样式规则,二是iframe没有src属性(比如本论坛发表回复的高级模式的编辑框)。这两者都满足了才会加上stylus-iframe属性。对有src属性的,可以直接通过设置扩展中的样式应用范围来限制,一般也不需要用到这个属性 下面就是为firefox.net.cn应用了上面那段css代码后的效果 图片:Snipaste_2019-01-18_10-54-37.png |
|
4楼#
发布于:2019-01-18 17:16
哇,谢谢,原来旮旯角落里还有这个选项,用了stylus这么久都不知道……试验一下成功了,太感谢太感谢了
有src属性就用属性选择符过滤好啦,问题不大哈哈 |
|