移动Web:媒体查询及手机端PC端识别

2023-11-17

媒体查询

响应式布局的核心,能够检测视口的宽度,然后编写差异化的 css 样式调整网页的布局方式。

响应式布局原理:根据 UI 设计稿需求合理设置响应断点,配合媒体查询书写差异化CSS样式。

响应断点是指媒体查询所采用的视口的宽度。作用:将屏幕尺寸划分成若干的区间。

语法格式

/* 写法一:内嵌式 */
@media 逻辑符 媒体类型 and (媒体特性) {
    执行的 css 代码
}

/* 写法二:外链式 */
<link rel="stylesheet" media="逻辑符 媒体类型 and (媒体特性)" href="xx.css" >
/* 视口宽度最小为320px,最大为640px时,呈现样式 */
@media (min-width: 320px) and (max-width: 640px) {
    body {
        background: #f00;
    }
}

/* 视口宽度最小为640px,最大为1024px时,呈现样式 */
@media (min-width: 640px) and (max-width: 1024px) {
    body {
        background: #00f;
    }
}

/* 视口宽度最小为1024px,最大为1600px时,呈现样式 */
@media (min-width: 1024px) and (max-width: 1600px) {
    body {
        background: #0f0;
    }
}

@media 解析过程

浏览器解读代码时,实时对当前设备进行检测

  • 如果条件满足 (表达式结果为 true ),那么久应用这条 @media 规则对应的样式。
  • 如果条件不满足 (表达式结果为 false ),{} 内的CSS就被忽略。

注意事项

@media 样式要放在默认样式的后面,根据css特性,后面的样式会覆盖前面的样式。

  • 若媒体特性使用 min-width 时:媒体查询从小到大书写。
  • 若媒体特性使用 max-width 时:媒体查询从大到小书写。
<html>
    <head>
        <!-- 默认样式 -->
        <link rel="stylesheet" href="css/index.css" />
        <style> 当前默认样式 </style>
        
        <!-- media 样式 -->
        <link rel="stylesheet" media="(min-width: 320px) and (max-width: 640px)" href="css/media.css" />
    </head>
    <body></body>
</html>

媒体类型及特性

类型名称 描述
屏幕 screen 带屏幕的设备
打印预览 print 打印预览模式
阅读器 speech 屏幕阅读模式
不区分类型 all 默认值,包括以上3种情形
@media screen and (min-width: 1024px) and (max-width: 1600px) {
    body {
        background: #0f0;
    }
}
特性名称 属性
视口的宽和高 width、height 数值
视口最大宽或高 max-width、max-height 数值
视口最小宽或高 min-width、min-height 数值
屏幕方向 orientation portrait: 竖屏 landscape: 横屏

横竖屏

/* 横屏 */
@media (orientation: landscape) {
    h1::before {
        content: '现在是横屏状态';
        color: #f00;
    }
}

/* 竖屏*/
@media (orientation: portrait) {
    h1::before {
        content: '现在是竖屏状态';
        color: #00f;
    }
}

20210508101606129
20210507180317809
20210507180340495

@media (resolution: 2dppx) {
    h1::after {
        content: '2倍屏';
        color: #f00;
    }
}

@media (resolution: 3dppx) {
    h1::after {
        content: '3倍屏';
        color: #00f;
    }
}

20210508103328926

20210508103435438


手机端和PC端识别

判断是否为移动端

通过正则判断是否为移动端

function idApp () {
    // 是否是苹果
    if (/iphone/i.test(navigator.userAgent)) {
        return true;
    }
    
   	// 是否是安卓
    if (/android/i.test(navigator.userAgent)) {
        return true;
    }
    
    // 是否是 windows phone
    if (/windows phone/i.test(navigator.userAgent)) {
        return true;
    }
    
    return false;
}

