我有一个SVG,我试图在一个div居中。div的宽度为900px。SVG的宽度为400px。SVG的左边距和右边距设置为auto。不起作用,它就像左距为0一样(默认值)。

有人知道误差是多少吗?


当前回答

Flexbox是另一种方法:添加

.container { 显示:flex; justify-content:中心; }

并将.container类添加到包含svg的div中。

其他回答

对我来说,修正是添加边际:0 auto;到包含<svg>. xml的元素上。

是这样的:

<div style="margin: 0 auto">
   <svg ...</svg>
</div>

读了上面的内容,svg默认是内联的,我只是在div中添加了以下内容:

<div style="text-align:center;">

这招对我很管用。

纯粹主义者可能不喜欢它(这是一张图片,不是文本),但在我看来,HTML和CSS在居中位置上搞砸了,所以我认为这是合理的。

把这两行放到style.css中 在指定的div类中。

   display: block;
   margin: auto;

然后尝试运行它,您将能够看到SVG现在在中心对齐。

这些答案对我都没用。我是这么做的。

position: relative;
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);

只需将容器视为flex,并将svg项以flex属性居中即可:

<div classname='icon'>
  <svg>.....</svg>
</div>

.icon{
  display:flex;
  align-items:center;
  justify-content:center;
 }