一般来说,我所做的所有css类,特别是布局都是这样的:
.pageBoundaries{
width:999px;
margin:auto;
}
.onethird{
width:333px;
float:left;
display:block;
}
.twothird{
width:666px;
float:left;
display:block;
}
.half{
width:499px;
float:left;
display:block;
}
现在,我在想我制作一个php文件来控制宽度(可能是颜色,边框等)。就像:
$pageWidth=999;
.pageBoundaries{
width:<?php $pageWidth ?>px;
margin:auto;
}
.onethird{
width:<?php $pageWidth/3 ?>px;
float:left;
display:block;
}
.twothird{
width:<?php ($pageWidth*2)/3 ?>px;
float:left;
display:block;
}
.half{
width:<?php $pageWidth/2 ?>px;
float:left;
display:block;
}
然后我可以从这个php文件设置标题,以便浏览器将其解释为css文件。关于这个计划的任何想法?它的优点和缺点?
通过这样做,我认为制作多色主题也很容易。答案 0 :(得分:2)
似乎没问题,只需确保发送所有正确的HTTP标头进行缓存,以便浏览器不会在每次请求时下载CSS文件。
另请查看SASS和LESS。它们是解决同一问题的两种不同技术(因此决定其中一种)。他们所做的是,为您提供更多编写CSS的工具。像变量这样的东西,嵌套(所以你不必在整个地方重复你的选择器),扩展,混合,功能等。看看SASS的主页,它可以很好地概述它的作用。< / p>
答案 1 :(得分:1)
这种方法通常 * 很好。
请不要忘记发送权限caching headers,以便每次都不会请求资源。
如果您在每个页面上都有可能更改的CSS设置,请考虑将它们分开并将它们放入实际的HTML文档中,这样就不必每次都加载整个样式表。
*在流量非常高的站点上,PHP解释器在每个请求中解析样式表这一事实是个问题,因为它占用了RAM。在这种情况下,最好让PHP脚本生成静态文件。
答案 2 :(得分:1)
这是一个有趣的想法,但可能不是最好的方法。通过PHP的动态CSS确实有一些很酷的优点,但我不会将它用于页面宽度。
特定骗局:
•加载速度较慢。您可以设置缓存标头,以便它只加载一次CSS,但仍然不是最佳方式。您必须不断清空/使缓存无效,重命名文件或添加参数。
•另外,PHP仅在页面加载时设置页面宽度值。如果页面调整大小会怎样? (因此人们通常使用javascript代替PHP来达到你所描述的目的)
通过PHP很好地使用动态CSS:
•如果要为某些用户设置特定的CSS属性,或者根据PHP中设置的某些变量设置。 (例如,为数据库中的用户存储的颜色首选项)
何时不通过PHP使用CSS:
•在页面加载后需要更改CSS时。 (例如,在调整浏览器窗口大小时调整大小/移动元素 - 不使用百分比)
基于javascript的方法可能会更好。像 jQuery 这样的框架为manipulating CSS以及accessing the width of elements such as the document or window提供了一些很好的工具。
答案 3 :(得分:0)
您必须将css和php代码嵌入到同一文件中。还有一件事,请记住,php首先呈现为服务器脚本,然后是客户端脚本,如html,js或css
答案 4 :(得分:0)
这个想法很好,但我认为你可以使用LESS以更干净的方式做同样的事情
答案 5 :(得分:0)
优点:您可以使用此方法拥有自己的动态主题
缺点:您必须停止客户端浏览器从缓存中获取动态内容,但如果您这样做,将在每次请求时下载CSS文件,为客户端加载每个页面将花费更多时间