避免smarty与css语法冲突的方法

避免smarty与css语法冲突的方法


本文实例讲述了避免smarty与css语法冲突的方法。分享给大家供大家参考。具体分析如下:

熟悉css的人很快就会发现smarty和css的语法存在冲突,因为二者都需要使用大括号{}。如果简单地将css标记嵌入到html文档首部,将导致不可识别标记错误:

 
 
  1. <html> 
  2.  
  3. <head> 
  4.  
  5. <title>{$title}</title> 
  6.  
  7. <style type=text/css> 
  8.  
  9. p{ 
  10.  
  11. margin::2px 
  12.  
  13.  
  14. </style> 
  15.  
  16. </head> 
  17.  
  18. ... 

不要担心,因为我们有3种解决方案。

一、使用link标记从另一个文件中提取样式信息:

 
 
  1. <html> 
  2.  
  3. <head> 
  4.  
  5. <link rel=stylesheet type=text/css href=css/default.css/> 
  6.  
  7. </head> 
  8.  
  9. ... 

二、使用smarty的literal标记将样式表信息包围起来

这些标记告诉smarty不要解析该标记内的任何内容:

 
 
  1. <html> 
  2.  
  3. <head> 
  4.  
  5. {literal} 
  6.  
  7. p{ 
  8.  
  9. margin::2px 
  10.  
  11.  
  12. </style> 
  13.  
  14. {/literal} 
  15.  
  16. </head> 
  17.  
  18. ... 

三、修改smarty的默认定界符

可以通过设置center_delimiter和center_delimiter属性来做到这一点:

 
 
  1. require(smarty.class.php); 
  2.  
  3. $smarty=newsmarty; 
  4.  
  5. $smarty->left_delimiter=''
  6.  
  7. $smarty->right_delimiter=''
  8.  
  9. ... 
  10.  
  11. ?> 

虽然3种解决方案都能解决问题,但其中第一种可能是最方便的,因为将css放在单独的文件中是一种常见的实践做法。此外,这种解决方案不需要修改smarty的重要默认配置(定界符)。

希望本文所述对大家的php程序设计有所帮助。


来源:51CTO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值