<span>_border-radius: 10px;</span>該代碼將生成這樣的屬性列表:
<span>-o-border-radius: 10px; </span><span>-moz-border-radius: 10px; </span><span>-webkit-border-radius: 10px; </span><span>border-radius: 10px;</span>然後,在HTML中,以這樣的方式編寫了一個鏈接以導入樣式:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="css/css.php?f=css_file1|css_file2|css_file3"</span>></span></span>使用單個鏈接元素,將將三個CSS文件加載為一個。 CSS.PHP腳本將在列出的文件中讀取(css_file1.css,css_file2.css和css_file3.css),組合它們並將其返回為單個文件。 看起來很容易使用,對嗎?因此,有了進一步的ADO,讓我們開始編寫一些代碼!
<?php $files = explode("|", $_GET["f"]); $contents = ""; foreach ($files as $file) { $contents .= file_get_contents($file . ".css"); } preg_match_all('/_[a-zA-Z-]+:s.+;|[a-zA-Z-]+:s_[a-zA-Z].+;/', $contents, $matches, PREG_PATTERN_ORDER); $prefixes = array("-o-", "-moz-", "-webkit-", ""); foreach ($matches[0] as $property) { $result = ""; foreach ($prefixes as $prefix) { $result .= str_replace("_", $prefix, $property); } $contents = str_replace($property, $result, $contents); } $contents = preg_replace('/(/*).*?(*/)/s', '', $contents); $contents = preg_replace(array('/s+([^w'"]+)s+/', '/([^w'"])s+/'), '', $contents); header("Content-Type: text/css"); header("Expires: " . gmdate('D, d M Y H:i:s GMT', time() + 3600)); echo $contents;該代碼首先接收到要從URL參數中處理為字符串的CSS文件列表(在PHP中可訪問為$ _GET [“ F”])。每個文件都用管道形式分開。 Explode()函數將返回文件名數組的管道上的字符串拆分。 功能file_get_contents() 將每個文件的內容接一個地添加到變量$內容上。 在檢索了CSS文件的內容後,下一步是找到以下劃線開頭的任何CSS屬性,並用特定於瀏覽器的前綴屬性替換它們。函數preg_match_all()找到匹配正則表達式的文本中的所有零件,並將匹配項放入$匹配[0]作為數組中。 我不會解釋為什麼$ Matches具有數組索引0,因為您可以閱讀有關PHP手冊中該功能的明確說明。相反,我想專注於解釋我們計劃的流程。 此圖像解釋了正則表達式的模式:
<span>_border-radius: 10px;</span>第二個文件是Center.css:
<span>-o-border-radius: 10px; </span><span>-moz-border-radius: 10px; </span><span>-webkit-border-radius: 10px; </span><span>border-radius: 10px;</span>第三個文件是頁腳:css:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="css/css.php?f=css_file1|css_file2|css_file3"</span>></span></span>看看如何編寫CSS3屬性;那些具有特定於瀏覽器的前綴的人只給出了一次,並且在它們面前有一個下劃線。 接下來,創建將使用樣式的文件索引索引。
<?php $files = explode("|", $_GET["f"]); $contents = ""; foreach ($files as $file) { $contents .= file_get_contents($file . ".css"); } preg_match_all('/_[a-zA-Z-]+:s.+;|[a-zA-Z-]+:s_[a-zA-Z].+;/', $contents, $matches, PREG_PATTERN_ORDER); $prefixes = array("-o-", "-moz-", "-webkit-", ""); foreach ($matches[0] as $property) { $result = ""; foreach ($prefixes as $prefix) { $result .= str_replace("_", $prefix, $property); } $contents = str_replace($property, $result, $contents); } $contents = preg_replace('/(/*).*?(*/)/s', '', $contents); $contents = preg_replace(array('/s+([^w'"]+)s+/', '/([^w'"])s+/'), '', $contents); header("Content-Type: text/css"); header("Expires: " . gmdate('D, d M Y H:i:s GMT', time() + 3600)); echo $contents;查看鏈接標籤中的HREF屬性。每個CSS文件名都被管道隔開。
>如何使用CSS3前綴和Compressor工作?
a css3 prefixer和壓縮機通過掃描CSS for properties for Properies for Properies prefix verefix verefix vendor.然後,它會自動添加這些前綴,從而節省您手動進行的時間和精力。壓縮機功能通過刪除CSS文件中的空格,評論和線路斷裂等不必要的字符來起作用,從而降低了它們的尺寸。 >為什麼我要使用CSS3 prefixer和壓縮機可以很好地使用CSS3前綴和壓縮機?它確保您的CSS屬性在不同的瀏覽器上工作,並減少CSS文件的大小,從而提高網站的加載速度。它還為您節省了手動添加供應商前綴和壓縮CSS文件的時間和精力。>
>
>>>,而CSS3 prefixer和Compressor提供了許多好處,重要的是要注意,可能並不總是必要的。一些現代瀏覽器不再需要某些CSS屬性的供應商前綴。另外,過度壓縮您的CSS文件可能會使它們難以讀取和維護。
>有哪些良好的CSS3前綴和壓縮機工具?
>
有許多良好的CSS3 prefixer和Compressor工具可用,包括AutoPrefixer,PostCSS和CSS驅動器。這些工具提供了一系列功能,可以與各種CSS預處理器一起使用。以上是自動CSS3前綴和壓縮機的詳細內容。更多資訊請關注PHP中文網其他相關文章!