0

我正在使用 PHP 来确定用户是使用移动设备还是桌面浏览器。现在,我将声明设置为回应“是”或“否”。这些都正常运行。但是,如果设备是移动设备,我想添加某些 CSS 代码,如果不是,我想添加某些 CSS 代码。这可能吗?

这是一个例子:

$ismobile = check_user_agent('mobile');
if($ismobile) {
    <div id="slider1">
         Sample Text
        </div>

} else {
    <div id="slide2">
        Sample Text 2
        </div>

谢谢!

4

7 回答 7

4
$ismobile = check_user_agent('mobile');
if($ismobile) {
    ?><link rel="stylesheet" type="text/css" href="mobile.css">
<?php
} else {
    ?><link rel="stylesheet" type="text/css" href="desktop.css">
<?php
}
于 2013-10-21T16:15:18.963 回答
1

是的,就像您回显“是”和“否”一样,您可以在 HTML 样式标签内回显您的 CSS 样式,或者更好的是,加载一个 CSS 文件 ( <link rel="stylesheet" type="text/css" href="mystyle.css">)。

于 2013-10-21T16:14:38.420 回答
0

你可以在你的身体上放一个类<body class="mobile"> ,然后使用 css 来专门针对移动设备

.mobile #mydiv {background:red} 
于 2013-10-21T16:16:31.443 回答
0

有几种方法可以做到这一点。我会首先研究媒体查询,因为它是一个更简洁的解决方案,并且意味着您不需要混合 php。

然而,快速的方法是

    <?php
    $ismobile = check_user_agent('mobile');
    if($ismobile) {?>
        <div id="slider1"> Sample Text</div>
    <?php } else { ?>
        <div id="slide2">Sample Text 2</div>
<?php } ?>
于 2013-10-21T16:16:48.913 回答
0

虽然其他回复有效,但我喜欢精简代码,所以我会把它贴在 2 行上并完成它。

$ismobile = check_user_agent('mobile') ? 'mobile' : 'main' ;
echo '<link rel="stylesheet" type="text/css" href="' . $ismobile . '.css">';

其背后的逻辑很简单。您有 2 个样式表,名为 main.css 用于主模板,而 mobile.css 用于移动布局。

考虑到这一点,$ismobile 始终返回 true 或 false,以 mobile.css 或 main.css 结尾,具体取决于返回值。

由于您总是会抓住其中一个(真或假),因此您将始终拥有包含的样式表的值。

最终结果是您有 2 个样式表,需要有 2 个 div,这在 html 级别复制了代码,因为 #slider 可以在每个中定义 2 组单独的属性集,这意味着不需要 #slide2 。

于 2013-10-21T16:21:18.650 回答
0

您可以添加两个不同的样式表:

<link rel="stylesheet" type="text/css" href="<?php echo check_user_agent('mobile') ? 'mobile' : 'desktop'; ?>.css">

或者只是在 body 标签中添加一个类:

<body class="<?php echo check_user_agent('mobile') ? 'mobile' : ''; ?> another-body-class">

但是您确实应该使用基于屏幕分辨率而不是用户代理屏幕外观的CSS 媒体查询。

于 2013-10-21T16:18:16.547 回答
0
$ismobile = check_user_agent('mobile');
$style = $ismobile ? 'mobile' : 'notmobile';

echo '<div id="slider1" class='.$style.'>
   Sample Text
</div>';
于 2013-10-21T16:18:25.610 回答