会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 采用20/80原则学习CSS Grid布局!

采用20/80原则学习CSS Grid布局

时间:2025-11-05 13:44:48 来源:益强数据堂 作者:人工智能 阅读:800次

介绍

本文不会覆盖Grid 布局的采用所有细节,而是原则面向那些想快速用起来并看到效果的你们。我将会向你介绍 Grid 技术的学习20%,学会了这些你就掌握了Grid 功力的采用80%了,开心不🤒。原则

为什么只有 20%?学习

    For a programmer, laziness is a virture from Larry Wall

译:你懒你有理。在尽可能的采用情况下,一个程序员应该寻求效率(懒惰的原则出路)。我们日常学习也是学习这样,有些时候可能已经很努力但是采用就是没有提高。大概就是原则我们把80%的精力放在的那没有什么卵用的20%上了,说的好像是一步自己呢。

CSS 的学习 Grid 布局模块挺复杂的,比 FlexBox 布局还要复杂(学习 Flex 布局就很吃力了)。采用并不是原则因为 Grid 布局的理论困难,香港云服务器只是学习该模块引入了18个新的属性在传统的 CSS 布局理念中是前所未闻的。

额~,那么咱们是否需要立即理解掌握所有新的属性呢?NO,没有必要,而且你也记不住,就算记住了一时你也记不住一世。

只需要学习一点点就可以实现你想要的效果,然后你可以继续深入研究其他属性。

CSS Grid 布局是什么?

如果你初学 CSS,那么 Grid布局对你来说可能有一点怪异。那么你是否知道 Flexbox呢?

我喜欢把 Grid 布局看作是目前比较成熟的 Flexbox 布局的弟弟。

处理 CSS 布局通常是复杂繁琐的。Flexbox的到来给网页布局带来了新希望,即将普及的 Grid 会给我们带来更多。

目标导向

学完原文你可以实现一个响应式的音乐应用的布局。

Part 1: 其中的服务器租用10%(1/2)----基本术语

Grid 容器

在我们曾实现过、见过的任何应用程序,从视觉呈现本质上来看,都是在一定的边界范围内将内容块进行排列,安放。

简单来看,一个"网格"就是多条相交的线(水平和垂直的线)规划出可以容纳其他元素的位置空间。

如果你有使用过adobe、photoshop、sketch 这类软件的话,那么你就可以很容易的理解。

在 CSS Grid 布局的语义中,Grid 容器是可以容纳网格所有子项的一个载体(Grid 世界的爸爸)。

假设你有个布局需求,如图:

布局是由一个网格容器和多个单元格组成。最外层且***的矩形作为整个布局的载体既网格容器;小一点的矩形为单元格。b2b供应网

网格线

图中横线和纵线,用来划分网格容器。

网格单元

网格单元是网格布局中的最小单元,它是由4条相邻的网格线围成的。

网格区域

网格区域最小占据一个网格单元,***可以占领整个网格容器。

下图中,四个网格单元所覆盖的区域构成一个网格区域。

网格轨道

我非常不喜欢学术定义。网格轨道可被视为是列或行的另一个花哨的别名。任何两个网格线之间的空间。

综上,我们已经学习完目标的一半了,希望你还有耐心读下去。

Part 2: 后1/2部分

已经了解了基本术语,让我们玩起来吧

声明一个网格

就像Flexbox,一切始于一行代码。display: grid或者display: inline-grid。

举例说明,让 div标签作为网格容器:

div {    display: grid;  } 

声明行和列

一个网格容器如果没有行和列那还有什么意义? 创建网格容器的列和行,你要用到以下两个新的css属性grid-template-columns 和 grid-template-rows。

那么如何使用他们呢?很简单~

grid-template-columns用来声明列们,grid-template-rows用来声明行们。

你给属性传递几个值,那么相应就会划分几行或几列。例如:

grid-template-columns: 100px 200px 300px 

上面的代码就会将网格容器划分为三列,列的宽度分别为100px、200px和300px

grid-template-rows: 100px 200px 300px 

该代码会将网格容器划分为3行,行宽分别为100px 200px 300px

让我们将两行代码同时作用于容器,那么我们就会得到一个三行三列的网格。

grid-template-columns: 100px 200px 300px  grid-template-rows: 100px 200px 300px 

Part 3: 是时候写点代码了 

为了快速的实现一个音乐 App,我们会使用 CodePen进行开发。

搭建html 结构

至于为啥写成这样,请继续读下去。

<body>     <aside></aside>     <main></main>     <footer></footer>  </body> 

body 作为音乐容器

body {     display: grid;     min-height: 100%  } 

上述代码已经使 body 变成了一个网格容器,继续声明行和列。

