2011-12-26 453 views
153

我有一個SVG,我試圖以div爲中心。 div的寬度爲900px。 SVG的寬度爲400px。 SVG的margin-left和margin-right設置爲auto。不起作用,它就好像左邊距爲0(默認)。如何將SVG放入div中?

任何人都知道我的錯誤?

回答

275

SVG默認爲內聯。將display: block添加到它,然後margin: auto將按預期工作。

+4

很肯定這也意味着的text-align:父元素中心將工作太(我的作品中Chrome無論如何) – Nathan 2016-06-21 06:26:53

2

確保你的CSS寫着:

margin: 0 auto; 

即使你是說你有左,右設置爲AUTO,你可能會放置一個錯誤。當然,我們不會知道,因爲你沒有向我們展示任何代碼。

20

以上答案並不適用於我。 雖然將屬性preserveAspectRatio="xMidYMin"添加到<svg>標記中,但是卻做到了這一點。需要指定viewBox屬性才能使其工作。 來源:Mozilla developer network

13

這些答案都不適合我。這是我做到的。

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

我不知道爲什麼,但我不得不使用'left:100%' – 2014-11-12 21:50:47

11

是SVG上面看了默認是在線的,我只是添加了以下到div:

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

,它的伎倆我。

純化者可能不喜歡它(它是一個圖像,而不是文本),但在我看來HTML和CSS搞砸了,所以我認爲這是合理的。

1

我不得不使用

display: inline-block; 
8

回答上面看不完整的,因爲它們是從只能查看CSS角度來討論。 SVG的視口內

定位受兩個SVG屬性

  1. 視框:限定用於SVG以覆蓋矩形區域。
  2. preserveAspectRatio:定義放置viewBox wrt視口的位置以及在視口更改時如何放置viewBox wrt視口。

Follow this link from codepen for detailed description

<svg viewBox="70 160 800 190" preserveAspectRatio="xMaxYMax meet"> 
+0

這就是它。爲我完美工作 – warunanc 2017-09-28 08:09:21

1

你也可以這樣做:

<center> 
<div style="width: 40px; height: 40px;"> 
    <svg class="sqs-svg-icon--social" viewBox="0 0 64 64"> 
     <use class="sqs-use--icon" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-icon"> 
      <svg id="twitter-icon" viewBox="0 0 64 64" width="100%" height="100%"> 
       <path 
        d="M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z" 
        /> 
      </svg> 
     </use> 
    </svg> 
</div> 
</center> 
+0

謝謝馬丁,工作就像一個神奇的咒語! – 2018-03-04 19:55:01