当前位置: 首页 > 面试题库 >

svg背景图片的位置始终在Internet Explorer中居中,尽管背景位置为:左居中;

濮阳奇逸
2023-03-14
问题内容

我正在使用SVG徽标作为背景图像,但似乎无法使其在Internet Explorer (编辑:和Safari)中 正确对齐到左侧。

容器如下所示:

<div id="header">
    <div id="logo"></div>
</div>

搭配款式:

#header{
    width: 100%;
    max-width: 1200px; 
    height: 100%;}

#logo{
    background: url(../images/ss_logo.svg);
    background-position: left center;
    width: 100%;
    height: 100%;
    float: left;}

您可以看到<div>应当跨越其父元素的100%,但在元素左侧显示徽标。在Chrome和Safari中这可以正常工作,但徽标始终<div id="logo">位于IE中的居中位置。

似乎很难找到信息,其他人也遇到同样的问题吗?


问题答案:

问题不在于CSS,而在于SVG。SVG将增长以填充整个元素框的背景(如预期的那样)。SVG规模如何成为控制因素:

viewBox="0 0 widthheight"<svg>元素上设置(以像素为单位)属性,然后删除其widthheight属性。您还需要preserveAspectRatio="xMinYMid"svg元素上设置(x /垂直左对齐,y /水平中间对齐)。至少与Internet Explorer 10和11兼容。

<svg viewbox="0 0 64 64"
    preserveAspectRatio="xMinYMid">
    … </svg>


 类似资料:
  • 默认情况下,背景图像从元素的 padding 区域的左上角开始显示。然而,有时候却希望背景图像从边框的左上角、或内容区的左上角开始显示。 这时,就可以通过 background-origin属性来设置背景图像的起始显示位置,可选值有 border-box | padding-box | content-box,默认值为 padding-box。 border-box 表示背景图像从 border

  • 除了背景背景平铺外,CSS还提供了另一个强大的功能,即背景定位技术,能够精确控制背景在对象中的位置。 默认情况下,背景图像都是从元素 padding 区域的左上角开始出现的,但设计师往往希望背景能够出现在任何位置。通过 background-position属性,可以很轻松的控制背景图像在对象的背景区域中的起始显示位置。其语法格式为: background-position: xpos ypos

  • 问题内容: 是否可以将div中的背景图像居中放置?我已经尝试了几乎所有内容-但没有成功: 这可能吗? 问题答案:

  • 我在一个简单的锚点元素上使用了一个svg背景图像,并且需要将图形定位在元素的右侧。 我已经设置了两个相互依存关系--除了使用gif或svg图像之外,其他都是相同的。gif正确地定位在右边,但svg不正确。 gif-在iPhone上正确定位-http://codepen.io/johnholtripley/pen/yldwf svg-在iPhone上的位置不正确-http://codepen.io/

  • 问题内容: 我想居中背景图像。没有使用div,这是CSS样式: 上面的CSS会全部平铺并将其居中,但是看不到一半的图像,只是向上移动了一点。我想做的就是将图像居中。我可以在21英寸的屏幕上观看图像吗? 问题答案: background-image: url(path-to-file/img.jpg); background-repeat:no-repeat; background-position

  • 问题内容: 有什么方法可以将图像设置为背景JFrame? 问题答案: 没有内置方法,但是有几种方法可以实现。目前我能想到的最直接的方法是: 创建的子类。 重写绘制想要显示的图像的方法。 设置内容窗格的是这个子类。 一些示例代码: 请注意,如果你要使用此代码,则不会处理调整图像大小以适合的大小。