CSS Grid 布局中如何使用 fr 和 minmax() 实现动态百分比布局

什么是 CSS Grid 布局

CSS Grid 布局是一种二维的布局模式,可以让我们更方便地对一个网格进行布局。我们可以将整个布局分成多行和多列,并将网格的元素放置在这些行和列的交叉点上。

fr 单位

在 CSS Grid 布局中,我们可以使用 fr 单位来定义行或列的大小。fr 单位的全称是 “fraction”,中文翻译是 “分数” 或 “比例”。

通过使用 fr 单位,我们可以轻松地实现一个动态的布局,因为 fr 单位的大小是相对于容器宽度(或高度)的。

例如,以下代码定义了一个包含两列的网格布局:

--------------- -
  -------- -----
  ---------------------- --- ----
-

这个布局中的第一行宽度为容器宽度的 1/3,第二列宽度为容器宽度的 2/3。

minmax() 函数

在某些情况下,我们希望在行或列的大小超过或少于特定的值时,网格会自动调整大小。通过使用 minmax() 函数,我们可以设置一个网格项的大小范围。

例如,假设我们有一个带有三列的网格布局,并且希望网格项在宽度超过 200 像素时自动调整大小。我们可以将网格的列大小设置为 minmax(100px, 1fr),这将使第一行的最小宽度为 100 像素,最大宽度为容器宽度的 1/3,而第二和第三列将自动适应大小。

--------------- -
  -------- -----
  ---------------------- ------------- ---- --- ----
-

动态百分比布局示例

假设我们有一个网格布局,在电脑屏幕上有三列,而在手机屏幕上只有一列。我们希望在手机上每个网格项的宽度占整个屏幕的 90%,而在电脑屏幕上每个网格项的宽度相等。

下面是如何实现这个布局:

--------------- -
  -------- -----
  ---------------------- --------- ----- -- --------- - - --
-
------ ---- ------ --- ----------- ------ -
  --------------- -
    ---------------------- ---- -- --------- - ------- --- --- --
  -
-

现在我们已经成功地实现了一个动态百分比布局,这个布局可以根据设备的屏幕尺寸进行自动调整,而不需要我们手动修改代码。

总结

在 CSS Grid 布局中,通过使用 fr 单位和 minmax() 函数,我们可以实现一个动态的百分比布局。这个布局可以根据设备的屏幕尺寸进行自动调整,而不需要手动修改网格的大小和位置。

通过学习这种布局方法,我们可以更好地掌握 CSS Grid 布局,并创建适应多种设备的响应式布局。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/654841e67d4982a6eb289eff


