针对移动设备或浏览器调整大小更改网站设计

7

如果这个问题之前已经被问过了,我很抱歉。我确信某处应该有答案,但出于某种原因,我找不到它,可能是使用了错误的搜索词。

我知道您可以使用媒体查询来针对不同的设备进行定位,例如:

@media only screen and (max-device-width: 480px) {
    div#wrapper {
        width: 400px;
    }
}

但我想知道的是,如何根据设备类型改变我的网站设计呢?

示例

假设我的网站结构通常如下:

如果是桌面端

<div id="user">
    <div id="profilePic">
        <img src="images/responSiveTest/ppic.PNG" class="p-img" />
    </div>
    <div id="uname">
        <h4 style="color:white">Welcome  Guest</h4>
        <p style="color:white">Please Log in</p>
    </div>
</div>

现在,当用户在移动设备上查看我的网站时,我该如何更改我的 div / 网站布局,比如像这样做:

如果是移动设备

<div id="mobileNav">
    <div id="namePic">
        <!-- Mobile user -->
    </div>
</div>

希望我的请求有意义,感谢这个令人惊叹的网站上的每一个人提供的帮助。


我知道这篇文章有些老了,但是为了其他人的参考:可以考虑仅隐藏非关键性的“视觉”部分以使其适应移动端。通常改变标记意味着改变功能,而这对最终用户来说并不是一个好的体验。太多次了,我访问的“手机”版本网站因为基本操作与桌面版本不匹配而无法使用。 - Ryall
3个回答

9

我通常在我的项目中这样做。我默认准备内容,但将其设置为display: none。当媒体查询检测到移动设备宽度时,它会为设备呈现适当的内容。

使用CSS Media Query

HTML

<div id="content">
    <div class="desktop">
        <!--
            some content and markups here. by default this is loaded in desktop
        -->
    </div>

    <div class="mobile_device_380px">
        <!-- content and some markups for mobile -->
    </div>

    <div class="mobile_device_480px">
        <!-- content and some markups for mobile -->
    </div>
</div>

CSS

  /* if desktop */
    .mobile_device_380px {
        display: none;
    }
    .mobile_device_480px {
        display: none;
    }


    /* if mobile device max width 380px */
    @media only screen and (max-device-width: 380px) {
        .mobile_device_380px{display: block;}       
        .desktop {display: none;}
    } 

    /* if mobile device max width 480px */
    @media only screen and (max-device-width: 480px) {
       .mobile_device_480px{display: block;}
       .desktop {display: none;}
    }


请注意,您的页面可能需要较长时间才能加载。只需限制需要更改的内容,并具体说明。


0
如果你想要使用纯JavaScript实现这个功能,以下是代码:
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
// some code.. 
}

你可以再次使用jQuery来完成这个操作 -

$.browser.device = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));

如果您想用PHP实现这一点,请查看这篇文章

0

你可以使用这个模块

为了检测像手机或平板电脑这样的移动设备,你可以使用以下代码。

require_once '../Mobile_Detect.php';
$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接