1. 首页
  2. css

跨浏览器CSS注入

在每次文件更改时(无需重新加载页面)都可以插入新修改的CSS,这是一种您永远不会真正欣赏的工作流增强…直到您丢失它。
这正是最近发生在我身上的事情。
至少在过去的12个月里,我一直在使用Grunt和LiveReload浏览器扩展来插入CSS当我的文件改变的时候。在我不得不处理一个需要IE7&8支持的项目之前,我觉得这是一个非常好的工作流程。我使用的LiveReload插件根本不支持旧版本的IE。一年多来,我第一次不得不在每次修改CSS时都求助于手动刷新页面。很痛苦。这也是为什么我构建了浏览器同步的原因,浏览器同步是一个让你跨浏览器CSS注入的工具。它会监视你的文件,一旦你做了更改,它会通知所有连接的浏览器重新加载(注入)新的CSS。这一切都是在不重新加载页面的情况下发生的。最重要的是,它在每个浏览器上都能工作,我从一开始就知道简单地在浏览器中插入新的CSS非常容易。我必须解决的问题是如何将文件系统更改传回浏览器。我以前使用的Grunt+LiveReload组合依赖于websockets。这就是为什么没有对旧IE的支持。向套接字.io
我在使用Karma运行单元测试时遇到了麻烦。Karma允许您在多个浏览器中运行测试。有一天,当我在IE8中进行测试时,我意识到Karma会自动在每次保存的文件上重新运行测试。
宾果游戏。我发现了一些能够监视文件系统变化并通知浏览器的东西。我开始挖掘因果报应的源代码。最终我发现他们在使用套接字.io为了实现这个目标,一切都准备就绪了。随着痛苦的忍受,从手册页刷新作为我的动力和发现套接字.io作为我的灵感,我已经准备好构建一个工具,我每天都会使用它。设置
本指南假设您已经在项目中安装了Grunt,并且知道如何使用它。如果你没有,那么你可以在Grunt网站上了解它。
浏览器同步可以作为一个独立的命令行工具或Grunt插件安装。由于当前Grunt的流行,我将在这里重点介绍如何将其设置为Grunt任务。如果您喜欢只使用命令行的方法,请检查这些说明。
与您的Gruntfile.js文件:
npm install grunt-browser-sync
这将在您的项目中本地安装浏览器同步。现在你可以通过把这个放在你的电脑的末尾来确保它是由咕噜声加载的Gruntfile.js文件:
grunt.loadNpmTasks(\”grunt-browser-sync\”);
最后,像所有Grunt插件一样,您需要提供一些配置。至少,您需要以下内容:
// Inside the Gruntfile.js config objectbrowser_sync: {files: {src : \”assets/css/style.css\”}}读者Jan Skovgaard写道:
当我试图遵循本文中的步骤时,我有点困惑。它根本不起作用-所以我去了官方网站阅读。似乎步骤有点变化,应该说\”browseru sync\”而不是将任务命名为\”browseru sync\”,否则grunt将不会运行任务。
设置配置后,您可以使用以下命令运行插件:
grunt browser_sync
现在您应该会收到一个HTML片段,可以粘贴到网站的页脚中。把它放在那里。现在,每当您更改那个CSS文件(或者它被另一个构建过程更改)时,它将自动注入到所有浏览器中。
注意:可以指定多个文件,也可以使用通配符(*)。有关详细信息,请参阅Github上的自述文件。一种更自动化的方法
上面的示例非常适合那些已经有服务器的情况。例如,使用WordPress或Rails构建站点。但缺点是您需要手动将代码段复制和粘贴到文件中。如果您使用的是静态文件(HTML、CSS和JS),那么您可以使用内置服务器。内置服务器将自动插入所需的任何HTML代码段,这样您就不必使用它。
要使用内置服务器,只需像这样设置您的配置,
// Inside the Gruntfile.js config objectbrowser_sync: {files: {src : \”app/css/style.css\”},options: {server: {baseDir: \”app\”}}}
文件现在将从app目录中提供,所有注入CSS所需的魔法都将为您完成。
如果您使用上面的服务器选项,您注意到使用的IP地址和端口了吗?通常是像192.168.0.8:3001?浏览器同步尝试找出一个好的外部IP地址用于服务器。那意味着你应该

跨浏览器CSS注入 为WP2原创文章,链接:https://www.wp2.cn/css/%e8%b7%a8%e6%b5%8f%e8%a7%88%e5%99%a8css%e6%b3%a8%e5%85%a5/