我有一个要在div中居中的SVG。div的宽度为900像素。SVG的宽度为400像素。SVG的margin-left和margin-right设置为auto。不起作用,它的作用就像是左边距为0(默认值)。
有人知道我的错误吗?
我有一个要在div中居中的SVG。div的宽度为900像素。SVG的宽度为400像素。SVG的margin-left和margin-right设置为auto。不起作用,它的作用就像是左边距为0(默认值)。
有人知道我的错误吗?
div
如果您使用bootstrap,则将代码放在这两者之间:
<div class="text-center ">
<i class="fa fa-twitter" style="font-size:36px "></i>
<i class="fa fa-pinterest" style="font-size:36px"></i>
<i class="fa fa-dribbble" style="font-size:36px"></i>
<i class="fa fa-instagram" style="font-size:36px"></i>
</div>
确保您的CSS读取:
margin: 0 auto;
即使您说的是将左侧和右侧设置为自动,也可能会出现错误。当然,我们不会知道,因为您没有向我们显示任何代码。
Flexbox是另一种方法:添加.container { display: flex; justify-content: center; }
并将.container
类添加到包含svg的div中。
上面的答案似乎并不完整,因为它们仅是从CSS的角度而言。
SVG在视口中的位置受两个SVG属性的影响
<svg viewBox="70 160 800 190" preserveAspectRatio="xMaxYMax meet">
SVG默认为内联。添加display: block
到它,然后margin: auto
将按预期工作。
上面已经读过svg默认是内联的,我只是将以下内容添加到div中:
<div style="text-align:center;">
它为我带来了成功。
纯粹主义者可能不喜欢它(它是图像,而不是文本),但是在我看来,HTML和CSS在中心位置上搞砸了,所以我认为这是合理的。
这些答案都不对我有用。这就是我的方法。
position: relative;
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
以上答案对我没有用。不过,将属性添加preserveAspectRatio="xMidYMin"
到<svg>
标签确实可以解决问题。viewBox
需要指定该属性才能使其正常工作。资料来源:Mozilla开发人员网络
我不得不用
display: inline-block;
您也可以这样做: