Html 在<;中使用带有非“.SVG”扩展名的SVG图像;img>;标签
我试图在Html 在<;中使用带有非“.SVG”扩展名的SVG图像;img>;标签,html,css,svg,Html,Css,Svg,我试图在标记中显示SVG,但是SVG文件没有.SVG扩展名 所以有几件事, 文件扩展名不是.svg,但文件中的内容是svg 我需要使用标记,因为忽略SVG文件(如果有)中的宽度和高度,而使用HTML/CSS中定义的宽度和高度是很重要的我无法编辑SVG文件的内容,这些内容是随机上传的,我不希望每次上传时都对其进行修改。 我可以使用PHP从SVG读取数据,但它仍然需要显示在标记中 目前,当我尝试使用具有SVG内容但没有SVG文件扩展名的SVG时,它会表现为无法加载图像 但是,如果我在web浏览器中访
标记中显示SVG,但是SVG文件没有.SVG
扩展名
所以有几件事,
标记,因为忽略SVG文件(如果有)中的宽度和高度,而使用HTML/CSS中定义的宽度和高度是很重要的我无法编辑SVG文件的内容,这些内容是随机上传的,我不希望每次上传时都对其进行修改。
标记中.SVG
扩展名
您可以直接在服务器上对文本进行base-64编码,并将其直接注入到图像中,或者将源代码用作远程引用
“/>
自然宽度
和自然高度
属性将给出图像的实际大小,而不是显示/渲染的大小
下面的脚本将SVG数据按原样注入到不应显示的块中 HTML:
JS:
函数getImageSizeFromUrl(url){
返回新承诺(功能(解决、拒绝){
const image=document.createElement('img');
addEventListener('load',=>resolve({width:image.naturalWidth,height:image.naturalHeight}),false);
image.addEventListener('error',reject,false);
image.src=url;
}
}
//获取SVG
const svgText=document.getElementById(“svgToCheck”).innerHTML.trim();
//转换为数据url
const svgUrl=`data:image/svg+xml;base64,${window.btoa(svgText)}`;
//知道尺寸了吗
getImageSizeFromUrl(svgUrl).then(size=>console.log(size.width,size.height));
您可以直接在服务器上对文本进行base-64编码,并将其直接注入图像,或将源代码用作远程引用
“/>
自然宽度
和自然高度
属性将给出图像的实际大小,而不是显示/渲染的大小
下面的脚本将SVG数据按原样注入到不应显示的块中 HTML:
JS:
函数getImageSizeFromUrl(url){
返回新承诺(功能(解决、拒绝){
const image=document.createElement('img');
addEventListener('load',=>resolve({width:image.naturalWidth,height:image.naturalHeight}),false);
image.addEventListener('error',reject,false);
image.src=url;
}
}
//获取SVG
const svgText=document.getElementById(“svgToCheck”).innerHTML.trim();
//转换为数据url
const svgUrl=`data:image/svg+xml;base64,${window.btoa(svgText)}`;
//知道尺寸了吗
getImageSizeFromUrl(svgUrl).then(size=>console.log(size.width,size.height));
改用
标记。它使您有机会直接声明MIME类型。大小调整与
标记一样有效
<span style='display: inline-block; margin: 0px; width: 35px !important; height: 35px !important;'>
<?php echo file_get_contents('https://di.community/uploads/monthly_2019_02/D-00023_svg.614976c7cefbcc2e89ab406b11f87800'); ?>
</span>
改用
标记。它使您有机会直接声明MIME类型。大小调整与
标记一样有效
<span style='display: inline-block; margin: 0px; width: 35px !important; height: 35px !important;'>
<?php echo file_get_contents('https://di.community/uploads/monthly_2019_02/D-00023_svg.614976c7cefbcc2e89ab406b11f87800'); ?>
</span>
<object type="image/svg+xml" data="myFile.extension"></object>