這篇文章主要介紹了避免Smarty與CSS語法沖突的方法,實例分析了Smarty與CSS中大括號{}沖突的處理技巧,需要的朋友可以參考下
本文實例講述了避免Smarty與CSS語法沖突的方法。分享給大家供大家參考。具體分析如下:
熟悉CSS的人很快就會發(fā)現(xiàn)Smarty和CSS的語法存在沖突,因為二者都需要使用大括號{}。如果簡單地將CSS標(biāo)記嵌入到HTML文檔首部,將導(dǎo)致"不可識別標(biāo)記"錯誤:
<html>
<head>
<title>{$title}</title>
<style type="text/css">
p{
margin::2px
}
</style>
</head>
...
不要擔(dān)心,因為我們有3種解決方案。
一、使用link標(biāo)記從另一個文件中提取樣式信息:
<html>
<head>
<title>{$title}</title>
<link rel="stylesheet" type="text/css" href="css/default.css"/>
</head>
...
二、使用Smarty的literal標(biāo)記將樣式表信息包圍起來
這些標(biāo)記告訴Smarty不要解析該標(biāo)記內(nèi)的任何內(nèi)容:
<html>
<head>
<title>{$title}</title>
{literal}
<style type="text/css">
p{
margin::2px
}
</style>
{/literal}
</head>
...
三、修改Smarty的默認(rèn)定界符
可以通過設(shè)置center_delimiter和center_delimiter屬性來做到這一點:
<?php
require("Smarty.class.php");
$smarty=newSmarty;
$smarty->left_delimiter='';
$smarty->right_delimiter='';
...
?>
雖然3種解決方案都能解決問題,但其中第一種可能是最方便的,因為將CSS放在單獨的文件中是一種常見的實踐做法。此外,這種解決方案不需要修改Smarty的重要默認(rèn)配置(定界符)。
希望本文所述對大家的php程序設(shè)計有所幫助。
更多信息請查看IT技術(shù)專欄