容器规划

该如何规划网格的行和列呢,让我们回顾下音乐 APP 的长相。

好,那么我们大概可以将布局划分为两行两列。

就上面的图进行构思,有几点需要注意:

关于列:

***列必须固定宽度50px 第2列填满剩余空间

关于行:

第2行固定高度100px ***行自动填满剩余高度

幸运的是 Grid 布局提供了一个新的单位可以解决上述问题。fr分数单位。该单位可以解决自动分配剩余空间的问题。

如果你需要三个等宽的列,fr单位会自动均匀地分配空间。

如果你的业务还想添加更多的元素,也不要恐慌,fr 单位会自动完成。

更为巧妙的是,如果你有一个固定宽度的元素,你也可以很好的处理剩余空间。

body {     ...     grid-template-rows: 1fr 100px;     grid-template-columns: 50px 1fr; } 

如果对 fr 单位还有疑问的话,请阅读the CSS Fractional Unit (Fr) In Approachable, plain Language.

使用网格区域来放置子元素

我们已经声明好了一个网格系统,现在让我们继续实现它。本小节的目的学会使用网格区域来布局子元素。请回忆一下,网格区域是由4条网格线划分出来的区域。

唉实在不想翻译了,直接给出代码并解释吧。划分区域要使用到另一个新的特性grid-template-areas。grid-template-areas提供了非常所见及所得的一种方式进行划分区域。

body {        ...        grid-template-areas: "sidebar  content"                             "footer   footer";  } 

上述代码的意思是。。。。。

我们再来归纳一下所有的代码:

容器

body {        display: grid;        grid-template-columns: 40px 1fr;        grid-template-rows: 1fr 90px;        grid-template-areas: "sidebar  content"                             "footer  footer";  } 

子元素

.main {    grid-area: content;  }  .footer {    grid-area: footer;  }  .aside {    grid-area: sidebar;  } 

code

知识点回顾

网格容器、网格单元、网格线、网格区域、网格轨道 容器属性 display: grid、grid-template-columns、grid-template-rows、grid-template-areas 分数单位 fr 容器属性 grid-area 

(责任编辑:系统运维)

