【问题标题】: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】:
没有这样的媒体查询,但你可以做什么:
- 检查会话中的语言是否为德语
- 如果没有,就不要再做任何事情了
- 如果是,请加载一个额外的 CSS 文件或额外的规则,其中您已定义字体大小,例如:
nav ul li {
font-size: 10px;
font-size: 0.8rem;
}
这不会改变其他语言,对于德语,您可以定义自定义 CSS(font-size 或其他任何东西)