当前位置: 首页 > news >正文

前端页面布局之【响应式布局】

目录

  • 🌟前言
  • 🌟优点
  • 🌟缺点
  • 🌟@media兼容性
  • 🌟利用CSS3-Media Query实现响应式布局
  • 🌟常见的媒体类型
  • 🌟常见的操作符
  • 🌟属性值
  • 🌟设备检测
  • 🌟响应式阈值选取
  • 🌟简单案例查看
  • 🌟写在最后

在这里插入图片描述

🌟前言

现在很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果,设计师提出了响应式布局的设计方案。所谓的响应式布局,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。也就说一个页面可以在多个终端呈现出你想要的效果,能够兼容各个终端。

🌟优点

  • 面对不同分辨率设备灵活性强
  • 能够快捷解决多设备显示适应问题
  • 根据不同的显示器调整设计最适合用户浏览习惯的页面

🌟缺点

  • 兼容各种设备工作量大,效率低下
  • 代码累赘,会出现隐藏无用的元素,加载时间加长
  • 其实这是一种折衷性质的设计解决方案,多方面因素影响而达不到最佳效果
  • 因为要适应不同的设备,页面的结构可能会有所不同,会导致页面的辨识度不强

🌟@media兼容性

在这里插入图片描述

ie8及以下不支持 @media

Respond.js可帮助IE6-8兼容 "min/max-width" 媒体查询条件: Respond.js

使用方法:在页面中所有css文件的引用位置之后引用Respond.js。而且Respond.js的引用得越早,用户看到页面闪烁的机会越小。

🌟利用CSS3-Media Query实现响应式布局

  • media query:

通过不同的媒体类型和条件定义样式表规则。媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件

  • 语法结构及用法:

@media设备名 only (选取条件) not (选取条件) and(设备选取条件),设备二{sRules}

  • 在link中使用@media
    • screen:指的是一种媒体类型;
    • and:被称为关键词,与其相似的还有not,only。可能的操作符
    • max-width:600px这个就是属性值,媒体特性,也就是就是媒体条件。
<link rel="stylesheet" type="text/css" media="screen and (max-width:     600px)"href="link.css"/>
  • 在样式表中内嵌 @media
@media screen and (max-width: 600px) {
选择器 {属性:属性值;}
}

🌟常见的媒体类型

描述
all默认。适用于所有设备。
print打印预览模式/打印页。
screen计算机屏幕。

🌟常见的操作符

描述
and逻辑与,连接设备名与选择条件、选择条件1与选择条件2。
not排除某种设备
only限定某种设备类型
,设备列表

🌟属性值

媒体特性可用媒体类型接受min/max简介
width<length>视觉屏幕/触摸设备yes定义输出设备中的页面可见区域宽度(单位一般为px)
heigth<length>视觉屏幕/触摸设备yes定义输出设备中的页面可见区域高度(单位一般为px)
device-width<length>视觉屏幕/触摸设备yes定义输出设备的屏幕可见宽度(单位一般为px)
device-heigth<length>视觉屏幕/触摸设备yes定义输出设备的屏幕可见高度(单位一般为px)
orientationportrait /landscape位图介质类型no定义’height’是否大于或等于’width’。值portrait代表是,landscape代表否即设,备手持方向:portait为横向,landscape为竖向
aspect-ratio<ratio>位图介质类型yes定义’width’与’height’的比率,即浏览器的长宽比
device-aspect-ratio<ratio>位图介质类型yes定义’device-width’与’device-height’的比率,即设备屏幕长宽比。如常见的显示器比率:4/3, 16/9,16/10
color<integer>视觉媒体yes定义每一组输出设备的彩色原件个数。如果不是彩色设备,则值等于0
color-index<integer>视觉媒体yes定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0
monochrome<integer>视觉媒体yes定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0
resolution<resolution>位图介质类型yes定义设备的分辨率。如:96dpi,300dpi,118dpcm
scanprogressive / interlace电视类no定义电视类设备的扫描工序, progressive逐行扫描,interlace隔行扫描
grid<integer>栅格设备no用来查询输出设备是否使用栅格或点阵。只有1和0才是有效值,1代表是,0代表否

🌟设备检测

  • Phone
<link rel="stylesheet" media="only screen and (-webkit-min-device-pixel-ratio: 2)" type="text/css" href="iphone.css" />
  • iPad
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css" type="text/css" />
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css"  type="text/css" />
  • android
/*240px的宽度*/
<link rel="stylesheet" media="only screen and (max-device-width:240px)" href="android240.css" type="text/css" />
/*360px的宽度*/
<link rel="stylesheet" media="only screen and (min-device-width:241px) and (max-device-width:360px)" href="android360.css" type="text/css" />
/*480px的宽度*/
<link rel="stylesheet" media="only screen and (min-device-width:361px) and (max-device-width:480px)" href="android480.css" type="text/css" />

🌟响应式阈值选取

响应式的阈值即不同设备宽度的临界值,该值由当前市面上设备分辨率比例得出,详见Statcounter:

阈值内宽设备描述
<768pxauto手机超小屏幕
≥768px750px平板小屏幕
≥992px970px桌面显示器中等屏幕
≥1200px1170px大桌面显示器大屏幕

🌟简单案例查看

F12打开控制台,控制台置与浏览器右侧,拖动观察页面变化

案例一:StatCounter Global Stats - Screen Resolution Market Share

案例二:苹果官方

案例三:Bootstrap

🌟写在最后

更多前端知识请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!

✨原创不易,还希望各位大佬支持一下!
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!

http://www.lryc.cn/news/193658.html

相关文章:

  • 定制排序小案例
  • 如何设计一个ToC的弹窗
  • Idea执行Pom.xml导入jar包提示sun.misc.BASE64Encoder jar找不到---SpringCloud工作笔记197
  • 大数据面试题:Spark和Flink的区别
  • 2023年9月青少年软件编程(C 语言) 等级考试试卷(二级)
  • 【Wifi】Wifi架构介绍
  • 攻防世界数据逆向 2023
  • 分布式链路追踪如何跨线程
  • 怎样在线修剪音频文件了?【免费,无须注册】
  • iMeta框架使用方法
  • 视频编辑软件 Premiere Pro 2024 macv24.0中文版 (pr2024)
  • C/C++:双向队列的实现
  • MySQL逻辑架构
  • python爬虫练手项目之获取某地企业名录
  • Python —— 接口自动化(1)
  • 【MySQL】关于MySQL升级到8.0版本的实践方案
  • 【Python-Django】基于TF-IDF算法的医疗推荐系统复现过程
  • 车辆车型识别系统python+TensorFlow+Django网页界面+算法模型
  • 小程序如何设置各种时间参数
  • CSS变量 var()的用法
  • 设计模式——21. 中介者模式
  • fastjson 1.2.47 远程命令执行漏洞
  • 【k8s 开发排错】k8s组件开发排错之pprof
  • 记录一次典型oom的处理过程
  • centos离线安装telnet、traceroute工具
  • 【java学习—七】对象的实例化过程(33)
  • P4451 [国家集训队] 整数的lqp拆分
  • Mysql 日常命令记录
  • 可视化上证50结构图
  • STM32_PID通用算法增量式和位置式