我不是一个php专家,所以我有一些麻烦,试图写一个代码,将检测页面是否在中国,如果是这样,使书写模式垂直从右到左。我正在用qtranslate在英语和汉语之间切换。
这里有一个示例页面:http://occa-art.com/cai-yuan/biography/
我的第一个尝试是把这个放在标题中:
<?php if(qtrans_getLanguage()=='zh'): ?>
<style type="text/css">
#content, #nav {
writing-mode: tb-rl;}
</style>
<?php endif; ?>
然后我把它拿出来,并在基于本教程的外部php/css样式表中尝试了以下代码:http://www.blog.hemminga.net/index.php/conditional-css-through-php?blog=6:
<?php header("Content-type: text/css"); ?>
<?php
if (qtrans_getLanguage()=='zh')
{
$chinese = 1;
}
if (qtrans_getLanguage()=='en')
{
$chinese = 0;
}
?>
#content, #nav {
<?php
if ( $chinese )
{
echo ( "writing-mode: tb-rl; n" );
}
else
{
echo ( "writing-mode: lr-tb; n" );
}
?>
<?php endif; ?>`
都没有任何效果。任何帮助将非常感激!
最后我不得不采取不同的方法,简单地改变宽度,迫使中文文本垂直显示。写作模式就是不适合我。
下面是我使用的:
<!-- Nav layout based on language -->
<?php
if ( qtrans_getLanguage() == 'zh' ) { ?>
<style type="text/css" media="screen">
#page_nav li, #nav li {
width: 1em;
float: left;
margin-right: 5px;
margin-left: 0px;
margin-top: 0px;
font-size: 15px;
}
#page_nav {
height: 86px;
}
</style>
<?php } else { ?>
<style type="text/css" media="screen">
#page_nav li {
margin-right: 10px;
margin-left: 0px;
display: inline;
}
#page_nav ul {
margin-top: 10px;
}
#page_nav {
height: 78px;
}
</style>
<?php } ?>
<!--END-->
可能会出现语法错误。
当你使用{}时,你应该删除这段代码:
<?php endif; ?>
并关闭CSS语句。这里有一个更简短的方法:
<?php header("Content-type: text/css"); ?>
#content, #nav {
<?php
if ( qtrans_getLanguage() == 'zh' ) {
echo ( "writing-mode: tb-rl; n" );
}
else {
echo ( "writing-mode: lr-tb; n" );
}
?>
}