Rumah >pembangunan bahagian belakang >tutorial php >PHP常规模板引擎中与CSS/JSON冲突的解决,cssjson_PHP教程
主要针对对象:Smarty/Dwoo
参考:http://developer.51cto.com/art/201009/224929.htm
其实以前都不怎么关注模板引擎,觉得没必要使用。但随着年龄的增加,代码洁癖越来越严重,才开始碰到这个问题。
Smarty和CSS/JS的语法存在冲突,因为二者都需要使用大括号{}。虽然可以改Smarty的界定符,但你在一个现存系统中,去修改所有相关代码,是不划算的。
1. 避免同时出现
通过外部引用的方式避免。问题是避无所避。所以这种情况只适合少量简单的情况。
2. 修改Smarty界定符
2. 使用Smarty的literal标记将样式表信息包围起来
<span><</span><span>html</span><span>></span> <span><</span><span>head</span><span>></span> <span><</span><span>title</span><span>></span>{$title}<span></</span><span>title</span><span>></span><span> {literal} </span><span><</span><span>styletypestyletype</span><span>="text/css"</span><span>></span><span> p</span><span>{</span><span> margin</span><span>:</span><span>:2px </span><span>}</span> <span></</span><span>style</span><span>></span><span> {/literal} </span><span></</span><span>head</span><span>></span>
<span><</span><span>script </span><span>type</span><span>="text/javascript"</span><span>></span> <span>function</span><span> goods_show(id){<br /><br /></span><span><!--</span><span>{literal}</span><span>--><br /><br /></span><span>art.dialog.open(url,{id:</span><span>'</span><span>select</span><span>'</span><span>,title:</span><span>'</span><span>的:</span><span>'</span><span>,width:</span><span>760</span><span>,height:</span><span>380</span><span>,padding: </span><span>'</span><span>10px</span><span>'</span><span>});<br /><br /></span><span><!--</span><span>{</span><span>/</span><span>literal}--></span> <span> } </span><span></</span><span>script</span><span>></span>
第三种无疑是绿色环保的,在遇到冲突的地方,加上literal标记包裹。
该方案对Dwoo引擎同样有效。
关于框架你可以这么理解, 就像一个大楼的地基, 无论大楼怎么盖, 打造地基的方法永远都是类似的.
在我们进行程序开发的过程中, 你会发现每个程序之间都要有很多类似的东西和可以重用的东西, 如果你每个项目过后都把这些类似的东西积累起来, 那么这些代码可以称为库, 当库越来越强大, 甚至连程序结构都可以重用的时候, 你就可以叫他框架了.
国内比较好的框架有thinkPHP, fleaPHP, 国外zendFramework和symfony. 如果楼主想靠php找工作建议学zendFramework, 如果个人开发建议使用symfony.
关于模板引擎, 你可以理解成施工队里刷油漆的, 他们是专业刷油漆的, 盖楼的不用管油漆怎么刷, 刷油漆的也不关注楼是怎么盖的.
其实模板引擎的主要作用还是将逻辑和显示进行分离, 最初可能是为了让程序员和美工更好的进行配合, 既然初学者, 我想你经常会把php代码和html写到一起, 你自己是可以看懂的, 但是美工不一定看得懂, 他们可能只能看懂html和css, 再者说如果美工在混合代码里加了复杂的css或者js你也一样会看不懂, 这样就给程序开发带来了很大的困难. 所以才有了模板引擎, 它将逻辑和显示完全分离, 程序员只需要关注逻辑, 在程序的最后将数据准备好然后传递给模板, 而美工只要修改模板而不需要考虑程序逻辑, 模板技术在团队开发中是经常使用的, 这里推荐你学习smarty.
不知道有没有讲透, 有不懂可以补充.
echo '
im create by php '
?>
编译后,HTML结构是什么?CSS是在客户端运行,所以当你发现样式不对的时候,你查看源文件,保存为HTML去检查,看有什么不同,如果你是AJAX做的,源文件没有对应的结构,那就就打开FireBug 复制代码生成HTML 再去检查!
总之,要检查CSS,请不要盯着程序看,放到客户端HTML的环境下去测试吧!