如何在CakePHP中创建CSS内部样式表

时间:2011-09-02 00:41:41

标签: css cakephp internal

我一直在使用CakePHP,最近需要从应用程序发送电子邮件。不幸的是,我无法想办法告诉CakePHP将css直接包含在文档中作为内部样式表而不是链接。我知道人们认为这是一个坏主意,但我的应用程序只是向我们公司发送电子邮件,所以我并不担心某人的电子邮件客户端搞砸了它。如果我只是包含链接它不起作用,因为引用是错误的,虽然我可以使链接成为绝对链接(http://myserver/css/myfile.css而不是/css/myfile.css)是第二个最好的选择,因为他们可以访问我的服务器。

如果没有办法在Cake中执行此操作,是否有一种快速方法可以使用PHP来读取文件的内容并将其转储到视图中?我想我可以从控制器那里做到这一点,听起来像是一个糟糕的黑客。

任何想法都将不胜感激,谢谢

6 个答案:

答案 0 :(得分:1)

我建议您使用php变量作为样式类,并将其直接用作css类。例如。

$class1 = "border : 1px solid #eeeeee; font-family : font1, font2, font3; color : #785634;"

并将其用作电子邮件模板

<div id='my-div' style=<?php echo $class1; ?>>Your div content </div>

即使我不知道如何在电子邮件中包含样式表,如果你创建了一些类,那么它们将无法在电子邮件模板中使用。

所以这就是我在项目中使用css的方式。

答案 1 :(得分:1)

你可以将css放在电子邮件布局中,就像普通的html一样(使用html电子邮件布局)

<style type="text/css"></style>

答案 2 :(得分:0)

审核code of the htmlHelper表明无法完成。

但是,您可以更改或重载帮助程序;要以最简单的方式这样做,只需在第371到378行之间添加一个新选项。

答案 3 :(得分:0)

您可以使用readfile()直接在视图中打印文件内容。

或者您可以$this->Html->url('css/yourcss.css', true)获取文件的完整路径并将其传递给css方法。

答案 4 :(得分:0)

我使用了脚本标签中包含的PHP的include函数,它运行得很好!在默认电子邮件视图中:

<script>
    include('css/your_css_doc.css');`
</script>

答案 5 :(得分:0)

你可以写内联css:

 <h2 style="color:#818381">Here are the latest stories everyone's talking about...</h2>