【问题标题】:load css file conditionally有条件地加载css文件
【发布时间】:2015-01-05 09:28:20
【问题描述】:

有没有一种简单的方法可以根据条件加载一些css文件

例如:

这是我的网站:

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

en 是我们的语言,它可以是 frtr 或其他,

我们能说不吗?

   if (en){
         load this css file

    }else{
         load another css file

    }

我希望它在 Php MVC 环境中工作,并且这个 css 文件是 tweeter 引导程序,在网格流顺序(方向)中是 Rtl 或 ltr。

我可以访问 en 作为变量,所以我知道它是 en 还是什么 但我认为页面加载会停止,直到所有 css 文件都已下载

【问题讨论】:

  • css files load before any php scripts starts to load 不。 PHP 在 CSS 之前加载 :)
  • 嗯,我的解释有点糟糕,我会编辑
  • @DaveChen true 所以在这种情况下,您可以使用 php 为您提供正确的 css 文件

标签: php html css twitter-bootstrap


【解决方案1】:

因为您可以使用

链接 css 文件

那么你可以在php中switch(),这样:

<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;

}

?>

应该照顾它。

【讨论】:

    【解决方案2】:

    您可以使用 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>
    

    【讨论】:

    • 我认为这会导致糟糕的使用体验页面加载首先没有css文件,几秒钟后加载css?嗯?
    • 没有。 yourview.php 文件通过 php 解析器发送,所有 php 代码都被评估并添加到 html 中。然后它被发送到浏览器。它不发送 html 输出然后评估 php 然后发送它
    猜你喜欢
    • 2014-05-03
    • 2018-02-24
    • 2013-03-09
    • 2017-10-30
    • 2015-01-31
    • 2021-11-24
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    相关资源
    最近更新 更多