13、CSS3中的grid布局(网格布局)

简介: 13、CSS3中的grid布局(网格布局)

1、flex布局与grid布局的区别


image.png


2、grid容器属性


image.png


3、justify-items、align-items与justify-content、align-content`的区别:


  • 一个是grid项目在单元格中的对齐方式,一个是单元格在整个grid容器中的对齐方式(content包含items)


4、grid元素属性


image.png


5、实例(利用grid实现网页布局)


  • 5.1、效果:


847adf0d5a234a4097c8a3b2c45877b0.jpg


  • 5.2、源代码:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      padding: 0px;
      margin: 0px;
    }
    body,
    html {
      height: 100%;
    }
    .container {
      width: 100%;
      height: 100%;
      display: grid;
      grid-template-columns: 80% 20%;
      grid-template-rows: 15% 25% 25% 25% 10%;
    }
    .item {
      border: 1px solid black;
    }
    .header,
    .footer {
      grid-column: 1/3;
    }
    .aside {
      grid-row: 2/5;
      grid-column: 2/3;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item header">header</div>
    <div class="item docs">docs</div>
    <div class="item blogs">blogs</div>
    <div class="item vedios">vedios</div>
    <div class="item aside">aside</div>
    <div class="item footer">footer</div>
  </div>
</body>
</html>


6、笔记(源代码)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 容器属性 */
    .container {
      width: 500px;
      height: 500px;
      border: 1px solid black;
      /* 1、grid属性:二维布局*/
      display: grid;
      /* 2、grid-template-rows属性: 二维布局中的行。fr:按比例设置行*/
      grid-template-rows: 100px 100px 100px;
      grid-template-rows: 1fr 1fr 2fr;
      /* 3、grid-template-columns属性: 二维布局中的列。fr:按比例设置列*/
      grid-template-columns: 100px 100px 100px;
      grid-template-columns: 1fr 1fr 2fr;
      /* 4、grid-auto-flow属性:设置元素横/纵向排列(默认为横向) */
      grid-auto-flow: column;
      /* 5、justify-items属性:设置元素水平方向排列方式(默认为延伸)
         5.1、self-start属性值:元素在最左边,不延伸
         5.2、self-end属性值:元素在最右边,不延伸
         5.3、center属性值:元素在中边,不延伸
         5.4、stretchr属性值:元素延伸,填满容器(默认)
      */
      justify-items: stretch;
      /* 6、align-items属性:设置元素垂直方向排列方式(默认为延伸),跟横向是一样的 */
      align-items: stretch;
      /* 7、justify-content属性:设置整个grid容器水平方向排列方式(默认为延伸) */
      justify-content: center;
      /* 8、align-content属性:设置整个grid容器垂直方向排列方式(默认为延伸),跟横向是一样的 */
      align-content: center;
      /* 9、justify-items、align-items与justify-content、align-content的区别:
      一个是grid项目在单元格中的对齐方式,一个是单元格在整个grid容器中的对齐方式
      */
      /* 10、grid-auto-rows属性:设置行溢出的尺寸 */
      grid-auto-rows: 50px;
      /* 11、grid-auto-columns属性:设置列溢出的尺寸 */
      grid-auto-columns: 50px;
    }
    /* 项目属性 */
    .item {
      border: 1px solid black;
    }
    .first {
      /* 12、grid-column属性:合并单元格(横向)
      grid-column-start属性:第一条单元格线的位置(横向)
      grid-column-end属性:最后一条单元格线的位置(横向) */
      grid-column-start: 1;
      grid-column-end: 4;
      grid-column: 1/4;
      /* 13、grid-row属性:合并单元格(纵向)
      grid-row-start属性:第一条单元格线的位置(纵向)
      grid-row-end属性:最后一条单元格线的位置(纵向) */
      grid-row-start: 1;
      grid-row-end: 4;
      grid-row: 1/4;
      /* 14、justify-self、align-self属性:设置个别元素在项目中水平垂直对齐(默认为拉伸) */
      justify-self: stretch;
      align-self: stretch;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item first">item1</div>
    <div class="item">item2</div>
    <div class="item">item3</div>
    <div class="item">item4</div>
    <div class="item">item5</div>
    <div class="item">item6</div>
    <div class="item">item7</div>
    <div class="item">item8</div>
    <div class="item">item9</div>
    <div class="item">item10</div>
  </div>
</body>
</html>


相关文章
|
3月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
157 1
|
3月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
316 1
|
7月前
|
前端开发
用 CSS Grid 轻松构建复杂布局
用 CSS Grid 轻松构建复杂布局
352 83
|
6月前
|
Web App开发 前端开发 数据可视化
用 CSS Grid 实现高效布局的 3 个实战技巧
用 CSS Grid 实现高效布局的 3 个实战技巧
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
7月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
7月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
7月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    307
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    262
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    216
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    157
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    316
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    455
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    201
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    147
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    214
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    289