2012-06-04 156 views
1

我正在一个网站(或者更确切的说几个网站)上工作,这些网站大部分都是在HTML5/CSS3中完成的,其中有一些PHP会在其中引入一些功能。单个CSS样式表或每个样式一个样式表?

那么,在单个样式表中调用CSS的所有CSS或者(因为代码的剪切大小)具有每个节都有其自己的外部样式表? (单独在我的导航栏和页脚之间可能有1500-2000行代码)。

可能有好处和回退,例如代码清洁度和对多个样式表的“调用”数量。是否有坚实的技术原因,为什么一个人比另一个人使用更多?我的目标是制作最小尺寸的最佳网站,以便通过各种设备快速轻松访问。这不是用户密集或过程繁重。

回答

3

关于标签大小写,有点历史可能有助于理解趋势从大写字母转变为小写字母的原因:在HTML4中,元素通常用大写字母表示,但根据W3Schools,W3C recommended they be written in lowercase(虽然我找不到引用)。然后,XHTML变得流行起来;但是the specification stipulated elements and attributes must be lowercase。和HTML5 specification says you can go either way, but lowercase is recommended

关于内部和外部的CSS,它确实取决于。如果多个页面正在访问相同的CSS,then the browser will likely cache it,这意味着将所有CSS放入单独的文件是明智的。我也喜欢这个代码抽象。但是,如果它是单个页面,则可以选择内联。

关于导航栏,这是一个偏好问题。我喜欢加载模板文件,通过DOM运行它,然后插入我需要的元素。对于性能你可以选择另一种方法,但我喜欢这个代码抽象。

类似以下内容:

<?php 

class Webpage { 

    private $document; 

    function __construct() { 
     $this->document = new DOMDocument(); 

     if($this->document->loadHTMLFile("template.html")){ 
      $this->createHeaderMenu(); 
     }else{ 
      trigger_error("Webpage->__construct() failed to load template.html", LOG_ERR); 
     } 
    } 

    protected function createHeaderMenu() { 
     $headerMenu = $this->document->getElementById("header-menu"); 

     $li = $this->document->createElement("li"); 
     $a = $this->document->createElement("a", "Homepage"); 
     $a->setAttribute("href", "/"); 
     $a->setAttribute("target", "_self"); 
     $a->setAttribute("title", "Homepage"); 
     $li->appendChild($a); 
     $headerMenu->appendChild($li); 
    } 

    public function output() { 
     return (string) $this->document->saveHTML(); 
    } 

} 

$page = new Webpage(); 
echo($page->output()); 

?> 

当然,template.html将您的模板,也将需要一个UI元素在里面设置为标题菜单的id属性。

+0

所以template.html被index.php调用(例如),并告诉index.php如何布局网站或其他“调用”将被显示? –

+0

是的, template.html基本上是一个纯粹的HTML版本的网站,没有任何内容。在'__construct()'中,它被作为DOMDocument加载。在'createHeaderMenu()'中,找到带有标题菜单id的元素,并插入一个里面带有元素的li元素;基本上它是填充你的空模板的内容。有很多方法可以对一只猫进行皮肤处理,但是这种方法可以让您保留实际的HTML,而不是将它分割成一堆包含或与PHP交织在一起。如果你想改变你的设计而不用搞乱PHP,那就太棒了:) –

+0

Cool PHP对我来说是一款全新的球类游戏。但我需要建立一个网站,其内容可以由其他不太懂网络用户编辑。我没有运气让任何CMS来满足我的需求,所以我猜它学会了硬编码。 –

1

总之,这取决于你,和确切的网站。尽管您的疑虑有几个答案:

  1. 小写字母。大写字母有点古老,但它对浏览器没有任何影响。
  2. 尽量减少HTTP请求。一个CSS通常更好,但这取决于。时间它都与http://www.webpagetest.org
  3. 使用PHP includes.
+0

太棒了,如果我理解PHP包含你分享的正确内容。我仍然需要在我的index.php中使用HTML来表示什么被称为在哪里。我对吗? –

+0

如果您使用PHP包含,那么CSS文件将在它到达浏览器之前包含在内。因此,您将不需要HTML标记来拉CSS,因为它已经在那里。 – legacybass

+0

所以样式表也被称为php文件而不是html文件?得到它了! –

0

方式作为Rcih建议它是真正由你来选择一个特定的编程约定或者说礼节(在HTML的情况下),它也确实取决于实际站点你正在努力。

重要的部分是,您的HTML代码(与任何其他编程语言一样)在将来或任何其他团队成员(如果有的话)在任何时间点都应该整齐易懂。

就CSS而言......如果您要在网站的大部分页面中使用相同的样式,最好有一个CSS文件可以链接到您的网页。除此之外,如果您计划为页面的不同部分分配不同的突发风格......您可能会因为“让每个部分都有自己的外部样式表”方法而行。