首页 > 其他分享 >CSS 网格布局:Metro 设计块

CSS 网格布局:Metro 设计块

时间:2022-09-21 11:35:42浏览次数:86  
标签:Metro 网格 1fr rem div CSS

CSS 网格布局:Metro 设计块

来自 Competa IT 档案; Raymon 于 2017 年 10 月 12 日首次发表。

是时候我们不必再摆弄浮点数和表格了! Flexbox 已经是前端开发者行业中的一个既定术语。

但是有一个新东西叫做“CSS Grid Layout”!好吧不是超新的,但目前所有主流浏览器的支持都很好。

让我们开始吧!

在本教程中,我想通过构建受 Metro 设计启发的布局来向您展示 CSS Grid!我将引导您完成构建此布局的过程。

从 HTML 开始

HTML 将有 1 个容器 div 和 9 个子 div。

 <div class="grid">  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 <div class="blocks"></div>  
 </div>

CSS 网格魔法

让我们从设置网格容器的样式开始。

 。网格 {  
 显示:网格;  
 网格模板列:重复(5、1fr);  
 网格间隙:0.5rem;  
 填充:0.5rem;  
 网格自动行:最小最大(100px,自动);  
 最小高度:计算(100vh - 1rem);  
 }

我将遍历每个网格 CSS 属性来告诉你它的作用:

**显示:网格;
** 这会将您的容器激活为 CSS 网格布局

**网格模板列:重复(5、1fr);
** 此属性将告诉 div 除以 5 个相等的列。它将被翻译成grid-template-columns:1fr 1fr 1fr 1fr 1fr;重复功能对此非常方便,它将使您免于手动输入需要多少列!

**网格间隙:0.5rem;
** 网格间隙是设置列和行之间的间隙。如果不定义,默认为 0。

**网格自动行:最小最大(100px,自动);
** 使用 grid-auto-rows 上的 minmax 函数,我们将 min-height 设置为 100px,将 max-height 设置为 auto。

因为我想在容器周围有一个填充,所以我放了一个 0.5rem 的填充。为了获得正确的最小高度,我使用了 calc 函数从 100vh 中删除了 1rem (2 * .5rem)。

使用 CSS 网格布局,我们得到了一个新的灵活单元:Fr 单元。 Fr 是小数单位,1fr 代表可用空间的 1 部分。

地铁设计风格

由于 Metro 的设计风格,我们必须使一些 div 更大。让我们做第一个和最后一个div。

 .blocks:first-child{  
 网格列:1/3;  
 网格行:1/4;  
 } .blocks:last-child{  
 网格列:4/6;  
 网格行:2/5;  
 }

使用 grid-column 和 grid-row 我们可以决定元素的位置应该在哪里以及它在网格上的大小。

对于第一个块元素,我们使从第一列到第三列的宽度相等。我们设置的从第一行到第三行的高度。

最后一个块元素将在第 4 列中,直到最后一个。高度将从第二行到最后一行。

如果您习惯 JavaScript 以 0 开头的数组,请记住网格列和行都是以 1 开头的。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38362/22492111

标签:Metro,网格,1fr,rem,div,CSS
From: https://www.cnblogs.com/amboke/p/16714997.html

相关文章

  • 在 CSS 中使 div 居中的 5 种方法
    在CSS中使div居中的5种方法5waystocenteradivinCSS你觉得很难在CSS中将div居中吗?你并不孤单,我的兄弟,许多开发人员有时会在将div居中时感到困惑,包括......
  • CSS3过渡
    简介transitionCSS属性是transition-property,transition-duration,transition-timing-function和transition-delay的一个简写属性。transition:[transition-proper......
  • 2022 年 5 个用于 Web 开发的最佳 HTML 和 CSS 课程
    2022年5个用于Web开发的最佳HTML和CSS课程互联网已成为我们日常生活的重要组成部分,不断发展以连接全球越来越多的人。但是要了解现代网络的运作方式,您不仅需......
  • Neon 切换按钮 — CSS — 分步指南
    Neon切换按钮—CSS—分步指南HTML对于HTML,我们需要两个元素。切换类和切换内部的圆圈。<divclass="toggle"><divclass="circle"></div></div>CSS......
  • CSS 面试问题的答案——第三部分 (21–34/34)
    CSS面试问题的答案——第三部分(21–34/34)本文是我最后发表的“CSS面试题答案”系列。以下是所有文章的列表:CSS面试问题的答案——第一部分(1-10)CSS面试问题......
  • CSS改table边框
    <styletype="text/css">table{width:200px;height:200px;/*border-collapse:collapse;separate属性值为默认......
  • Grid网格布局
    简介CSS网格布局擅长于将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系(前提是HTML生成了这些区域)。是目前唯一的一种css二维布局。像表格一样......
  • CSS 网格 Gird 布局
    CSS网格Gird布局创建网格Gird通过将属性display的值设为grid,HTML元素就可以变为网格容器。注意:在CSS网格中,父元素称为容器(container),它的子元素称为项(items)。......
  • css-flexbox
    在缩放整个页面的时候,里面的元素可以随着页面缩放而变化设置display属性为flex就可以了display:flex;  决定容器中的主轴方向用flex-directionex:flex-direction......
  • css-transition
     2个形状转化时间。就是渐变的时间具体参考这:https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions......