2013-11-10 88 views
2

当我尝试更改svg标签的高度和宽度时,它会更改但切割内部grts的地图。svg的宽度高度不变

这是SVG文件

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg width="500pt" height="500pt" viewBox="0 0 500 500" version="1.1" xmlns="http://www.w3.org/2000/svg"> 
    <g transform="translate(528,270)" > 
     <g id="states" fill="green" width="500pt" height="500pt" > 
      <a id="s01"> 
       <path d="M158.95067408594068,46.88327098850149L185.03303599629845,44.0148159910488L189.74121811302572,59.50889743727097L196.59587401503094,82.27898337817625L199.08348,87.17077847298319L201.13017099189912,89.85649424407167L200.707578706067,91.7588142001174L202.6261541288344,92.6205139503571L200.33524838576966,95.29216920133321L200.7363444144292,97.59217497211156L199.80999341478454,100.8918397716738L202.09021078470892,106.20782432993735L201.64399529140977,111.17790897235179L204.03767592952832,115.96122130827978L196.3574723373462,117.09985438789514L163.47293491613115,121.08122011183377L163.22294648718562,123.55296427740802L167.13791879442175,126.6835133291724L166.871741037497,129.76735843938286L168.2485001228969,131.1400084527912L166.21795234496457,134.1137855808483L164.12121282499038,134.9547500732084L159.81791064191435,132.36796011584426L158.90469329765804,127.88713803963412L157.64560372254968,127.51168600895127L156.5390262005875,131.08669596034315L156.36678872306632,134.46030822963786L152.20800610122825,133.97284127048096L148.16895577705603,105.98121856614907L148.12136132417422,70.56398790998259L148.15893441899317,50.102043132249676L146.40831263672231,48.33943105796875Z" stroke="#FFFFFF" stroke-dasharray="1, 0" stroke-width="1.5"></path> 
       <text x="162.66165594858754" y="86.92631614090374" style="">AL</text> 
       <title></title> 
      </a> 
      <a id="s02"> 
+0

你想缩小它吗?无论如何,更改容器的大小对子节点没有影响。您必须应用比例转换。 – ZimTis

+0

ZimTis不正确。该文件具有viewBox属性,因此更改宽度和高度属性应该改变页面上图像的大小。目前尚不清楚您遇到的问题是什么。你可以张贴图像,或者一个小提琴吗? –

+0

Sry,没有看到,谢谢你的纠正。 – ZimTis

回答

0

的样品与样品打后,我觉得我有什么可能发生的一个想法。

你对你的文件做了什么来尝试和调整它?你是否改变了宽度和高度,或者你是否改变了价值?或两者?

在你张贴的片段中,阿拉巴马州的轮廓不在图片的右边缘。这是因为,第一组在变换:

transform="translate(528,270)" 

正在移动阿拉巴马原点到528270,也就是关断该图的边缘由所述视框(500×500)所定义的。

所以改变宽度和高度,不会使阿拉巴马州重新回到页面上。你必须改变viewBox,使其包含阿拉巴马州页面的一部分。因此,举例来说,如果你把它改为:

viewBox="0 0 1000 500" 

阿拉巴马州现在是可见的,那么你可以切换到任何你想要的地图的大小。

Demo here

总之,viewBox(x和y宽度高度)描述了网页的内容的边界。 widthheight告诉渲染器缩放viewBox所描述的区域有多大。 因此,在这种情况下,该1000x500视图框中的所有内容都将被缩放,以便它适合由宽度和高度(500x500)定义的框。所以,实际上,地图会缩小这些值(1000x500降至500x250)。

+0

@bigBadboom ACtualy当我更改宽度高度和viewbox参数时,我希望svg应该变小并且放入视图框中。谢谢 – user2975771

+0

当我改变视图框内的视图框图形的宽度高度不会改变大小,但它会被剪切 – user2975771

+0

如果有超出图像边缘的内容,那么您需要更改'viewBox'(仅限),以便它比您的所有内容都大。调整视图框x,y,宽度和高度,以便与您的内容贴近。一旦所有内容都可见,您可以使用''宽度和高度进行播放,以便图像在页面上与您想要的大小相同。 –