繁体   English   中英

如果所有HTML + CSS都是在运行时通过javascript生成的,没有开发人员需要使用css和html,为什么不使用内联CSS?

[英]Why not use inline CSS if all the HTML+CSS is generated at runtime by javascript and no developer will need to work with css and html?

我在网上看到不使用inline-css的唯一原因是因为html和css与管理的分离,但如果这不是我的问题,我不在乎我会使用。

我可以说的另一个专业是:想象你想要加载另一个用户制作的小部件,你只需要加载1个文件,javascript而不是css。

但它可能还有其他问题吗? 谢谢

如果你再次阅读你的问题,你自己已经回答了。 html和CSS“分离”是有原因的。 因为在某个时间点,您最终会想要更改已编码的外观。 这些是拥有单独的CSS文件非常有用的时候,因此您只能在一个地方进行更改,而不是在整个应用程序中进行更改。

编辑

将CSS分开的另一个用处是缓存。 大多数现代浏览器都会缓存CSS文件。 这意味着到服务器的往返次数更少,响应时间更短。 我不确定JavaScript的情况是否相同,因为JavaScript文件会被缓存,但客户端浏览器每次加载时都必须执行代码。

我认为这是一个值得探讨的好问题。 我不认为没有使用内联CSS的性能或基于标准的论证 - 它运行得非常好 - 分离CSS的唯一(尽管可观)论据是可维护性/可读性。 因此,如果您从JavaScript生成CSS,那么生成内联就像其他任何方式一样健全。

实际上,DOM API通常暴露了更简单的方法,用于将样式直接分配给元素( https://developer.mozilla.org/en/DOM/element.style ),而不是创建新的样式表。 因此几乎所有的JavaScript库,比如jQuery,当他们必须通过向元素添加内联样式来操作样式时。

话虽如此,我从未见过使用JavaScript生成整页的标记和样式的情况。 我希望这是相当低效的。 我可以看到,如果你有一个Web应用程序,其中所有内容都是通过Ajax(一个非常好的解决方案)引入的,那么你可以用JavaScript编写一些标记,但仍然可以更好/更高效地加载大多数周围标记为您的内容在初始页面加载,然后使用JavaScript交换现有元素内的内容。

在任何情况下,我都建议您将大部分CSS保存在已定义相关类的外部样式表中,这样您的所有JavaScript都会创建具有正确类的元素。 这将具有性能优势,也意味着您的所有样式信息都位于一个位置,并且与JavaScript分开,这将使您的代码更易于维护。

使用内联css是可以的。 (在此特定情况下)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM