本篇文章主要讲述使用Flex布局、Grid布局以及媒体查询三种方式来实现响应式布局。

文章涉及代码在线coding地址

效果图:



文字描述:

屏幕大小不同,展示列数不同,1-5号按照屏幕大小可展示2到4列不等,6号始终独占一行

Flex布局

阮一峰Flex布局讲解

方案1(每一项元素不放大)

  1. 将可能会出现在一行的表单项放在一个父级容器内
  2. 父级容器设置flex-flow: row wrap;表示横向排列,空间不足时换行
  3. 设置容器内每一项元素的flex: 0 0 420px;(420px为每一项元素的基础宽度)
flex: 0 0 420px;
等同于
flex-grow: 0;
flex-shrink: 0;
flex-basis: 420px;

优点:

  1. 不用写媒体查询可实现屏幕变大列数自动变多
  2. 展示多行时,行列之间上下能够对齐

缺点:

当增量空间不足时,右侧余出大量空白,不满足UI适配规范

方案2(每一项元素放大)

  1. 将可能会出现在一行的表单项放在一个父级容器内
  2. 父级容器设置flex-flow: row wrap;表示横向排列,空间不足时换行
  3. 设置容器内每一项元素的flex: 1 0 420px;
flex: 1 0 420px;
等同于
flex-grow: 1;
flex-shrink: 0;
flex-basis: 420px;

优点:

  1. 不用写媒体查询可实现屏幕变大列数自动变多
  2. 增量空间不足,不足以容纳新列时,其他列自动拉宽

缺点:

  1. 展示不下另起一行的列与上一列对应列未对齐(尝试过不可通过占位等实现,字段个数不确定,不好占位)

Grid布局

阮一峰Grid布局讲解

  1. 设置父容器为grid布局
  2. 设置每一列的宽度为自动填充,最小宽度420,最大1fr
display: grid;
grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));

优点

可实现随屏幕大小变化,列数跟随变化,并可上下列对齐。

缺点

有兼容性问题





如果不考虑兼容性问题,可以考虑使用Grid布局,完美实现

media媒体查询

  1. 将可能会出现在一行的表单项放在一个父级容器内
  2. 父级容器设置flex-flow: row wrap;表示横向排列,空间不足时换行
  3. 根据不同的屏幕宽度设置flex: 0 0 50%(两列)/33%(三列)/25%(四列)
@media screen and (max-width: 1280px) {
flex: 0 0 50%;
}
@media screen and (min-width: 1281px) and (max-width: 1440px) {
flex: 0 0 33.33%;
}
@media screen and (min-width: 1441px) {
flex: 0 0 25%;
}

优点:

  1. 兼容性强
  2. 实现各屏幕大小下展示不同的列数

缺点:

  1. 需要写多个媒体查询

到这里,三种实现响应式布局的方式就记录完了!!每天都要进步一点点!

