2014-11-08 90 views
1

有沒有一種簡單的方式來加載基於條件加載CSS文件有條件

例如一些CSS文件:

這是我的網站:

 www.example.com/en <------------ 

EN是我們的語言,它可以是frtr或其他什麼,

我們不能說?

if (en){ 
     load this css file 

    }else{ 
     load another css file 

    } 

我想這是在一個PHP MVC環境中工作,而這個CSS文件是高音引導它們是RTL或網格的流動順序(方向)LTR。

我有機會獲得EN作爲變量,所以我知道,如果它是連接或任何 但我覺得頁面加載停止,直到所有的CSS文件已經被下載

+2

在任何php腳本開始載入之前加載'css文件。 PHP之前加載CSS :) – 2014-11-08 18:46:16

+0

嗯,有點不好解釋我,我會編輯 – Milad 2014-11-08 18:52:10

+1

@DaveChen true所以在這種情況下,你可以使用php來給你正確的css文件 – Krimson 2014-11-08 18:53:57

回答

5

您可以使用PHP函數給你在正確的CSS文件,然後可以呼應到頁面

PHP

function getCSSUrl($lang){ 
    $cssBase = "www.example.com/css/"; 

    switch($lang){ 
     case "en": 
      return $cssBase."en.css"; 
     case "fr": 
      return $cssBase."fr.css"; 
     case "ru": 
      return $cssBase."ru.css"; 
     default: 
      return $cssBase."en.css"; 
    } 
} 

yourview.php

<html> 
    <head> 
     <link rel="stylesheet" type="text/css" 
      href="<?php echo getCSSUrl($_GET['lang']); ?>"> 
    </head> 

    <body> 
    .... 
    </body> 
</html> 
+0

我認爲這會造成不好的使用體驗 頁面首先加載沒有css文件,幾秒鐘後,css將加載?嗯? – Milad 2014-11-08 19:00:00

+2

編號'yourview.php'文件通過php解析器發送,所有的php代碼被評估並添加到html中。然後它被髮送到瀏覽器。它不會發送html輸出,然後評估php然後發送 – Krimson 2014-11-08 19:00:00

3

既然你可以鏈接使用

然後你就可以switch()在PHP,使得css文件:

<php 

swith($en) 
{ 

case "en": 
echo " <link rel='stylesheet'.../> "; //load for English 
break; 


case "Fr": 
echo " <link rel='stylesheet'.../> "; //load for French 
break; 


case "gr": 
echo " <link rel='stylesheet'.../> "; //load for Greek :p) 
break; 

} 

?> 

應該照顧它。