我在W3验证中收到错误“文档类型不允许元素”链接“here”。我在index.ctp文件中指定CSS文件。我指定的方式是:
<link rel="stylesheet" type="text/css" href="./css/homes.css" />
答案 0 :(得分:1)
当W3C抱怨“文档类型不允许元素”链接“此处”时,表示您可能没有正确地将<link>
元素放在<head>
标记内。
在CakePHP中,我们使用HtmlHelper
正确发出这些link
代码:
内联样式:
//this will echo out the link tag at this exact point
echo $this->Html->css('your-css-script.css');
标题中的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));
多个CSS脚本:
$this->Html->css(array('css1.css', 'css2.css',..));
另请注意,扩展名.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'));?>