【问题标题】:Where should I put the CSS and Javascript code in an HTML webpage?我应该将 CSS 和 Javascript 代码放在 HTML 网页的什么位置?
【发布时间】:2011-10-01 07:57:30
【问题描述】:

在设计网页时,我应该把下面的代码放在哪里?

<link rel=stylesheet type="text/css" href="css/layout.css">

我应该把它放在<head> 中还是应该放在<body> 中? 请澄清以下问题:

  1. 如果我将它放在<head> 或 HTML 代码周围的其他任何地方会有什么不同?
  2. 如果我有两个 CSS(或 Javascript)文件怎么办?由于我只能在另一个文件之前包含一个文件,网络浏览器将使用哪个文件来显示网页?

【问题讨论】:

标签: javascript html css


【解决方案1】:

关于您的回复, CSS 链接的编写类似于其他头部元素。

<head>
  <link href="css.script " rel="stylesheet" />
 </head>

1. 最常用的方法是放在头脑中,因为它可以提高编译能力。 2.主要是为了方便放在正文中或后面的HTML文本中。

【讨论】:

  • 你不需要添加这个答案,因为这个问题的所有答案都是这个答案。我没有投反对票,因为您是新的贡献者。
  • 谢谢,我猜,但与其他回复非常相似,它们旨在形成一个联合体,使 CSS 实现问题更加清晰,观点略有不同。
【解决方案2】:

根据我在 css 中的学习,总是在 .like:-

 <head>
  <link href="css/grid.css" rel="stylesheet" />
 </head>

对于脚本,它的依赖:-

  1. 如果在脚本文档中。写present然后它将在head标签中。
  2. 如果脚本包含 DEFER 属性,因为 defer 下载全部并行

