Css -moz背景剪辑:文本;在Mozilla更新中
之前的几篇文章似乎指出,Css -moz背景剪辑:文本;在Mozilla更新中,css,firefox,Css,Firefox,之前的几篇文章似乎指出,-moz背景剪辑:text在Mozilla中不可用。 是否有可能从Firefox和其他浏览器中隐藏看起来是专有的WebKit-only CSS功能?我想隐藏伪“after”规则,该规则将文本内容添加到页面中,以实现Firefox和IE等的预期效果 这是我的网站,文本在Firefox中呈现得很糟糕,但在Chrome中呈现得很好 解决方案有一些不同的方法,您可以使用这些方法对FF和其他浏览器隐藏特定的CSS属性。不过有点乱 您可以保持CSS不变,只需添加 @-moz-doc
-moz背景剪辑:text
在Mozilla中不可用。
是否有可能从Firefox和其他浏览器中隐藏看起来是专有的WebKit-only CSS功能?我想隐藏伪“after”规则,该规则将文本内容添加到页面中,以实现Firefox和IE等的预期效果
这是我的网站,文本在Firefox中呈现得很糟糕,但在Chrome中呈现得很好
解决方案有一些不同的方法,您可以使用这些方法对FF和其他浏览器隐藏特定的CSS属性。不过有点乱
您可以保持CSS不变,只需添加
@-moz-document url-prefix() {
.css:after, .hoo:after, .prof:after{ display: none; }
}
删除背景图案
使用原始帖子答案推荐的SVG,将是一种更优雅的跨浏览器文本背景演示方式。解决方案有一些不同的方法,您可以使用这些方法对FF和其他浏览器隐藏特定的CSS属性。不过有点乱
您可以保持CSS不变,只需添加
@-moz-document url-prefix() {
.css:after, .hoo:after, .prof:after{ display: none; }
}
删除背景图案
使用原始post答案推荐的SVG,将是一种更优雅的方式来演示文本背景跨浏览器。是的,虽然
背景剪辑
是有效的CSS3属性,但是文本
的值是非标准的。因此,没有其他浏览器支持它,您也不需要其他前缀
您看到的问题是,此功能不能正常地回退。不支持它的浏览器将显示整个元素的背景
为了避免这种情况,您需要对其他浏览器隐藏背景。最好的方法是使用webkit前缀。WebKit不支持background
属性使用此选项,但它支持CSS渐变。因此,您可以指定透明渐变,然后通过利用多个背景图像指定背景图像:
background: -webkit-linear-gradient(transparent, transparent), url("http://sandpit.jonathanbeech.co.uk/wp-content/themes/jontheme/images/crosshatch.png") transparent;
这里的主要问题是,出于兼容性原因,Opera支持此-webkit-
前缀。因此,您只需要在之后指定-o-梯度来抵消:
background-image: -o-linear-gradient(transparent, transparent);
然后需要使文本透明,以便其他浏览器看不到:
color: transparent;
看看这把小提琴,看看它在起作用:
另外,您可以删除
z-index
,因为这只适用于定位(或不完全不透明)的元素。由于您没有在上设置不透明度
或位置
而不是静态
::在之后,这将不适用。是,虽然背景剪辑
是有效的CSS3属性,但文本
值为非标准。因此,没有其他浏览器支持它,您也不需要其他前缀
您看到的问题是,此功能不能正常地回退。不支持它的浏览器将显示整个元素的背景
为了避免这种情况,您需要对其他浏览器隐藏背景。最好的方法是使用webkit前缀。WebKit不支持background
属性使用此选项,但它支持CSS渐变。因此,您可以指定透明渐变,然后通过利用多个背景图像指定背景图像:
background: -webkit-linear-gradient(transparent, transparent), url("http://sandpit.jonathanbeech.co.uk/wp-content/themes/jontheme/images/crosshatch.png") transparent;
这里的主要问题是,出于兼容性原因,Opera支持此-webkit-
前缀。因此,您只需要在之后指定-o-梯度来抵消:
background-image: -o-linear-gradient(transparent, transparent);
然后需要使文本透明,以便其他浏览器看不到:
color: transparent;
看看这把小提琴,看看它在起作用:
另外,您可以删除z-index
,因为这只适用于定位(或不完全不透明)的元素。由于您没有在::之后设置不透明度或位置而不是静态,这将不适用。CSS技巧文章“”提供了一个很好的解决方案。有了它,-webkit background clip:text
样式化元素在其他浏览器中看起来很正常(纯色背景上的纯色文本)
基本上,它们用于检测浏览器是否支持-webkit background clip:text
,并仅在是时应用它。Modernizer必须通过定制测试进行扩展,以实现这一点:
<script src="modernizr-1.6.min.js"></script>
<script>
Modernizr.addTest('backgroundclip',function() {
var div = document.createElement('div');
if ('backgroundClip' in div.style)
return true;
'Webkit Moz O ms Khtml'.replace(/([A-Za-z]*)/g,function(val) {
if (val+'BackgroundClip' in div.style) return true;
});
});
</script>
modernizer.addTest('backgroundclip',function(){
var div=document.createElement('div');
如果('backgroundClip'为div.style)
返回true;
“Webkit Moz O ms Khtml”。替换(/([A-Za-z]*)/g,函数(val){
如果(val+'BackgroundClip'在div.style中)返回true;
});
});
CSS技巧文章“”提供了一个很好的解决方案。有了它,-webkit background clip:text
样式化元素在其他浏览器中看起来很正常(纯色背景上的纯色文本)
基本上,它们用于检测浏览器是否支持-webkit background clip:text
,并仅在是时应用它。Modernizer必须通过定制测试进行扩展,以实现这一点:
<script src="modernizr-1.6.min.js"></script>
<script>
Modernizr.addTest('backgroundclip',function() {
var div = document.createElement('div');
if ('backgroundClip' in div.style)
return true;
'Webkit Moz O ms Khtml'.replace(/([A-Za-z]*)/g,function(val) {
if (val+'BackgroundClip' in div.style) return true;
});
});
</script>
modernizer.addTest('backgroundclip',function(){
var div=document.createElement('div');
如果('backgroundClip'为div.style)
返回true;
“Webkit Moz O ms Khtml”。替换(/([A-Za-z]*)/g,函数(val){
如果(val+'BackgroundClip'在div.style中)返回true;
});
});
这只适用于Firefox。Opera(14版之前的版本)和IE呢?这只适用于Firefox。Opera(14版之前)和IE呢?太好了,你发布的代码就是工作。我真的希望这些浏览器供应商能够齐心协力,通过实现专有的Css属性来防止黑客攻击。我猜这是野兽的本性,但当最终结果只是想要设计一些东西而不需要大量的黑客攻击时,这一切似乎都是不必要的。在它工作的过程中,如果你能接受我的回答,那就太好了:)我是CSS工作组的成员,但我不知道这方面的任何讨论