css学习(三)

214 阅读1分钟

网格布局

  • gird-template-row(columns) 设置行列属性
  • gap 设置网格线宽度
  • grid-template-area 给单元格命名
  • grid-column、grid-row 设置元素在容器中的位置
  • 对齐 justify-content、align-content 设置网格容器的对齐方式,justify-items、align-items设置网格容器内所有子元素的对齐方式,justify-self、align-self对容器内单个子元素设置对齐方式。
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="main.css" />
  </head>
  <body>
    <div class="grid">
      <div></div>
      <div class="special"></div>
      <div></div>
      <div></div>
      <div class="special"></div>
      <div></div>
      <div class="special"></div>
      <div></div>
    </div>
  </body>
</html>
:root {
  box-sizing: border-box;
}

*,
::before,
::after {
  box-sizing: inherit;
}

body {
  background-color: #709b90;
  font-family: Arial, Helvetica, sans-serif;
}

body * + * {
  margin-top: 1.5em;
}

.grid {
  width: 1080px;
  height: 600px;
  background-color: white;
  display: grid;
  grid-template-columns: repeat(6, 150px);
  grid-template-rows: repeat(3, 150px);
  gap: 1em;
  justify-items: center;
  align-items: center;
  justify-content: space-between;
  align-content: space-around;
}

.grid > div {
  margin: 0;
  width: 100px;
  height: 100px;
  background-color: blue;
}

.grid > div.special {
  align-self: flex-end;
  justify-self: start;
  height: 300px;
  grid-row: span 2;
}

定位,层级

  • fixed 在视图窗口的固定位置
  • absolute 根据祖先元素进行绝对定位
  • relative 相对定位,移动不会影响周围的元素,不能通过同时设置left/right和top/bottom改变元素的大小
  • sticky 位置和父元素的大小相关,在要离开视口时,并且父元素没有离开视口,位置设置生效,相对于视口的位置,否则位置设置无效。
  • z-index 同级元素数值越小越先被渲染

响应式布局

  • 优先做移动端布局,然后根据视口宽度逐级编写布局。
  • @media 通过媒体查询器来设置对应尺寸、横竖屏等情况下不同的布局。