【讨论】:

    【解决方案3】:

    我认为最好的方法是 1)将CSS文件放在head标签之间的标题部分 原因是第一页显示该css需要的视图 2)所有的js文件都应该放在body结束标签之前。 原因是毕竟组件展示js都可以应用

    【讨论】:

    • 你必须在你的答案中使用更好的语法
    【解决方案4】:

    将样式表放在顶部 Links to discussion

    在 Yahoo! 研究性能时,我们发现将样式表移动到文档 HEAD 会使页面加载速度更快。这是因为将样式表放在 HEAD 中可以让页面逐步呈现。

    关心性能的前端工程师希望页面逐步加载;也就是说,我们希望浏览器尽快显示它拥有的任何内容。这对于包含大量内容的页面和 Internet 连接速度较慢的用户来说尤其重要。为用户提供视觉反馈(例如进度指示器)的重要性已得到充分研究和记录。在我们的例子中,HTML 页面是进度指示器!当浏览器逐步加载页面时,标题、导航栏、顶部的徽标等都为等待页面的用户提供视觉反馈。这改善了整体用户体验。

    将样式表放在文档底部附近的问题在于,它禁止在包括 Internet Explorer 在内的许多浏览器中进行渐进式呈现。这些浏览器会阻止呈现,以避免在样式更改时重新绘制页面元素。用户卡在查看空白页。

    HTML 规范明确规定样式表将包含在页面的 HEAD 中:“与 A 不同,[LINK] 只能出现在文档的 HEAD 部分,尽管它可能出现多次。”这两种选择,空白的白屏或无样式内容的闪烁,都不值得冒险。最佳解决方案是遵循 HTML 规范并将样式表加载到文档 HEAD 中。

    将脚本放在底部

    脚本导致的问题是它们会阻止并行下载。 HTTP/1.1 规范建议浏览器每个主机名并行下载不超过两个组件。如果您从多个主机名提供图像,则可以同时进行两次以上的下载。但是,在下载脚本时,浏览器不会启动任何其他下载,即使在不同的主机名上也是如此。

    在某些情况下,将脚本移至底部并不容易。例如,如果脚本使用 document.write 插入部分页面内容,则不能将其移至页面下方。也可能存在范围问题。在许多情况下,有一些方法可以解决这些情况。

    另一个经常出现的替代建议是使用延迟脚本。 DEFER 属性表示脚本不包含 document.write,并且是浏览器可以继续呈现的线索。不幸的是,Firefox 不支持 DEFER 属性。在 Internet Explorer 中,脚本可能会被延迟,但不会像期望的那样延迟。如果可以推迟脚本,也可以将其移至页面底部。这将使您的网页加载速度更快。

    【讨论】:

    • 您应该包含链接中的内容,以便答案是自我维持的
    【解决方案5】:

    在我看来,最好的做法是将 CSS 文件放在标题中

    <head>
      <link rel="stylesheet" href="css/layout.css" type="text/css">
    </head>
    

    以及结束&lt;/body&gt;标签之前的Javascript文件

      <script type="text/javascript" src="script.js"></script>
    </body>
    

    如果你有,就像你说的两个 CSS 文件。浏览器将同时使用两者。如果有任何选择器,即。 .content {} 在两个 CSS 文件中是相同的,浏览器会用第二个的属性覆盖第一个的相似属性。如果这有意义的话。

    【讨论】:

    • 关于&lt;link /&gt;&lt;style /&gt;:只能放在&lt;head /&gt;里面,不能放在body里面。
    • 顶部&lt;link&gt; 的原因是浏览器必须在加载 CSS 文件时重排布局(如果它们不在 &lt;head&gt; 中)在用户尝试交互时移动元素与页面。对于最后的&lt;script&gt; 文件,浏览器必须(在大多数情况下)在加载和运行 JavaScript 文件时阻止处理 HTML,以防它在 Write() 调用中进行(这些天你不应该再这样做了) );如果&lt;script&gt; 标记在末尾,则浏览器在处理JavaScript 时仍然可以显示&lt;script&gt; 标记上方的所有HTML。
    【解决方案6】:

    CSS 包含应该在任何js 脚本包含之前进入head。 Javascript可以去任何地方,但实际上文件的功能可以确定位置。如果它构建页面内容,请将其放在首位。如果它用于事件或跟踪,你可以把它放在&lt;/body&gt;之前

    【讨论】:

      【解决方案7】:
      1. 您应该将样式表链接和javascript &lt;script&gt; 放在&lt;head&gt; 中,因为这是由格式决定的。然而,有些人将 javascript &lt;script&gt;s 放在 body 底部,这样页面内容就会在不等待 &lt;script&gt; 的情况下加载,但这是一个权衡,因为脚本执行会延迟到其他资源加载完毕。李>
      2. CSS 按照它们的链接顺序(反向)优先:首先被第二个覆盖,被第三个覆盖,等等。

      【讨论】:

      • 在第 1 点中,为什么不赞成将 JavaScript 放在正文底部?
      • @Celeritas 因为从语义上讲,
      【解决方案8】:

      关于&lt;link /&gt;&lt;style /&gt;,您别无选择,它们必须&lt;head /&gt; 部分(请参阅onetwo)。

      关于&lt;script /&gt;可以同时出现在&lt;head /&gt;&lt;body /&gt; 中(参见three),通常最好将它们放在&lt;head /&gt; 中,因为它们不是真正的“内容”(其中“内容”是用户在屏幕上看到的内容),它们更像是“作用于”“内容”的东西。

      W3C 的 HTML4 specification FTW!

      【讨论】:

        【解决方案9】:

        您应该将 CSS 放在 &lt;head&gt; 中,因为这是规范所说的。

        如果您有多个 CSS 文件,它们将按照您在代码中的顺序加载。如果第二个 CSS 文件中有样式,则覆盖第一个 CSS 文件中的样式;这将按设计发生。因此,层叠样式表。

        大多数浏览器仍会有效地渲染 CSS 文件,但您的代码在语义上不正确。

        您可以在文档的任何位置使用 JavaScript 文件链接。在&lt;head&gt; 和页面其他地方使用一些有不同的原因。 (例如,谷歌分析代码被指示放在底部。)

        【讨论】:

          【解决方案10】:

          如果您要调用多个 .css 或 .js 文件,只需依次包含它们,或者:

          <head>
          
          <link href="css/grid.css" rel="stylesheet" />
          
          <link href="css/style.css" rel="stylesheet" />
          
          <script src="js/jquery-1.4.4.min.js"></script>
          
          <script src="js/jquery.animate-colors-min.js"></script>
          
          </head>
          

          【讨论】:

            【解决方案11】:

            你应该把它放在

            中。我通常将样式引用放在 JS 之上,如果其中一些依赖于其他引用,我会从上到下排序我的 JS,但我相信所有引用都是在页面呈现之前加载的。

            【讨论】:

            • 为什么?它有什么区别?如果我在 中添加另一个 CSS 文件会发生什么?
            • 男人!给我机会写完!我打了保存到早...安顿下来。
            • @iSumitG:你不能将 CSS 放在 &lt;body /&gt; 中(好吧,没有人会从你的显示器里出来杀了你,这更像是一种“你不被允许”事物)。规格是这样说的。见below
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-17
            • 1970-01-01
            • 1970-01-01
            • 2012-07-09
            • 2013-04-17
            • 2011-01-03
            相关资源
            最近更新 更多