【问题标题】:CSS Media Queries based on PHP variable基于 PHP 变量的 CSS 媒体查询
【发布时间】:2014-11-06 11:54:45
【问题描述】:

我有一个多语言网站,该网站的所有文本都根据每种语言的 PHP 会话变量加载。我的问题是,当以德语加载文本时,我页面顶部的菜单栏对于它的容器来说变得太长,并且一些菜单项会掉到下面。这没关系,但下拉的菜单项会阻止子菜单被选中。

Is there a way to use css media queries to reduce font size of my menu when a certain variable is selected?

【问题讨论】:

    标签: php html css session media-queries


    【解决方案1】:

    最好的方法是根据语言在正文中添加一个 CSS 类,例如 <body class="language-german">,然后根据它编写 CSS 规则

    body.lang-german nav {font-size: 12px;} 
    

    【讨论】:

      【解决方案2】:

      使您的 CSS 文件成为 PHP 文件。是的,你可以做到,这不是魔法。

      假设您有一个名为 style.css 的 CSS 文件:将其重命名为 style.css.php.css 是可选的)

      <?php
      $lang = $_SESSION['page_lang']; //or however you prefer
      
      if($lang == 'de'){
        echo "german style rules";
      } else {
        echo "other style rules";
      }
      

      当然,这是简化的,但应该会让你去。

      【讨论】:

        【解决方案3】:

        没有这样的媒体查询,但你可以做什么:

        1. 检查会话中的语言是否为德语
        2. 如果没有,就不要再做任何事情了
        3. 如果是,请加载一个额外的 CSS 文件或额外的规则,其中您已定义字体大小,例如:
        nav ul li {
          font-size: 10px;
          font-size: 0.8rem;
        }
        

        这不会改变其他语言,对于德语,您可以定义自定义 CSS(font-size 或其他任何东西)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-10-15
          • 1970-01-01
          • 1970-01-01
          • 2016-06-22
          • 1970-01-01
          • 2012-06-09
          • 2011-07-31
          相关资源
          最近更新 更多