如何在 css 中导入图像 base64
how to import image base64 in css
是否有可能以某种方式从另一个文件导入图像 base64?或者将 url 保存到变量并将其导入到 CSS?因为代码很长,这样看起来不太干净。
谢谢大家的帮助。
index.css
.column {
margin: calc(var(--grid) / 2);
border: var(--borderWidth) solid #fffddd;
border-radius: var(--borderRadius);
background-image: linear-gradient(rgba(0, 0, 0, 0.769),rgba(0, 0, 0, 0.961)),url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QDWRXhpZgAATU0AKgAAAAgABAEPAAIAAAASAAAAPgEQAAIAAAAMAAAAUIKaAAUAAAABAAAAXIdpAAQAAAABAAAAZAAAAABOSUtPTiBDT1JQT1JBVElPTgBOSUtPTiBENTEwMAAAAAAKAAAMgAAFgpoABQAAAAEAAACigp0ABQAAAAEAAACqiCcAAwAAAAICgAAAkAMAAgAAABQAAACykgoABQAAAAEAA...
Background-image 的 URL 是一个字符串值。当然也可以存到另外一个文件中,导入后用js动态注入。
您可以做的是从另一个可以导入的 CSS 文件中使用 var()
CSS。
文件myCssVar.css
:root {
--mybguri64: url(data-image/jpeg;base64, ... ) ;
}
您的 CSS 文件
@import url(myCssVar.css);
.column {
background-image: linear-gradient( ....), var(--mybguri64) ... ;
}
这将使您的 CSS 更易于阅读。
从你的编辑看来你几乎已经完成了。
最好的解决方案是使用带有内联 css 的服务器端脚本来实现这一点。让这一切发生。假设后端语言是 php。并且您的页面由 3 个模板组件组成。它可以使用不同的后端语言 ASP.net、Javs、php、node... 但我在这里使用 php 因为我对它很熟悉。只需按照它非常简单直接。
- base64ImageFile.php - 带有 base64image 变量的文件可能超过 1
- header_template.php
- footer_template.php
- application.php
然后在你的 base64Images.php 你有这个..
<?php
$base64Img ='data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7';
$base64Image2 = 'data:image/png;base64,sgw....';
$base64Image3 = 'data:image/png;base64,sgw....';
$base64Image4 = 'data:image/png;base64,sgw....';
?>
**在我的header_template.php中,将模板添加到文件的开头..**
<?php
require('base64images.php'); //the images are rendered here..
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style type="text/css">
li {
background:url(<?php echo $base64Img; ?>) <!-- and used here --->
no-repeat
left center;
padding: 5px 0 5px 25px;
}
</style>
</head>
在我的 footer_template.php
<!--- footer elements/scripts go here --->
<script src="...."></script>
<script src="..."></script>
</html>
application.php - 文件,在此处合并模板组件以构建页面
<?php require('header_template.php'); ?>
<body>
.......body content coes here...
</body>
<?php require('footer_template.php'); ?>
这样你就可以重复使用和分离组件,甚至可以将图像分离到不同的文件中并调用它们。在您的文件中,而不是将其键入。甚至多张图片...但是 CSS 必须与 HTML..
内联
是否有可能以某种方式从另一个文件导入图像 base64?或者将 url 保存到变量并将其导入到 CSS?因为代码很长,这样看起来不太干净。
谢谢大家的帮助。
index.css
.column {
margin: calc(var(--grid) / 2);
border: var(--borderWidth) solid #fffddd;
border-radius: var(--borderRadius);
background-image: linear-gradient(rgba(0, 0, 0, 0.769),rgba(0, 0, 0, 0.961)),url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QDWRXhpZgAATU0AKgAAAAgABAEPAAIAAAASAAAAPgEQAAIAAAAMAAAAUIKaAAUAAAABAAAAXIdpAAQAAAABAAAAZAAAAABOSUtPTiBDT1JQT1JBVElPTgBOSUtPTiBENTEwMAAAAAAKAAAMgAAFgpoABQAAAAEAAACigp0ABQAAAAEAAACqiCcAAwAAAAICgAAAkAMAAgAAABQAAACykgoABQAAAAEAA...
Background-image 的 URL 是一个字符串值。当然也可以存到另外一个文件中,导入后用js动态注入。
您可以做的是从另一个可以导入的 CSS 文件中使用 var()
CSS。
文件myCssVar.css
:root {
--mybguri64: url(data-image/jpeg;base64, ... ) ;
}
您的 CSS 文件
@import url(myCssVar.css);
.column {
background-image: linear-gradient( ....), var(--mybguri64) ... ;
}
这将使您的 CSS 更易于阅读。 从你的编辑看来你几乎已经完成了。
最好的解决方案是使用带有内联 css 的服务器端脚本来实现这一点。让这一切发生。假设后端语言是 php。并且您的页面由 3 个模板组件组成。它可以使用不同的后端语言 ASP.net、Javs、php、node... 但我在这里使用 php 因为我对它很熟悉。只需按照它非常简单直接。
- base64ImageFile.php - 带有 base64image 变量的文件可能超过 1
- header_template.php
- footer_template.php
- application.php
然后在你的 base64Images.php 你有这个..
<?php
$base64Img ='data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7';
$base64Image2 = 'data:image/png;base64,sgw....';
$base64Image3 = 'data:image/png;base64,sgw....';
$base64Image4 = 'data:image/png;base64,sgw....';
?>
**在我的header_template.php中,将模板添加到文件的开头..**
<?php
require('base64images.php'); //the images are rendered here..
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style type="text/css">
li {
background:url(<?php echo $base64Img; ?>) <!-- and used here --->
no-repeat
left center;
padding: 5px 0 5px 25px;
}
</style>
</head>
在我的 footer_template.php
<!--- footer elements/scripts go here --->
<script src="...."></script>
<script src="..."></script>
</html>
application.php - 文件,在此处合并模板组件以构建页面
<?php require('header_template.php'); ?>
<body>
.......body content coes here...
</body>
<?php require('footer_template.php'); ?>
这样你就可以重复使用和分离组件,甚至可以将图像分离到不同的文件中并调用它们。在您的文件中,而不是将其键入。甚至多张图片...但是 CSS 必须与 HTML..
内联