我在网站上使用SVG但是我在调整它时遇到了一些麻烦。它显示在网站的标题内,在我实现SVG(使用正常图像)之前,我正在调整图像大小如下:
$("#block_175 img").height($("#header").height() / 2);
现在,由于我正在使用SVG,我尝试了几种调整大小的方法,但我似乎无法找到如何做到这一点。以下是我构建SVG的方法:
<div id='block_175' class=''>
<svg width="100" height="100">
<g id="cross_svg">
<rect id="Rectangle-1" x="0" y="0" width="48" height="2" fill="transparent"></rect>
<rect id="Rectangle-2" x="0" y="14" width="48" height="2" fill="transparent"></rect>
<rect id="Rectangle-4" x="0" y="28" width="48" height="2" fill="transparent"></rect>
</g>
</svg>
CSS:
svg
{
width: 52px;
height: 52px;
z-index: 99999;
transition: all .3s ease;
cursor: pointer;
}
svg g
{
transition: all .3s ease;
width: 100px;
height: 100px;
display: block;
position: absolute;
left: 50%;
top: 50%;
margin: auto;
cursor: pointer;
}
svg rect
{
transition: all .3s ease;
fill: #ffffff;
}
svg g
{
width: 100px;
height: 100px;
}
JS:
svg.on('click', function()
{
if (i)
{
setTimeout(function()
{
$(this).find("g").addClass('gotcha');
line_first.css(
{
'transform':'rotate(45deg)',
'left':'50%',
'top':'50%',
'width':'200px',
// This line BELONGS to @dervondenbergen :D
// Enjoy your propriety my friend.
'transform-origin': 'left bottom'
})
line_third.css(
{
'transform':'rotate(-45deg) translate(-50%,-50%)',
'left':'50%',
'top':'50%'
})
line_second.css('opacity','0')
},005)
}
else
{
setTimeout(function()
{
line_first.attr('style', '');
line_third.attr('style', '');
line_second.css('opacity','1')
},005)
}
i =! i;
$("#mobile_menu").slideToggle();
});
所以,恢复:我需要SVG的高度为#header的一半,但我无法找到如何调整整个SVG的大小。
感谢。
编辑1 :(谢谢你,Pavel Gatnar)
将CSS更改为此
svg
{
width: 100%;
height: 100%;
z-index: 99999;
transition: all .3s ease;
cursor: pointer;
}
svg g
{
transition: all .3s ease;
width: 100%;
height: 100%;
display: block;
position: absolute;
left: 50%;
top: 50%;
margin: auto;
cursor: pointer;
}
svg rect
{
transition: all .3s ease;
fill: #ffffff;
}
我现在正在调整容器div的大小而不是SVG本身,但它也不起作用。 G元素不断溢出容器div ...
答案 0 :(得分:5)
您错过了&#39;视图框&#39;您应该设置为的属性:
<svg width='100' height='100' viewBox='0 0 100 100'>...</svg>
通过这种方式,您可以将SVG视为图像,并将其调整为相同大小。
如果没有视图框,当您改变宽度和高度时,SVG将不会缩小。
以下是SVG与视图框和没有视图框的SVG的行为比较:http://jsfiddle.net/k14qd88j/
答案 1 :(得分:0)
你必须调整容器div的大小,而svg的高度和宽度都是100%。