首页 > 其他分享 >css值grid布局基础

css值grid布局基础

时间:2023-07-26 15:56:31浏览次数:32  
标签:单元格 column 布局 grid template 属性 css row

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 参考自 :https://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html */
      /* Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。 */
      /* Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。
      Grid 布局远比 Flex 布局强大。 */
      /* 基本概念:
      采用网格布局的区域,称为"容器"(container)。容器内部采用网格定位的子元素,称为"项目"(item)。
      容器里面的水平区域称为"行"(row),垂直区域称为"列"(column)。行和列的交叉区域,称为"单元格"(cell)。正常情况下,n行和m列会产生n x m个单元格。
      划分网格的线,称为"网格线"(grid line)。水平网格线划分出行,垂直网格线划分出列。正常情况下,n行有n + 1根水平网格线,m列有m + 1根垂直网格线
      */
      * {
        margin: 0;
        padding: 0;
      }
      body {
        min-height: 100vh;
        height: auto;
      }
      .container {
        min-height: 100vh;
        height: auto;

        /* display: grid指定一个容器采用网格布局。 */
        display: grid;

        /* grid-template-columns属性定义每一列的列宽,grid-template-rows属性定义每一行的行高。 */
        /* grid-template-columns: repeat(3, 33.33%); grid-template-columns: repeat(2, 100px 20px 80px); */
        /* 有时,单元格的大小是固定的,但是容器的大小不确定。如果希望每一行(或每一列)容纳尽可能多的单元格,这时可以使用auto-fill关键字表示自动填充。
          grid-template-columns: repeat(auto-fill, 100px); */
        /* fr单位被用于在一系列长度值中分配剩余空间,如果已指定其它部分,则剩下的空间根据各自的数字按比例分配。 grid-template-columns: 150px 1fr 2fr; */
        /* minmax(min, max):用来定义一个范围,最小值为min,最大值为max。grid-template-columns: 40px 50px minmax(50px, 2fr) 1fr 40px; */
        grid-template-columns: 280px auto;
        grid-template-rows: 50px auto 25px;

        /* grid-template-areas属性用于定义区域,如果某些区域不需要利用,则使用"点"(.)表示 */
        grid-template-areas:
          "logo header"
          "sidebar main"
          ". footer";

        /* rid-row-gap属性设置行与行的间隔(行间距),grid-column-gap属性设置列与列的间隔(列间距)。 */
        grid-column-gap: 10px;
        grid-row-gap: 10px;
        /* 等同于 */
        /* grid-gap: 10px 10px; */
        /* grid-gap: 10px; */

        /* 划分网格以后,容器的子元素会按照顺序,自动放置在每一个网格。默认的放置顺序是"先行后列" ,row dense和column dense这两个值主要用于,某些项目指定位置以后,剩下的项目怎么自动放置。*/
        /* grid-auto-flow: row | column | row dense | column dense */
        grid-auto-flow: column;

        /* justify-items属性设置单元格内容的水平位置,align-items属性设置单元格内容的垂直位置 */
        /* align-items: start | end | center | stretch;  stretch:拉伸,占满单元格的整个宽度(默认值)*/
        /* justify-items: start | end | center | stretch; stretch:拉伸,占满单元格的整个宽度(默认值) */
        justify-items: stretch;
        align-items: stretch;

        /* justify-content属性是整个内容区域在容器里面的水平位置,align-content属性是整个内容区域的垂直位置。 */
        /* justify-content: start | end | center | stretch | space-around | space-between | space-evenly;   */
        /* align-content: start | end | center | stretch | space-around | space-between | space-evenly;  */
        justify-content: stretch;
        align-content: stretch;

        /* grid-auto-columns属性和grid-auto-rows属性用来设置,浏览器自动创建的多余网格的列宽和行高。 */
      }
      .container > div {
        border: 1px solid silver;
      }
      .logo {
        /* grid-area属性指定项目放在哪一个区域。或者 grid-area: <row-start> / <column-start> / <row-end> / <column-end>; */
        grid-area: logo;
        /* justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,但只作用于单个项目。 */
        /* align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目。 */
      }
      .header {
        grid-area: header;
      }
      .sidebar {
        /* grid-column-start属性:左边框所在的垂直网格线 */
        /* grid-column-end属性:右边框所在的垂直网格线 */
        /* grid-row-start属性:上边框所在的水平网格线 */
        /* grid-row-end属性:下边框所在的水平网格线 */
        /* grid-column-start: 1; grid-column-end: 2;等同于 */
        grid-column: 1 / 2;
        /* grid-row-start: 2; grid-row-end: 4;等同于 */
        /* grid-row: 2 / span 2; */
        grid-row: 2 / 4;
      }
      .main {
        grid-area: main;
      }
      .footer {
        grid-area: footer;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="logo">logo</div>
      <div class="header">header</div>
      <div class="sidebar">sidebar</div>
      <div class="main">main</div>
      <div class="footer">footer</div>
    </div>
  </body>
</html>

 

标签:单元格,column,布局,grid,template,属性,css,row
From: https://www.cnblogs.com/caroline2016/p/17582674.html

相关文章

  • 'GridViewDeletedEventArgs '末包含' RowIndex "的定义,并且找不到可接受第一 个"GridV
     页面中设置了“OnRowDeleting="List_RowDeleting"DataKeyNames="id"”后台代码为:行178:protectedvoidList_RowDeleting(objectsender,GridViewDeletedEventArgse)行179:{行180:stringid=this.List.DataKeys[e.RowIndex].Value.ToString();行181:SqlC......
  • 加入媒体查询后手机端css可以使用,但是电脑端css无效?
    加入媒体查询后手机端css可以使用,但是电脑端css无效?我的写法是这样的 @mediascreenand(max-width:1023px){ .button-module_container__ssMyd2{ width:100%; margin-left:0%; transform:scale(1.1); margin-top:3vw; padding:1.3vw; border-rad......
  • css3新特性笔记之“选择器” .
    http://www.blueidea.com/tech/web/2009/6930_2.asp选择器属性选择器   匹配包含以特定的值开头的属性的元素     匹配包含以特定的值结尾的属性的元素     匹配包含含有特定的值的属性的元素  (1)[att^="value"]匹配包含以特定的值开头的属性的元素(2)[att$......
  • css 伪元素
    CSS伪元素是一项强大的功能,它允许您为所选元素的特定部分设置样式,而无需额外的JavaScript代码。 虽然许多开发人员都熟悉常用的伪元素,如::before和::after,但还有一些其他元素经常被忽视或未得到充分利用。 在本文中,我们将分享9个鲜为人知的CSS伪元素,它们可以增强您的......
  • css案例-after伪类元素的例子
    下位三角例子<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</tit......
  • 02_CSS
    1.CSS1.简介1.是什么CascadingStylesheets,层叠样式表CSS可以用来为网页创建样式表,通过样式表可以对网页进行装饰。所谓层叠,可以将整个网页想象成一层一层的结构,层次高的将会覆盖层次低的,CSS可以分别为网页的各个层次设置样式。2.能做什么修饰美化html网页;外部样式表可以......
  • TailWind CSS工具库使用
    一、简介官方文档本CSS框架本质上是一个工具集,包含了大量类似 flex、 pt-4、 text-center 以及 rotate-90 等工具类,可以组合使用并直接在HTML代码上实现任何UI设计。二、安装介绍VUE项目的相关安装步骤1.安装TailWindCSS通过npm安装tailwindcss和它的相关依......
  • flex 布局详解
    一、flex简单介绍Flex全称Flexiblebox布局模型,通常称为flexbox或flex,也称为弹性盒子或弹性布局。一种比较高效率的css3布局方案。既然是盒子,首先需要一个容器container,然后是项目item。容器包裹着项目,再通过配置不同的属性,实现各种各样的排列分布。flex有两根轴线,分别......
  • css制作三角
    使用border属性制作三角:当给一个宽高为0的盒子设置不同颜色的边框时会如下图所示,由此可见,想要设置三角,则可以将其余三条边框设置为透明色<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-widt......
  • [爬虫]1.2.2 CSS选择器
    CSS(CascadingStyleSheets)是一种样式表语言,用于描述HTML元素的样式。CSS选择器是CSS规则的一部分,它决定了CSS规则应用于哪些元素。在网络爬虫的开发中,我们经常使用CSS选择器来定位和选取HTML元素。以下是一些常见的CSS选择器:1.元素选择器元素选择器选择所有给定的HTML元......