我正在创建一个移动模拟器,该模拟器使用 100% javascript、HTML5 和 CSS 在 Web 浏览器中模拟 iPhone(以及后来的其他设备)的外观和功能,并且模拟器功能齐全,仅需客户端代码。
在尝试对要托管在模拟器中的原始应用程序项目本身进行尽可能少的修改来完成此任务时,我将 <script>
和 <link>
标签注入到页面,然后将 html 加载到 <div>
屏幕。
问题是当我加载一个新的 css 文件时,它(显然)覆盖了我用来设置页面样式的文件,因此某些元素受到影响(例如背景颜色改变)。
我的问题是:有什么方法可以限制外部 .css
文件的“范围”,使其仅适用于 <div>
屏幕内的对象?如果不是我将它注入页面的 <head>
,我将它注入 <style>
元素在 <div>
屏幕中,这会有什么不同吗?
原文由 SnareChops 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新 对此功能的支持已被删除。请寻求其他选择
原帖:
您可能想查看作用域样式;请参阅 http://css-tricks.com/saving-the-day-with-scoped-css/ 。
基本思想是
但是,就浏览器支持而言,您在这里处于最前沿。请参阅 http://caniuse.com/style-scoped 。
一种替代方法是使用 iframe。