如何在cakephp中指定CSS文件?

时间:2013-09-17 07:13:57

标签: validation cakephp

我在W3验证中收到错误“文档类型不允许元素”链接“here”。我在index.ctp文件中指定CSS文件。我指定的方式是:

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

2 个答案:

答案 0 :(得分:1)

当W3C抱怨“文档类型不允许元素”链接“此处”时,表示您可能没有正确地将<link>元素放在<head>标记内。

在CakePHP中,我们使用HtmlHelper正确发出这些link代码:

  1. 内联样式:

    //this will echo out the link tag at this exact point
    echo $this->Html->css('your-css-script.css');
    
  2. 标题中的Css。假设您的主echo $this->Html->fetch('css')中有layout.ctp,那就是发出所有非内联css链接的位置。

    //this will be placed on top of your layout
    $this->Html->css('your-css-script.css', null, array('inline' => false));
    
  3. 多个CSS脚本:

    $this->Html->css(array('css1.css', 'css2.css',..));
    
  4. 另请注意,扩展名.css不是必需的,但它看起来更好看。尝试上面的一些组合,确保<link>标记位于<head>

    修改

    为了进一步明确对非内联css的疑虑,当你有这样的设置时:

    /View/Layouts/default.ctp

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <title><?php echo $title_for_layout ?></title>
        <?php
            echo $this->Html->meta('icon');
            echo $this->fetch('css');
            echo $this->fetch('script');
        ?>
    </head>
    <body></body></html>
    

    你的看法: /Layouts/View/Users/index.ctp

    <?php $this->Html->css('homes', null, array('inline' => false)); ?>
    Hello world!
    

    homes.css应自动进入您布局中的$this->fetch('css');代码块。当你想要你的布局倾斜时,这尤其好,并且在头部包含css而不是在渲染的html中散布它。

答案 1 :(得分:0)

在您的一个布局文件View/Layouts/default.ctp

一个(css / screen.css)

<?php echo $this->Html->css('screen');?>

多个

<?php echo $this->Html->css(array('bootstrap','screen'));?>