我正在编写一个移动网络应用,我想知道是否有人可以帮助我理解并修复这些线性渐变,以便它们同时适用于Safari-mobile
和Android-browser
。
我相信我正在使用每个供应商前缀,我甚至提供了后备背景颜色,但每当我在移动设备上查看应用程序时,应用渐变的背景元素都是透明的。换句话说,背景是透明的,并且渐变不会出现在移动设备上。意思是,即使是后退颜色也不起作用。
更奇怪的是,他们(渐变)出现在Android和iOS
的移动模拟器上。
有人可以帮我修复这些渐变,以便它们可以在桌面设备和移动设备上工作,还可以教我如何使用后备背景颜色和背景图像吗?
我真的很感激任何帮助!
这是我到目前为止所做的:
background:#fff;
background:transparent -ms-linear-gradient(top, rgba(255,255,255,.65), rgba(255,255,255,.9));
background:transparent url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iaGF0MCIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSI1MCUiIHkxPSIxMDAlIiB4Mj0iNTAlIiB5Mj0iLTEuNDIxMDg1NDcxNTIwMmUtMTQlIj4KPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwLjY1Ii8+CjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwLjkiLz4KICAgPC9saW5lYXJHcmFkaWVudD4KCjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJ1cmwoI2hhdDApIiAvPgo8L3N2Zz4=);
background:transparent -o-linear-gradient(90deg, rgba(255,255,255,.65) 0%, rgba(255,255,255,.9) 100%);
background:transparent -moz-linear-gradient(90deg, rgba(255,255,255,.65) 0%, rgba(255,255,255,.9) 100%);
background:transparent -webkit-gradient(linear, 0%, 0%, 0%, 100%, from(rgba(255,255,255,.65), to(rgba(255,255,255,.9));
background:transparent -webkit-linear-gradient(90deg, rgba(255,255,255,.65) 0%, rgba(255,255,255,.9) 100%);
background:transparent linear-gradient(90deg, rgba(255,255,255,.65) 0%, rgba(255,255,255,.9) 100%);
提前致谢!
答案 0 :(得分:6)
这应该适用于所有浏览器(甚至是移动浏览器):
#element {
background: -moz-linear-gradient(black, transparent); /* FF 3.6+ */
background: -ms-linear-gradient(black, transparent); /* IE10 */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #000000), color-stop(100%, #ffffff)); /* Safari 4+, Chrome 2+ */
background: -webkit-linear-gradient(black, transparent); /* Safari 5.1+, Chrome 10+ */
background: -o-linear-gradient(black, transparent); /* Opera 11.10 */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr=transparent); /* IE6 & IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr=transparent)"; /* IE8+ */
background: linear-gradient(black, transparent); /* the standard */
z-index: 1;
}
在浏览器上检查这两个好网站的css:
(我在iOS 5.1.1上使用此演示进行了测试http://jsfiddle.net/luissanchezm86/4Kwb4/)
希望它有所帮助!
答案 1 :(得分:1)
是必要的透明属性吗?
答案 2 :(得分:1)
至少在移动版Safari中,您无法使用关键字transparent
,而是必须使用rgba(255,255,255,0)
。证明:https://developer.apple.com/library/archive/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Gradients/Gradient.html
搜索透明,即使在他们的官方文档中,他们也会使用rgba
来获取透明色。