美文网首页
常见的css布局方式

常见的css布局方式

作者: 欢西西西 | 来源:发表于2023-01-29 14:31 被阅读0次

1. 垂直水平居中

  • grid布局
.parent {
    display: grid;
    align-items: center;
    justify-items: center;
    /* 可以合并为:place-items: center; */
}
  • flex布局
.parent {
    display: flex;
    align-items: center;
    justify-content: center;
}
 
  • 子元素绝对定位+margin: auto
.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;

  width: 200px;
  height: 100px;
}
  • 子元素绝对定位+偏移50%
.parent {
  position: relative;
}

.child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  width: 200px;
  height: 100px;
}

2. 两栏布局

实现:左栏固定(宽度200px,不超过25%),右栏自适应
grid 和 flex对上下分栏和左右分栏都适用

  • grid布局
.parent {
  display: grid;
  grid-template-columns: minmax(200px, 25%) 1fr;
}

如果要实现上下位置固定,中间高度自适应的三明治布局,也可以使用grid布局

.parent {
  height: 100vh;
  grid-template-rows: auto 1fr auto;
}
  • flex布局
.parent {
  display: flex;
}
.child-left {
  width: max(200px, 25%);
}
.child-right {
  flex: 1;
}

flex如果需要自动换行,并且换行之后希望固定宽度的子元素能撑满整个宽度:
则父元素设置flex-wrap: wrap,原固定宽度的元素:flex: 1 1 1000px

flex: <flex-grow> <flex-shrink> <flex-basis>; // flex是这3个属性的简写

flex-grow 有多余宽度是否可扩大
flex-shrink  宽度不够是否可缩小
flex-basis 初始宽度

3. 圣杯

image.png
  • grid布局

先将父元素分为9格

.parent {
   grid-template-rows: auto 1fr auto;
   grid-template-columns: auto 1fr auto;
   /* 可以合并写成:grid-template: auto 1fr auto / auto 1fr auto */
}

再设置每个单元格的位置

.header,
.footer {
  grid-column: 1 / 4;
 /* 是 grid-column-start: 1;  grid-column-end: 4; 的简写 */
}
.left-bar { grid-column: 1 / 2; }
.main { grid-column: 2 / 3; }
.right-bar { grid-column: 3 / 4; }

优点是:这几个元素在html里是同级元素,不需要通过嵌套再在内部布局

4. 文本垂直居中

  • 单行文本
    设置line-height为想要的盒子高度(已经设置了height就把line-height设置成相同的值)

  • 元素高度固定,多行文本垂直居中

.element {
  display: table-cell;  
  vertical-align: middle;
}

5. flex实现自适应的九宫格,每个block都为正方形

image.png
  • width设置成30%保证一行3个
  • 使用padding-top: 30% 实现正方形,因为width和padding-top的百分比都是相对于父元素宽度的(这也意味着盒子内部的元素不应该再占位,否则高度增高导致正方形变成矩形了)
.table {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}

.cell {
    width: 30%;
    padding-top: 30%; /* 这一步设置高度,保证盒子为正方形 */
    margin-top: 3%;
}

相关文章

  • CSS实现三栏布局

    CSS实现三栏布局(5种) 常见的布局方式: float布局、Position定位、table布局、弹性(flex...

  • 【CSS】 Index

    CSS 一、使用CSS样式的方式CSS 二、定义样式表CSS 三、常见属性CSS 四、DIV+CSS布局

  • css中的几种布局方式

    在css中,常见的布局方式:表格,浮动,定位, flex.

  • 【CSS】三、常见属性

    CSS 一、使用CSS样式的方式CSS 二、定义样式表CSS 三、常见属性CSS 四、DIV+CSS布局## 三、...

  • 【CSS】 一、使用CSS样式的方式

    CSS 一、使用CSS样式的方式CSS 二、定义样式表CSS 三、常见属性CSS 四、DIV+CSS布局## 一、...

  • 【CSS】 二、定义样式表

    CSS 一、使用CSS样式的方式CSS 二、定义样式表CSS 三、常见属性CSS 四、DIV+CSS布局## 二、...

  • 【CSS】四、DIV+CSS布局

    CSS 一、使用CSS样式的方式CSS 二、定义样式表CSS 三、常见属性CSS 四、DIV+CSS布局## 四、...

  • 常见 CSS 布局方式

    前言 温馨提示:本文较长,图片较多,本来是想写一篇 CSS 布局方式的,但是奈何 CSS 布局方式种类太多并且实现...

  • css

    css基础css选择器css常见样式1css常见样式2CSS布局上CSS布局下flex布局塔防小游戏flex布局青...

  • CSS布局

    CSS入门(3) CSS的常见布局 CSS常见布局使用display属性(文档流)+position属性(定位)+...

网友评论

      本文标题:常见的css布局方式

      本文链接:https://www.haomeiwen.com/subject/tyqphdtx.html