Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在<;中使用带有非“.SVG”扩展名的SVG图像;img>;标签_Html_Css_Svg - Fatal编程技术网

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,但文件中的内容是svg
  • 我需要使用
    标记,因为忽略SVG文件(如果有)中的宽度和高度,而使用HTML/CSS中定义的宽度和高度是很重要的我无法编辑SVG文件的内容,这些内容是随机上传的,我不希望每次上传时都对其进行修改。
  • 我可以使用PHP从SVG读取数据,但它仍然需要显示在
    标记中
  • 目前,当我尝试使用具有SVG内容但没有SVG文件扩展名的SVG时,它会表现为无法加载图像

    但是,如果我在web浏览器中访问相同的URL,它将显示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>