0

我正在建立一个页面之间有很多类似 CSS 的网站。我决定一个好的方法是让 php 函数(带有参数)将 css 生成为字符串,并在我服务的每个页面中作为内部样式表输出。好处:

  • 这样,如果我进行更改,它将反映在整个站点中,而无需维护重复项
  • 我只能为某个页面发送必要的 CSS
  • 这比拥有小 css 文件并在包含时发送大量 css 标头要好
  • 在加载样式表之前可能会显示内容的可能性消失了
  • 我可以使用参数计算尺寸
  • 我可以创建一个层来缩小从这些函数接收到的结果或提供缓存的缩小 css

不幸的是,我还没有在其他任何地方看到这样做,所以我认为这可能是因为 SEO。生成的内部样式表最大约为 15kb(在缩小样式表之前)。

我需要您对这种方法的意见以及您对长内部样式表对 SEO 的影响的看法。

非常感谢。

4

5 回答 5

4

不是您问题的答案(这很有趣!),但是您对内联 CSS 的大多数论点都是错误的。外部样式表总是更好更快的解决方案。

  • 您可以通过在样式表的文件名中添加版本号来处理第一点

  • 第二点没有实际意义,因为外部文件被缓存了,所以没有额外的请求

  • 出于同样的原因,第三点没有实际意义

  • 一旦缓存了样式表,第四点就不再重要了

  • 第五点可以使用内联 CSS 仅针对需要动态更新的属性进行排序——通常是整个 CSS 代码库的一小部分

  • 第六点我不明白。

去找一个外部样式表。只要确保它得到正确的缓存头!

于 2010-10-12T22:50:43.200 回答
2

像长的内联 JavaScript 块一样,它们被忽略。

机器人看的是内容,而不是布局。如果您想更好地展示他们所看到的内容,请尝试Lynx 浏览器

不幸的是,它们也不会像外部 CSS 和 JS 那样被缓存在用户的浏览器上,从而使每个页面加载速度变慢。实际上,拥有一个大的外部样式表比为每个页面提供相关的“css 片段”更有效。

于 2010-10-12T22:49:55.227 回答
2

假设“内部样式表”是指使用<style>标签包含的内联 CSS,我建议不要这样做。如果您使用外部样式表,访问者会在第一次请求时下载一次,然后将其缓存。通过包含所有内联 CSS,您为每个 HTML 请求添加了页面权重。

尽管为当前页面提供 CSS 或将 CSS 拆分为许多不同的页面特定样式表似乎更有效;在实践中,通常最好只拥有一个样式表。提供这个压缩和适当的过期标头几乎总是比替代品更快。

关于 SEO,机器人忽略 CSS,所以这不会有任何影响。如果你有太多的 CSS 以至于大大减慢了页面的加载速度,理论上你可能会开始遇到问题,但在这甚至可能成为问题之前,你需要大量的内联 CSS。

于 2010-10-12T22:56:38.110 回答
1

据我所知,您的 CSS 表单在 SEO 中的作用很小,更重要的是您的 HTML 标记和执行。

遵循标题标签的“< h1 > - < h5 >”顺序,附带“< p >”标签而不是“< font >”或类似方法将影响网络爬虫识别内容并确定内容优先级的能力在您的页面中。

虽然您可以使用 CSS 隐藏您只想出现在搜索引擎和类似技术中的段落,但与 HTML 结构相比,它的重要性并不大。

于 2010-10-12T22:52:32.837 回答
1

你说的所有好处都适用。搜索引擎不太关心 CSS 和 javascript (当然,如果你的页面包装和发送时间过长,这会影响,但我认为不是这样)。

我以前见过这种解决方案,但是人们倾向于避免使用脚本来提供服务,一旦您可以使用媒体查询,只编写一个外部样式表。我认为你应该看看这个。

但是,我看到您正在尝试优化发送的 CSS。这很好,但是谈到所有床单的 80k,我会想,如果您没有过度复杂化规则。

好吧,作为最后的意见,您可以缓存许多不同的响应并在页眉上使用“规范”的东西。

于 2010-10-12T23:09:58.527 回答