// 如果是移动端就跳转到移动端页面
if (isApp()) {
    location.href = 'https://m.js.com/';
} else {	// 否则就跳转到PC端页面
    location.href = 'https://www.js.com/';
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动Web:媒体查询及手机端PC端识别 的相关文章

随机推荐

  • 华硕笔记本开机自动进入bios,进不了windows系统的解决方法

    亲测有效解决办法 1 开机的时候长按F2键进入BIOS界面 通过方向键进 Secure 菜单 通过方向键选择 Secure Boot Control 选项 将其设定为 Disabled 2 通过方向键进入 Boot 菜单 通过方向键选择 L
  • ROS2执行source setup.bash命令报错及解决办法

    1 错误类型 在对ros2包编译通过后 在终端执行 source path to your workspace install setup bash 时报错 not found path to your workspace install
  • 快手直播怎么引流?快手直播效果怎么样?每个人对时尚的定义不同

    快手直播怎么引流 快手直播效果怎么样 每个人对时尚的定义不同 快手直播效果怎么样 每个人对时尚的定义不同 对于普通人来说 都会有对美的追求 比如找到适合自己的穿搭 适合自己的美妆 几乎每一种时尚风格在快手平台都能有被老铁认可的机会和其存在的
  • mysql常用的hint(原创)

    转自 http linux chinaunix net techdoc database 2008 07 29 1021449 shtml 对于经常使用Oracle的朋友可能知道 oracle的hint功能种类很多 对于优化sql语句提供了
  • 网络部署运维实验(pat 端口映射含命令)

    作者 小刘在这里 每天分享云计算网络运维课堂笔记 疫情之下 你我素未谋面 但你一定要平平安安 一 起努力 共赴美好人生 夕阳下 是最美的 绽放 愿所有的美好 再疫情结束后如约而至 目录 一 实验简介 二 图纸 三 实验命令 一 实验简介 本
  • 区块链开发团队,公链开发才是主战场

    在区块链技术开发公司不断完善的当下 很多企业都想加入进来 有远见的人永远能嗅到区块链未来市场的发展趋向 以区块链技术开发实体企业应用 在空白的市场里拥有无限开发潜力 而创业者要做的就是快人一步 才能夺得市场先机 我们团队作为一家专业的区块链
  • python统计字符串中,字母的个数、数字的个数、其它字符个数。

    str input 请输入 letter 0 num 0 other 0 for i in str if i isdigit num 1 elif i isalnum letter 1 else other 1 print letter n
  • axios post传递对象_POST 方法的content-type类型

    content type是http请求的响应头和请求头的字段 当作为响应头时 告诉客户端实际返回的内容的内容类型 作为请求头时 post或者put 客户端告诉服务器实际发送的数据类型 在前端开发过程中 通常需要跟后端工程师对接接口的数据格式
  • React 条件渲染最佳实践(7 种方法)

    在 React 中 条件渲染可以通过多种方式 不同的使用方式场景取决于不同的上下文 在本文中 我们将讨论所有可用于为 React 中的条件渲染编写更好的代码的方法 条件渲染在每种编程语言 包括 javascript 中都是的常见功能 在 j
  • 线性dp的题目汇总

    恩 挺多 慢慢看 衔接在此
  • ccrypt 在 Windows上的使用教程

    ccrypt是个加密解密工具包 一般情况下在Linux上使用 这是个windows版的使用教程 请注意 ccrypt是一个 命令行 程序 它只能从DOS提示符或shell中运行 它不是那种双击就能运行的程序 step1 到官网下载对应的安装
  • gvim for verilog简易配置

    目录 前言 一 gvim的主题和字体资源 二 gvim编辑器基本配置 三 gvim针对verilog配置 总结 前言 分别介绍了gvim的主题和字体资源推荐 gvim编辑器基本配置和针对verilog的配置 以下为正文 一 gvim的主题和
  • 递归算法(demo:斐波那契数列的实现,树的遍历,快速排序)

    递归算法 执行代码 并没执行完全的时候调用自己本身 然后等待条件不满足递归的时候 完全执行代码 执行完全后返回上一层 执行未完成的部分 递归算法与for where循环可以相互转换 通过一定的方案达到一样的效果 比如for循环可以通过栈 实
  • MacOS IDEA配置scala

    1 前提 scala已经在mac本地安装 2 新建项目后 点击项目 右键 点击Add Framwork Support 3 找到scala 刚开始时 scala dk 2 11 8 是没有的 需要自己找 所以点击create 再点击Brow
  • 使用DQN训练Grid_word任务

    Tensorflow实战 一书中 强化学习一章里讲到了DQN网络 很有感触 在这里和大家分享一下 DQN网络也是Q learning的升级版 在原有的Q learning中加入了卷积层 由于深度学习需要大量的样本数据 DQN也就引入了Exp
  • 常见的计算机局域网络的拓扑结构是,局域网常见的拓扑结构有哪三种

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 局域网常见的拓扑结构有星型结构 环型结构和总线型结构 1 星型结构 这种结构是目前在局域网中应用得最为普遍的一种 在企业网络中几乎都是采用这一方式 星型网络几乎是Ether
  • 目标检测和语义分割常用的数据增强(代码)

    语义分割 from PIL import Image ImageFont ImageDraw ImageEnhance import matplotlib pyplot as plt import numpy as np import ra
  • xshell5产品秘钥

    xshell5产品秘钥 150105 116578 999990 转载于 https www cnblogs com lxcmyf p 7551610 html
  • 打开VMware虚拟机时提示“内部错误”

    解决方法 输入命令行 services msc打开服务 将上述服务重启 可以正常进入虚拟机
  • 移动Web:媒体查询及手机端PC端识别

    媒体查询 响应式布局的核心 能够检测视口的宽度 然后编写差异化的 css 样式调整网页的布局方式 响应式布局原理 根据 UI 设计稿需求合理设置响应断点 配合媒体查询书写差异化CSS样式 响应断点是指媒体查询所采用的视口的宽度 作用 将屏幕