上一篇:不涂硅脂的影响及注意事项(了解不涂硅脂的风险与保护方法)
下一篇:假如你想清理你的 Ubuntu 主机,你可以按照以下的一些简单步骤来移除所有不需要的垃圾文件。移除多余软件包这又是一个内置功能,但这次我们不必使用新得立包管理软件(Synaptic Package Manager),而是在终端中达到目的。现在,在终端窗口中键入如下命令:复制代码代码如下:sudo apt-get autoclean这便激活了包清除命令。这个命令所做的工作是: 自动清除那些当你安装或升级程序时系统所缓存的 .deb 包(即清除 /var/cache/apt/archives 目录,不过只清理过时的包)。假如需要使用清除命令,只需在终端窗口中键入以下命令:复制代码代码如下:sudo apt-get clean然后你就可以使用自动移除命令。这个命令所做的工作是:清除那些 在系统中被某个已经卸载的软件 作为依赖所安装的软件包。要使用自动移除命令,在终端窗口中键入以下命令:复制代码代码如下:sudo apt-get autoremove移除不需要的本地化数据为达到此目的,我们需要安装 localepurge 软件,它将自动移除一些不需要的本地化数据(LCTT 译注:即各种语言翻译)。这个软件是一个简单的脚本,它将从那些不再需要的本地化文件和本地化联机手册( man pages ) 所占用的空间中回收磁盘空间。这个软件将在任何 apt 安装命令运行时 被自动激活。在 Ubuntu 中安装 localepurge:复制代码代码如下:sudo apt-get install localepurge在通过 apt-get install 安装任意软件后, localepurge 将移除所有不是使用你系统中所设定语言的翻译文件和翻译的联机手册。假如你想设置 localepurge,你需要编辑 /ect/locale.nopurge 文件。根据你已经安装的软件,这将为你节省几兆的磁盘空间。例子:假如我试着使用 apt-get 来安装 dicus软件:复制代码代码如下:sudo apt-get install discus在软件安装完毕之后,你将看到如下提示:复制代码代码如下:localepurge: Disk space freed in /usr/share/locale: 41860K移除孤包假如你想移除孤包,你需要安装 deborphan 软件:在 Ubuntu 中安装 deborphan :复制代码代码如下:sudo apt-get install deborphan使用 deborphan,打开终端并键入如下命令即可:复制代码代码如下:sudo deborphan | xargs sudo apt-get -y remove --purge使用 GtkOrphan 来移除孤包GtkOrphan (一个针对 debian 系发行版本的 Perl/Gtk2 应用) 是一个分析用户安装过程状态并查找孤立库文件的图形化工具,它为 deborphan 提供了一个 GUI 前端,并具备移除软件包的功能。在 Ubuntu 中安装 GtkOrphan,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install gtkorphan一张截图使用 Wajig 移除孤包Wajig是 Debian 包管理系统中一个简单的软件包管理前端。它将 apt、apt-cache、 dpkg、 /etc/init.d 中的脚本等 通过一个单一命令集成在一起,它的设计初衷是使用简单和为它的所有功能提供丰富的文档。通过适当的 sudo配置,大多数(假如不是全部)的软件包安装和创建等任务可以通过一个用户 shell 来完成。Wajig 也适用于一般的系统管理。另外,一个 Gnome GUI 命令 gjig也被囊括在这个软件包之中。在 Ubuntu 中安装 Wajig,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install wajigDebfoster --- 跟踪你在安装过程中的操作debfoster 将会维护一个列有被明确需要安装的软件包的列表,但不包括那些作为某个软件的依赖而被安装的软件包。参数是完全可选的,你甚至可以使得在 dpkg 和/或 apt-get 每次运行之后马上激活 debfoster 。另外,你还可以在命令行中使用 debfoster 来安装或移除某些特定的软件包。那些后缀为 --- 的软件包将会被移除,而没有后缀的软件包将会被安装。假如一个新的软件包或 debfoster 注意到作为某个软件包的依赖的软件包是一个孤包,则 debfoster 将会询问你下一步如何操作。若你决定保留这个孤包, debfoster 将只会进行记录并继续安装过程;若你觉得这个软件包不足以引起你的兴趣,在 debfoster 询问这个问题后,它将移除这个软件包。进一步的,假如你的决定使得其他的软件包变为孤包,更多的提问将会接踵而来。在 Ubuntu 中安装 debfoster,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install debfoster使用 debfoster为了创建一个初始跟踪文件,可以使用如下命令:复制代码代码如下:sudo debfoster -q你总可以编辑 /var/lib/debfoster/keepers 文件,来定义那些你想留在系统中的软件包。为了编辑这个文件,可以键入:复制代码代码如下:sudo vi /var/lib/debfoster/keepers要强制使 debfoster 去移除所有没有被列在上面这个文件的软件包,或安装作为某些列在这个文件中的软件包的依赖,它也同时会添加所有在这个列表中没有被安装的软件包。若要根据这个列表来执行相关操作,只需执行:复制代码代码如下:sudo debfoster -f若需要跟踪你新安装的软件包,你需要时不时地执行如下命令:复制代码代码如下:sudo debfosterxdiskusage -- 查看你的硬盘空间都去哪儿了图形化地展示磁盘使用情况的 du。xdiskusage 是一个用户友好型的程序,它将为你展示你所有磁盘的使用情况。 它是在 Phillip C. Dykstra 所写的 “xdu” 程序的基础上设计的。做了一些修改以使得它可以为你运行 “du”命令,并显示磁盘的剩余空间,并且假如你想清晰地了解你的磁盘空间都去哪儿了,它还可以生成一个 PostScript 格式的名为 display.xdiskusage 的文件。在 Ubuntu 中安装 xdiskusage,只需使用如下命令:复制代码代码如下:sudo apt-get install xdiskusage若你想打开这个应用,你需要使用如下命令:复制代码代码如下: sudo xdiskusage一旦这个应用被打开,你将看到如下图所示的界面:BleachbitBleachBit 能快速地释放磁盘空间并不知疲倦地保护你的隐私。它可以释放缓存,删除 cookie,清除 Internet 上网历史,粉碎临时文件,删除日志,丢弃你所不知道存在何处的垃圾。为 Linux 和 Windows 系统而设计,它支持擦除清理数以千计的应用程序,如 Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari 等等。除了简单地删除文件,BleachBit 还包括许多高级功能,诸如粉碎文件以防止恢复,擦除磁盘空间来隐藏被其他应用程序所删除文件的痕迹,为火狐“除尘”,使其速度更快等。比免费更好,BleachBit 是一个开源软件。在 Ubuntu 中安装 Bleachbit,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install bleachbit一张截图
推荐内容
  • 使用U盘重装大白菜系统教程(简单易行的操作步骤,轻松安装系统)
  • 我们一起学习排列问题!你会吗?
  • PLEG is not healthy?幕后黑手居然是它!
  • 手把手教你规范自己的代码
  • 电脑屏幕刷新率的重要性(高刷新率带来更好的视觉体验和游戏性能)
  • 三分钟实现 Spring Boot 集成 RabbitMQ,实现消息队列服务
热点内容