响应式布局(3种) + flex计算

news2024/11/25 20:47:08

响应式布局

  • 1.媒体查询
  • 2.使用百分比、rem、vw、vh等相对单位来设置元素的宽度、高度、字体大小等
    • 1.rem与em
    • 2.vw、vh、vmax、vmin
  • 3.Flexbox
    • flexbox计算题

响应式布局是指同一个页面在不同屏幕尺寸下有不同的布局。

1.媒体查询

媒体查询是最基础的实现响应式的方式
使用@media关键字
媒体查询是阶梯性的,不连续,没有完全响应

2.使用百分比、rem、vw、vh等相对单位来设置元素的宽度、高度、字体大小等

1.rem与em

rem(root em) 是相对于根元素(通常是 标签)的字体大小。适用于全局缩放和响应式布局.
em 是相对于父元素的字体大小。具有继承性,适用于局部尺寸的调整。

2.vw、vh、vmax、vmin

先来了解下网页视口相关:

屏幕的宽度和高度:window.screenWidth、window.screenHeight
网页视口的宽度和高度:window.innerWidth 、 window.innerHeight
body的宽度和高度:document.body.clientWidth、document.body.clientHeight

在这里插入图片描述

  1. 网页视口的高度=100vh
  2. 网页视口的宽度=100vw
  3. vmax 取vh和vw两者的最大值
  4. vmin 取vh和vw两者的最小值 所以1vh是网页视高度的百分之一,1vw是网页视口宽度的百分之一

3.Flexbox

主轴(Main Axis)、交叉轴(Cross Axis)、Flex容器(Flex Container):包含Flex项目的容器。、Flex项目(Flex Item)

设置Flex属性:使用Flex属性来控制Flex项目在主轴和交叉轴上的行为。

/* 容器属性 */

.container {
    /* 定义为flex布局 */
    display: flex; /* 或 inline-flex */

    /* 主轴的方向 */
    flex-direction: row; /* 默认值,从左到右。还可以是row-reverse、column或column-reverse */

    /* 是否换行 */
    flex-wrap: nowrap; /* 默认值,不换行。还可以是wrap或wrap-reverse:当项目无法放在同一行时,它们会从容器的底部开始并向上堆叠 */

    /* flex-direction 和 flex-wrap 的简写 */
    flex-flow: row nowrap; 

    /* 主轴上的对齐方式 */
    justify-content: flex-start; /* 默认值,左对齐。还可以是flex-end(右对齐)、center(中心对齐)、space-between(平分空间,左右顶边)、space-around(两侧空间是中间一半)或space-evenly(两侧空间等于中间) */

    /* 交叉轴上的对齐方式 */
    align-items: stretch; /* 默认值,项目被拉伸以适应容器的交叉轴宽度。还可以是flex-start、flex-end(从交叉轴底部排列)、center(交叉轴中间排列)或baseline */

    /* 多行的交叉轴上的对齐方式 */
    align-content: stretch; /* 默认值,行之间拉伸。也可为flex-start、flex-end、center、space-between或space-around */

}
/* 项目属性 */

.item {
    /* 排列顺序 */
    order: 0; /* 默认值。可以是任何整数 */

    /* 放大比例 */
    flex-grow: 0; /* 默认值。定义在分配多余空间时,项目的放大比例 */

    /* 缩小比例 */
    flex-shrink: 1; /* 默认值。定义在减少空间时,项目的缩小比例 */

    /* 初始大小 */
    flex-basis: auto; /* 默认值。初始大小 */

    /* 上述三个属性的简写 */
    flex: 0 1 auto; /* 使用flex-grow, flex-shrink 和 flex-basis的默认值 */
	flex: 1 1 0%; /* flex:1缩写 让所有Item平均分配剩余空间*/
    /* 单个项目的对齐方式 */
    align-self: auto; /* 默认值,与继承容器的align-items值。还可以是flex-start、flex-end、center、baseline或stretch。控制交叉轴单独布局,没有与之对应的单独控制主轴的布局,除非换grid方法或加margin */
}

flexbox计算题

问题1:
你有四个项目,宽度分别为100px、150px、200px和250px,其flex-shrink值分别为2、1、3和0。
如果需要在这四个项目之间减少总共300px的空间,每个项目会减少多少像素?
解:
项目1的缩小比例为 2/6 = 1/3
项目2的缩小比例为 1/6
项目3的缩小比例为 3/6 = 1/2
项目4不会缩小,因为它的flex-shrink值为0。

项目1会减少:300px * 1/3 = 100px
项目2会减少:300px * 1/6 = 50px
项目3会减少:300px * 1/2 = 150px
项目4不会缩小。

最后宽度加上flex-basis

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/993420.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

再见 MySQL 5.7 !

点击下方名片,设为星标! 回复“1024”获取2TB学习资源! 对从事互联网 IT 技术岗位的来说,数据库也是我们日常必备的技能之一,而 MySQL 数据库更是常见、常用的数据库之一。 根据 DB-Engines 的数据显示,MyS…

Matlab之DICOM(数字图像和通信医学)格式图像数据读取函数dicomread

一、DICOM是什么? DICOM是数字图像和通信医学格式的图像数据,在MATLAB中,可以使用dicomread函数读取DICOM格式的图像数据。 二、dicomread函数 使用方法如下: imageData dicomread(filename);其中,filename表示DI…

fail-safe 机制与 fail-fast 机制

