- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你能在 this JS fiddle 上将这两张图片合并成一个外部文件吗?并以图片形式链接到它们?
有点像
<img src="base64.html#img1" />
<img src="base64.html#img2" />
我确实看到了这个答案,但它没有提供示例
Can multiple base64 documents be stored in a single file?
如何在文件名中使用一个点并以某种方式使文件认为它是一个不同的文件名,例如 base64.img1.html
并以某种方式使用文件头将它们拆分成一个文件但不同的部分。
好吧,新想法.. 如果有一种方法可以指定 charStart
和 charEnd
会怎么样?假设有 2 个 base64 编码的文件,然后你调用其中一个
base64.0-3214.html // for one file (like font.woff)
base64.3215-5673.html // for another file (like demo.jpg)
最佳答案
可以将所有资源(JavaScript、CSS、字体、图像)放在一个大的(可缓存的)JavaScript 文件中。该文件看起来很乱(因为一些冗长的 CSS 和 Base64 字符串),但不要因此而失望;您可以使用代码生成从其单独的组件编译 JavaScript 文件(见下文)。
演示: http://jsfiddle.net/PgdXd/
将整个样式表放在一个字符串文字中(不要忘记转义引号和换行符)并将其嵌入动态创建 style
的 JavaScript 语句中元素。
$('head').append("<style> ......... </style>");
注意:我在这里使用的是 jQuery,但纯 JavaScript 也可以。
上述声明在旧版网络浏览器中可能无效。有关替代方案,请参阅:How to dynamically create CSS class in JavaScript and apply?
将您的 Base64 编码字体文件嵌入您的样式表中,如下所述:http://sosweetcreative.com/2613/font-face-and-base64-data-uri
@font-face {
font-family: 'latoregular';
src: url(data:application/x-font-woff;charset=utf-8;base64,........) format('woff');
font-weight: normal;
font-style: normal;
}
如前所示,这应该嵌入到保存样式表的 JavaScript 语句中:
$('head').append("<style> @font-face { font-family:'latoregular'; src: url(data:application/x-font-woff;charset=utf-8;base64,........) format('woff'); font-weight:normal; font-style:normal; } .... </style>");
有两种口味。可以在样式表中指定背景图像,就像我们对字体所做的那样:
.logo1 { background-image: url(data:image/png;base64,.......); }
第二种是常规图像。在 HTML 文件中,使用 img
带有空 src
的标签属性。
<img alt="" src="" class="icon1" />
使用 javascript 填充 src
属性。整个 Base64 字符串是嵌入在 JavaScript 语句中的字符串文字。
$('.icon1').attr('src', 'data:image/png;base64,.......');
$('.icon2').attr('src', 'data:image/png;base64,.......');
CSS 类决定哪些数据属于哪个 img
标签。在将包含此 JavaScript 文件的一个或多个 HTML 页面中未使用某个类是可以的。 Base64 字符串只是传递了一点;其他基于 JavaScript 的方法也涉及同样微不足道的开销。
这是一个使用 bash 脚本的简单示例。但请随意使用 Perl 或 T4 或您喜欢的任何语言或工具。
gendatauri.sh:输出数据URI;参数是文件名和(可选)MIME 类型。
#!/bin/bash
echo "data:${2:-$(file -bi $1)};base64,$(base64 -w0 $1)"
genimgsrc.sh:生成 jQuery 语句来填充 src
<img>
的属性要素;参数为文件名。
#!/bin/bash
filename=$1
basename=${filename##*/}
classname=${basename%.*}
echo "\$('.$classname').attr('src','$(./gendatauri.sh $filename)');"
gencss.sh:你的样式表;使用 $(./gendatauri.sh FILENAME [MIMETYPE])
注入(inject)文件数据。示例:
#!/bin/bash
cat << EOF
@font-face {
font-family: 'latoregular';
src: url($(./gendatauri.sh latoregular.woff "application/x-font-woff;charset=utf-8")) format('woff');
font-weight: normal;
font-style: normal;
}
.logo1 {
background-image: url($(./gendatauri.sh icon1.png));
}
EOF
genjs.sh:将所有不同的组件组合到一个 JavaScript 文件中。示例:
#!/bin/bash
# CSS, including fonts and background images
(
echo '$("head").append("<style>\n'
./gencss.sh
echo '\n</style>");'
) | tr '\n' ' '
echo
# images
./genimgsrc.sh icon1.png
./genimgsrc.sh icon2.png
# JavaScript
cat YourOwnFunctions.js
运行它并重定向其输出以生成最终的 JavaScript 文件。确保 .png
, .woff
当您这样做时,其他资源文件会出现。
./genjs.sh > GeneratedJavaScriptFile.js
在每个 HTML 文件中包含 JavaScript 文件:
<script src="GeneratedJavaScriptFile.js"></script>
为清楚起见:在网络服务器上,您只需要 GeneratedJavaScriptFile.js
和 .html
文件;原始资源文件不需要出现在那里。
关于html - 多个base64文件合二为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569276/
如果我不定义自己的构造函数,Base *b = new Base; 与 Base *b = new Base(); 之间有什么区别吗? 最佳答案 初始化是标准中要遵循的一种 PITA...然而,这两个
是否有现成的函数可以在 C# 中进行基本转换?我希望将以 26 为基数和以 27 为基数的数字转换为以 10 为基数。我可以在纸上完成,但我不是一个非常有经验的程序员,如果可能的话,我宁愿不要从头开始
JNA 中'base'是什么意思 Pointer.getPointerArray(long base) Pointer.getStringArray(long base) ? JNA Document
我正在做一个将数字从 10 进制转换为 2 进制的基本程序。我得到了这段代码: #include #include #include #include using namespace std;
“假设以下代码: public class MultiplasHerancas { static GrandFather grandFather = new GrandFather();
当我分析算法的时候,我突然问自己这个问题,如果我们有三元计算机时间复杂度会更便宜吗?还是有任何基础可以让我们构建计算机,这样时间复杂度分析就无关紧要了?我在互联网上找不到太多,但是基于三元的计算机在给
一个简化的场景。三个类,GrandParent,Parent 和 Child。我想要做的是利用 GrandParent 和 Parent 构造函数来初始化一个 Child 实例。 class Gran
我编写了一个简单的函数来将基数为 10 的数字转换为二进制数。我编写的函数是我使用我所知道的简单工具的最佳尝试。我已经在这个网站上查找了如何执行此操作的其他方法,但我还不太了解它。我确定我编写的函数非
我尝试了以下代码将数字从 base-10 转换为另一个 base。如果目标基地中没有零(0),它就会工作。检查 79 和 3 并正确打印正确的 2221。现在尝试数字 19 和 3,结果将是 21 而
这个问题在这里已经有了答案: Is Big O(logn) log base e? (7 个答案) 关闭 8 年前。 Intro 练习 4.4.6 的大多数解决方案。算法第三版说,n*log3(n)
如何判断基类(B)的指针是否(多态)重写了基类的某个虚函数? class B{ public: int aField=0; virtual void f(){}; }; class C
我测试了这样的代码: class A { public A() { } public virtual void Test () { Console.WriteL
两者都采用相同的概念:定义一些行和列并将内容添加到特定位置。但是 Grid 是最常见的 WPF 布局容器,而 html 中基于表格的布局是 very controversial .那么,为什么 WPF
我试图在 JS 中“获得”继承。我刚刚发现了一种基本上可以将所有属性从一个对象复制到另一个对象的简洁方法: function Person(name){ this.name="Mr or Miss
class A { public override int GetHashCode() { return 1; } } class B : A { pu
我有一个 Base32 信息哈希。例如IXE2K3JMCPUZWTW3YQZZOIB5XD6KZIEQ ,我需要将其转换为base16。 我怎样才能用 PHP 做到这一点? 我的代码如下所示: $ha
我已经使用其实验界面对 Google Analytics 进行了一些实验,一切似乎都运行良好,但我无法找到 Google Analytics 属性如何达到变体目标的答案,即归因 session - 基
if (state is NoteInitial || state is NewNote) return ListView.builder(
MSVC、Clang 和 GCC 不同意此代码: struct Base { int x; }; struct Der1 : public Base {}; struct Der2 : public
我已经尝试构建一个 Base 10 到 Base 2 转换器... var baseTen = window.prompt("Put a number from Base 10 to conver
我是一名优秀的程序员,十分优秀!