0

我不是 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; ?>`

两者都没有任何效果。任何帮助将不胜感激!

4

2 回答 2

1

最后我不得不走一条不同的路线,简单地改变宽度来强制中文文本是垂直的。写作模式对我不起作用。

这是我使用的:

<!-- 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-->
于 2012-03-08T20:53:37.393 回答
0

您可能会遇到语法错误。

当您使用 {} 时,您应该删除这段代码:

<?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" );
        }
    ?>
}
于 2011-10-07T12:06:29.977 回答