Flex、Grid、媒体查询实现响应式布局的更多相关文章

  1. CSS:使用CSS媒体查询创建响应式布局

    现如今在Web前端领域,BootStrap是一个最流行的UI库,其12列的栅栏系统为响应式布局提供了一种对程序员来说很好操作的模式. 追究Bootstrap的内在原理,其实就是通过媒体查询来完成对不同 ...

  2. 关于css3媒体查询和响应式布局

    响应式设计 响应式设计可根据所显示的屏幕大小而改变, 它呈现的每个屏幕看起来并不相同.按照可用的屏幕属性,响应式设计提供了 UI 的最佳效果. 例如,如果网站布局上有一个占据 25% 的屏幕宽度的侧边 ...

  3. CSS 媒体查询创建响应式网站

    使用 CSS 媒体查询创建响应式网站  适用于所有屏幕大小的设计 固定宽度的静态网站很快被灵活的响应式设计所取代,该设计可以根据屏幕大小进行上扩和下扩.利用响应式设计,无论您采用什么设备或屏幕来访问网 ...

  4. css媒体查询:响应式网站

    css媒体查询:响应式网站 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定的设备范围. ...

  5. CSS3---媒体查询与响应式布局

    1. 值 设备类型 All 所有设备 Braille 盲人用点字法触觉回馈设备 Embossed 盲文打印机 Handheld 便携设备 Print 打印用纸或打印预览视图 Projection 各种 ...

  6. CSS3 媒体查询@media 查询(响应式布局)

    例:如果文档宽度小于 300 像素则修改背景颜色(background-color): @media screen and (max-width: 300px) { body { background ...

  7. 使用 CSS 媒体查询创建响应式网站

    简介 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各种规格和形状的设备,但是网站开发人员却面临一个挑战:如何使他们的网站在传统浏览器.手机和平板电脑浏览器上有很好的效果,如何在各种大 ...

  8. 移动端响应式布局--你不知道的CSS3.0媒体查询,解决rem部分情况下无法适配的场景

    媒体查询作为响应式布局的方法之一,实际项目中用途也很广.但是你真的知道怎么用吗? 例如,下面匹配 iphone6/7/8 屏幕 @media screen and (max-width: 375px) ...

  9. 【学习笔记】响应式布局的常用解决方案(媒体查询、百分比、rem、和vw/vh)

    原文转载:https://blog.csdn.net/sinat_17775997/article/details/81020417 一.媒体查询 不同物理分辨率的设备,在还原设计稿时,css中设置的 ...

随机推荐

  1. 区块链入门到实战(35)之Solidity – 变量作用域

    局部变量的作用域仅限于定义它们的函数,但是状态变量可以有三种作用域类型. Public – 公共状态变量可以在内部访问,也可以通过消息访问.对于公共状态变量,将生成一个自动getter函数. Inte ...

  2. 数据操纵DML

    数据操纵DML 1. 在dept表中插入两行数据 (1)50,'IT','SHENYANG';(2)60,'HR','DALIAN'; 2. 设置保存点beforeup 3. 更新dept表,将60号 ...

  3. 从零开始的SpringBoot项目 ( 八 ) 实现基于Token的用户身份验证

    1.首先了解一下Token uid: 用户唯一身份标识 time: 当前时间的时间戳 sign: 签名, 使用 hash/encrypt 压缩成定长的十六进制字符串,以防止第三方恶意拼接 固定参数(可 ...

  4. 医疗seo常用的图标工具

    http://www.wocaoseo.com/thread-304-1-1.html 下面是一些医疗seo常用的一些图表工具,这些都是些最简单的工具,主要放置这里以防止以后有作用. 1,医疗的常用搜 ...

  5. ZERO:从搜索用户来看SEO

    http://www.wocaoseo.com/thread-63-1-1.html SEO是个奇怪的东西,一方面因为SEO流量往往占到网站流量几十个百分点,而且看上去它是免费的,因此许多人认为SEO ...

  6. 深入浅出 Java JDK 安装目录及其子目录含义 10分钟详解 - 精简归纳

    Java JDK 安装目录及其子目录含义 10分钟详解 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 30 转载请注明出处!️ 目录 Java JDK 安装目录及其子目录含义 10分钟详解 ...

  7. APM姿态控制流程

    对初学者了解控制流程有一定帮助 在主循环执行过程中(比如Pixhawk的任务调度周期2.5ms,400Hz:APM2.x为10ms,100Hz),每一个周期,程序会按下述步骤执行:• 首先,高层次文件 ...

  8. zabbix如何监控Nvidia显卡的各项指标?

    如何实现zabbix监控windows机器的N卡GPU指标呢? Nvidia卡在安装驱动程序的时候,已经自带安装了一个命令行工具来获取显卡的各个性能指标值 在windows机器上,我们可以把该路径加入 ...

  9. 再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

    冤冤相报何时了,得饶人处且饶人.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[ ...

  10. 兼容H5页面的js

    (function (doc, win) { let docEl = doc.documentElement; let resizeEvt = 'orientationchange' in windo ...