猜你喜欢

  • 解决 Cypress 中 click 事件无法触发的问题

    背景 在使用 Cypress 进行自动化测试时,会遇到无法模拟点击事件的问题。具体表现为在测试代码中使用 cy.get('button').click() 等语句进行点击操作时,页面上的元素并未被点击...

    1 年前
  • 基于 Hapi 框架创建异步请求的方法

    在前端开发中,我们经常需要向后端发送异步请求。Hapi 是一款 Node.js 的 Web 框架,它提供了丰富的功能和插件,使得我们可以轻松地创建异步请求。本文将详细介绍如何使用 Hapi 框架创建异...

    1 年前
  • 如何创建可重用的 GraphQL 模块

    GraphQL 是一种用于 API 的查询语言,它专为前端的数据需求而设计。通过使用 GraphQL,前端可以请求它所需要的特定数据,而不必过度获取和处理不必要的数据。

    1 年前
  • ES7 代表 async/await 整个异步发展的方向

    在过去的几年中,异步编程已经成为前端开发中必不可少的一部分,特别是在处理网络请求和处理数据流时。Javascript 提供了许多机制来处理异步编程,例如回调函数、Promise、Generator 等...

    1 年前
  • LESS 中变量的使用技巧

    LESS 是一个动态样式语言,可以帮助前端开发者更快速、更灵活地编写 CSS 样式。其中,变量是 LESS 中一个非常有用的特性,它可以让样式的主题、颜色、字体等变量化,方便样式的统一管理和维护。

    1 年前
  • Jest 如何测试 Redux store 中的异步数据流

    前言:Jest 是一款非常流行的 JavaScript 测试框架,这篇文章将介绍 Jest 如何测试 Redux store 中的异步数据流。 Redux 是一种可预测的状态管理容器,可以让我们更好地...

    1 年前
  • 趣谈 Cross Browser CSS Reset 重置样式表

    作为前端开发人员,CSS 是我们必须掌握的一门技能,但不同浏览器对 CSS 样式特别是默认样式的渲染方法不尽相同,这时我们就需要使用 CSS Reset 来重置这些默认样式,保证页面实现的一致性和 c...

    1 年前
  • AngularJS :如何处理未定义的数据?

    在前端开发中,经常会涉及到处理不确定的数据。当数据未定义时,如何正确地处理这些数据是一个非常重要的问题。AngularJS提供了一些方法来处理未定义的数据值,让我们来一一介绍。

    1 年前
  • webpack tree shaking 知多少

    随着现代 web 应用程序不断复杂化,前端性能优化变得越来越重要。在这方面,Webpack Tree Shaking 技术可以帮助开发人员构建更快、更高效的应用。 什么是 Webpack Tree S...

    1 年前
  • 避免 Promises 泄漏处理方法

    当我们在编写 JavaScript 代码时,我们可能会使用 Promises 来处理各种异步操作。然而,如果我们没有正确地处理 Promises,那么就会有可能导致泄露问题。

    1 年前
  • Koa2 实现防盗链功能的方法介绍

    防盗链(referer)是指禁止非法站点盗用资源的一种方法,可以有效地保护网站的资源安全性。在前后端分离的现代 web 开发中,使用 Koa2 框架实现防盗链功能是一种比较常见的做法。

    1 年前
  • Kubernetes 和 Docker Swarm 的比较分析

    Kubernetes 和 Docker Swarm 都是容器编排工具。它们都提供了集群管理、负载均衡、可伸缩性、自动部署等一系列功能,使得容器化应用的部署和管理变得更加方便。

    1 年前
  • 使用 Express.js+Mongoose+Vue.JS 实现真实时间数据 CRUD

    前言:本篇文章以 Express.js 4.x 为主体,并结合 Mongoose 和 Vue.js 实现数据的真实时间 CRUD,需要对 Node.js 和 MongoDB 有一定的了解。

    1 年前
  • ECMAScript 2020 入门:let、const、var

    ECMAScript 2020 入门:let、const、var 在前端开发中,我们经常会使用到 ES6/ES2015 新引入的 let 和 const 关键字。这两个新关键字的引入也给开发带来了很多...

    1 年前
  • Fastify 中使用 Nodemailer 发送邮件

    邮件发送是许多 Web 应用程序中必不可少的功能之一。在 Fastify 项目中使用 Nodemailer 包实现邮件发送功能是一个不错的选择。 在本文中,我们将介绍如何在 Fastify 项目中使用...

    1 年前
  • Kubernetes 中 Volume 的使用与管理

    在 Kubernetes 中,Volume 是用于持久化存储数据的一种机制。通常来说,容器中的数据都是临时存储的,当容器运行结束后,所有的数据都将被丢失。但是在某些情况下,我们需要在容器结束后保留一些...

    1 年前
  • 如何在 Node.js 项目中使用 Chai 进行单元测试

    单元测试是一种十分重要的软件开发实践,能够帮助我们快速发现代码中的问题,缩短开发周期,提高代码质量。其中,Chai 是一个十分流行的 Node.js 单元测试框架,它提供了丰富的断言库,能够让我们方便...

    1 年前
  • 深入解析 ES7 中 Reflect.apply() 的使用方法

    在 JavaScript 中,Reflect.apply() 是 ES6 引入的新特性之一,它是 Reflect 对象中的一个方法,用于调用一个函数。在 ES7 中,该方法得到了扩展和增强。

    1 年前
  • 搞定 ES10 的 String.trimStart() 和 String.trimEnd() 方法

    在 ES10 中,JavaScript 新增了两个字符串方法:String.trimStart() 和 String.trimEnd(),前者用于去除字符串开头的空格,后者用于去除字符串结尾的空格。

    1 年前
  • PWA 实战:如何为你的应用创建一个 Manifest 文件?

    前言 随着移动设备的普及,Web 应用程序也变得越来越重要。这时候,PWA 的概念就兴起了,它可以提供类似 Native 应用的用户体验,而且不需要用户下载和安装。

    1 年前

相关推荐

    暂无文章