Fail-fast 表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出 ConcurrentModificationException 异常,从而导致遍历失败,像这种情况 定义一个 Map 集合,使用 Iterator 迭代器进行数据…

live-server安装

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【算法专题突破】滑动窗口 - 长度最小的子数组(9)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:209. 长度最小的子数组 - 力扣(Leetcode) 要注意的是,题目给的是正整数, 而题目要求并不难理解,就是找最短的…

听说背包问题很难? 这篇总结篇来拯救你了

文章转自代码随想录 已经把背包问题都讲完了,那么现在要对背包问题进行总结一番。 背包问题是动态规划里的非常重要的一部分,所以我把背包问题单独总结一下,等动态规划专题更新完之后,我们还会在整体总结一波动态规划。 关于这…

【HCIE】02.IGP高级特性

OSPF转发地址 5类LSA报文格式 5类LSA有一个Forwarding address字段,防止次优路由产生 次有路径的产生 如图,A与C运行OSPF协议,A与B运行ISIS协议,现在将ISIS导入到了OSPF中,C去访问X默认会先经过ASBR即R1,…

【多线程】Timer任务定时器实现与盲等原子性问题的解决

目录 一、定时器 二、标准库中的Timer 三、代码实现 四、死锁 一、定时器 代码中的定时器通常是在一定的时间执行对应的代码逻辑 二、标准库中的Timer public static void main(String[] args){Timer timer new Timer();timer.schedule(new TimerTask() {Overridepublic…

【周末闲谈】如何利用AIGC为我们创造有利价值?

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 系列目录 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 系列目录前言AIGCAI写作AI绘画AI视频生成AI语音合成 前言 在此之…

持续集成/技术交付全流程流水线工具的设计与落地

文章目录 持续集成/技术交付全流程流水线工具的设计与落地概述工具架构设计主要功能模块代码库Jenkins 流水线代码构建自动化测试产品部署监控报警 使用方法步骤一:安装 Jenkins步骤二:创建 Jenkins 流水线步骤三:配置监控报警步骤四&#xf…

circleMidpoint(scrPt c, GLint r) 未定义的标识符,openGL第四章例子 ,画饼状图。

以下是完整的例子。在第四版 《计算机图形学 with openGL》第四章的例子中,竟然只调用了circleMidpoint(scrPt &c, GLint r) ,没有实现,我认为是系统方法,怎么找都找不到。openGL 官方文档也没找到,这不会是自定义…

生信教程|替代模型选择

摘要 由于教程时间比较久远,因此不建议实操,仅阅读以了解学习。 在运行基于可能性的系统发育分析之前,用户需要决定模型中应包含哪些自由参数:是否应该为所有替换假设单一速率(如序列进化的 Jukes-Cantor 模型&#xf…

新版DBeaver调整编辑窗口字体大小

网上有DBeave字体设置了,但看了下,目前最新版的已经更改了首选项分组,层级发生了变化,这里记录一下2022.08.21版的设置。 默认字体是10,比较小,改为11或更大会好看些。

强大的JTAG边界扫描(1):基本原理介绍

文章目录 1. 什么是边界扫描?2. JTAG硬件接口3. 边界扫描相关的软硬件4. 学习资料5. 总结 我是怎么了解到边界扫描的呢? 这就要从我淘到一块FPGA板卡的事情说起了。 前段时间我在某二手平台上淘了一块FPGA板子,它长这样: 板子的…

【虚拟机】

虚拟机 简介VMware Workstation简介下载安装许可证密钥 CentOS简介下载 创建新的虚拟机 简介 虚拟机(Virtual Machine,简称VM)是一种软件模拟的计算机,它在一台物理计算机上创建了一个独立的虚拟计算环境。这个虚拟环境可以运行操…

Spring-Cloud-Openfeign如何支持数据压缩?

HTTP压缩的原理 市面上主流的浏览器基本都支持gzip压缩,我们来看下服务端支持压缩的情况下,浏览器与服务端的通信过程: 第一步:浏览器发送Http request 给Web服务器, request头中有Accept-Encoding: gzip, deflate。(告诉服务器&#xff0…

学习Bootstrap 5的第九天

目录 列表组 基础的列表组 实例 活动的列表项 实例 禁用的列表项 实例 链接列表项 实例 移除列表边框 实例 带编号的列表组 实例 水平列表组 实例 多种颜色列表项 实例 多种颜色的链接列表项 实例 带徽章的列表组 实例 列表组案例 实例一 实例二 列表组…

港科夜闻|香港科技大学、香港教育大学与华东师范大学联盟,共同推动人工智能与教育未来发展...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科技大学、香港教育大学与华东师范大学联盟,共同推动人工智能与教育未来发展。三校共同签署合作备忘录,宣布成立「人工智能及教育未来联盟」。三校将各展所长,针对国家、大湾区及香…

以可视化方式解释 Go 并发 - 通道

在并发编程中,许多编程语言采用共享内存/状态模型。然而,Go 通过实现 通信顺序进程 (CSP) 区别于众多语言。在 CSP 中,一个程序由并行的进程组成,这些进程不共享状态,而是使用通道进行通信和同步它们的操作。因此&…

集创北方ICN6202 MIPIDSI转LVDS转换芯片

集创北方ICN6202 1.描述: ICN6201是一个接收MIPIDSI输入和发送LVDS输出的桥接芯片。MIPIDSI最多支持4个车道,每个车道的最大运行频率为1Gbps;总最大输入带宽为4Gbps;并且还支持MIPI定义的ULPS(超低功耗状态&#xff…