CSS过滤器无法在Chrome&中使用.火狐浏览器 [英] CSS Filter not working on body in Chrome & Firefox

查看:80
本文介绍了CSS过滤器无法在Chrome&中使用.火狐浏览器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个chrome扩展程序,该程序可以对色盲测试进行一些过滤,并希望使用css/svg过滤器,但是过滤器存在问题,不会影响人体背景.

有什么建议吗?

链接到Codepen(在Chrome中测试)或查看以下屏幕截图:

Safari:

解决方案

所以我找到了一个解决方案(不满意),但设置了背景属性,如 background-color:洋红色; html上的> background-image:url("); 修复了chrome和Firefox中的问题

链接到工作版本: http://codepen.io/larsenwork/pen/mWbjJY?editors=1100

  html {滤镜:灰度(100%);背景色:洋红色;}身体,div {背景色:青色;} 

I want to create a chrome extension that does some filtering for color blindness testing and wanted to use css/svg filters but have a problem with filters not affecting body background.

Any suggestions?

Link to codepen (test in Chrome) or see screenshots below: http://codepen.io/larsenwork/pen/oZvdzX/?editors=1100

html {
	filter: grayscale(100%);
}

body, div {
	background-color: cyan;
}



/* Codepen style (ignore) */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body { 
	min-height: 100vh;
	padding: calc(3vh + 3vw);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	font-family: sans-serif;
	font-weight: 700;
	font-size: calc(3vh + 3vw);
	line-height: 1.3;
}

div {
	margin: 0 calc(-.5vh - .5vw);
	padding: 0 calc(.5vh + .5vw);
}

small { 
	font-size: .6em;
	margin-top: 2em;
}

pre {
	font-weight: normal;
}

In Chrome: Why is the body bg not gray
<div>When this is?</div>





<small>Same result (i.e. not applied to body) with e.g. <pre>filter: hue-rotate(90deg);</pre>or<pre>filter: url("#grayscale");</pre></small>

<!-- Used for alt filter test -->
<svg version='1.1' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='saturate' values='0'/></filter></svg>

Chrome + Firefox:

Safari:

解决方案

So I found a solution (not happy with it) but setting a background property like background-color: magenta; or background-image: url(""); on the html fixes the issue in chrome and Firefox

Link to working version: http://codepen.io/larsenwork/pen/mWbjJY?editors=1100

html {
    filter: grayscale(100%);
    background-color: magenta;
}

body, div {
    background-color: cyan;
}

这篇关于CSS过滤器无法在Chrome&amp;中使用.火狐浏览器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