css - 背景位置不适用于 IE

标签 css html internet-explorer

设置背景位置适用于 Chrome、Safari 和 Firefox,但不适用于 IE 8-11。这里有什么问题吗?

DEMO on Dabblet

DEMO on Webdevout

.logo {
    display: block;
    width: 200px;
    border: 2px solid red;
    background: url("layout/logo.png") center right no-repeat; /* fallback image */
    background-image: url('data:image/svg+xml;base64,...'), none; /* two bg to only use svg on supported browsers. IE 11 uses this image */
    background-position: center right;
    background-repeat: no-repeat;
    background-size: auto 100%;
}

更新:

IE 似乎忽略了 SVG 图像上的背景定位。这是一个 WORKAROUND DEMO

最佳答案

我想保证跨浏览器工作的最佳方法是使用模式制作背景图像,然后设置属性,如 xywidthheight 直接或稍后通过 attr 方法在 jquery 中根据需要定位它,例如:$("#img1").attr("宽度","500");

<defs>
   <pattern id="img1" patternUnits="userSpaceOnUse" width="100" height="100">
       <image xlink:href="layout/logo.png" x="0" y="0" width="100" height="100" />
   </pattern>
</defs>

并设置图案以像这样填充 SVG 路径

<path fill="url(#img1)" id="my_svg" d="M5,50 l0,100 l100,0 l0,-100 l-100,0
     M215,100
     a50,50 0 1 1 -100,0 50,50 0 1 1 100,0
     M265,50
     l50,100 l-100,0 l50,-100
     z"/>

或者你可以用这种方式设置背景,但是在像这样的 CSS 中

#my_svg{
    fill:url(#img1);
}

还有一种我推荐但在某些情况下可能是答案的替代方法,那就是 transform="translate(x, y)" 用于模式中的图像或 patternTransform="translate(x,y)" 用于像 css 版本一样退出的模式,如果它......例如:

   <pattern id="img1" patternUnits="userSpaceOnUse" width="100" height="100" patternTransform="translate(0,0)">
       <image xlink:href="layout/logo.png" x="0" y="0" width="100" height="100" transform="translate(0,0)" />
   </pattern>

无论如何,在我们的工作中了解许多不同的做某事的方法总是很好的做法,以便能够生存;-)

关于css - 背景位置不适用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855648/

相关文章:

html - 所有列的表格边框高度相等

css - chrome 中的 overflow-y phantom margin

html - 表格上的垂直文本指示分组的行

html - <span> 中可以有 <span> 吗?

jquery - 水平列表或可根据视口(viewport)大小滑动的列表

javascript - 如何设置 bootstrap typeahead.js 自动完成的类名

javascript - IE11 JS XMLHTTPRequest/XMLParser 丢弃 <body> 属性

javascript - 如何通过 jquery 将 div 转换到特定位置

c# - window.external 上的无参数方法在使用 typeof 检查时被调用

html - 表格行的边框半径和阴影