当前位置: 首页 > news >正文

幼儿园微信公众号如何做微网站/中国十大热门网站排名

幼儿园微信公众号如何做微网站,中国十大热门网站排名,深圳电子商务网站建设,台州椒江找人做网站对 CSS 布局掌握程度决定你在Web开发中的开发页面速度。随着Web技术的不断革新,实现各种布局的方式已经多得数不胜数了。 本篇文章总结了四十二种CSS的常见布局,这四十二种布局可以细分为如下几类: 水平居中垂直居中水平垂直居中两列布局三…

对 CSS 布局掌握程度决定你在Web开发中的开发页面速度。随着Web技术的不断革新,实现各种布局的方式已经多得数不胜数了。

本篇文章总结了四十二种CSS的常见布局,这四十二种布局可以细分为如下几类:

  • 水平居中
  • 垂直居中
  • 水平垂直居中
  • 两列布局
  • 三列布局
  • 等分布局
  • Sticky Footer布局
  • 全屏布局
    这些内容也正是本篇文章的目录。

水平居中

实现水平布局比较简单,方法也比较多,这里总结了7种常用的布局方法,其公共的CSS代码如下所示:

.parent { background: #ff8787; }
.child { height: 300px; width: 300px; background: #e599f7; }

其 HTML 结构也是固定的,就是一个父级,其宽度继承了 的宽度,还有一个子级,这里是固定的300px*300px,代码如下:

<div class="parent"><div class="child"></div>
</div>

最终的实现效果如下:
在这里插入图片描述
上图中玫瑰色的块是父级,随页面宽度增加的;淡紫色是子级,相对于父级居中的。

  1. 使用text-align属性

若元素为行内块级元素,也就是 display: inline-block 的元素,可以通过为其父元素设置t ext-align: center 实现水平居中。实现的CSS代码如下:

.parent {/* 对于子级为 display: inline-block; 可以通过 text-align: center; 实现水平居中 */text-align: center;
}.child {display: inline-block;
}
  1. 定宽块级元素水平居中(方法一)

对于定宽的的块级元素实现水平居中,最简单的一种方式就是 margin: 0 auto;,但是值得注意的是一定需要设置宽度。实现 CSS 代码如下:

.child {/* 对于定宽的子元素,直接 margin:0 auto; 即可实现水平居中 */margin: 0 auto;
}
  1. 定宽块级元素水平居中(方法二)

对于开启定位的元素,可以通过 left 属性 和 margin 实现。实现CSS代码如下:

.child {/* 开启定位 */position: relative;left: 50%;/* margin-left 为 负的宽度的一半 */margin-left: -150px;
}
  1. 定宽块级元素水平居中(方法三)

当元素开启决定定位或者固定定位时, left 属性和 right 属性一起设置就会拉伸元素的宽度,在配合 width 属性与 margin 属性就可以实现水平居中。

实现 CSS 代码如下:

.parent {position: relative;height: 300px;
}.child {/* 开启定位 父相子绝 */position: absolute;/* 水平拉满屏幕 */left: 0;right: 0;width: 300px;/* 拉满屏幕之后设置宽度,最后通过 margin 实现水平居中 */margin: auto;
}
  1. 定宽块级元素水平居中(方法四)

当元素开启决定定位或者固定定位时, left 属性和 transform 属性即可实现水平居中。

实现CSS代码如下:

.parent {position: relative;
}.child {/* 开启定位 */position: absolute;/* 该方法类似于 left 于 -margin 的用法,但是该方法不需要手动计算宽度。 */left: 50%;transform: translateX(-50%);
}
  1. Flex方案

通过 Flex 可以有很多方式实现这个居中布局的效果。

实现 CSS 代码如下

.parent {height: 300px;/* 开启 Flex 布局 */display: flex;/* 通过 justify-content 属性实现居中 */justify-content: center;
}.child {/* 或者 子元素 margin: auto*/margin: auto;
}
  1. Grid方案

通过Grid实现居中布局比通过Flex实现的方式更多一些。

实现CSS代码如下:


.parent {height: 300px;/* 开启 Grid 布局 */display: grid;/* 方法一 */justify-items: center;/* 方法二 */justify-content: center;
}.child {/* 方法三 子元素 margin: auto*/margin: auto;
}

以上就是水平居中布局常用的几种方式。

垂直居中

实现垂直布局也是比较简单的,方法也比较多,这里总结了6种常用的布局方法,其公共的 CSS 代码如下所示:

.parent {height: 500px;width: 300px;margin: 0 auto;background-color: #ff8787;
}
.child {width: 300px;height: 300px;background-color: #91a7ff;
}

其 HTML 结构也是固定的,就是一个父级包裹一个子级,这里的子级是固定的300px*300px,代码如下:

<div class="parent"><div class="child"></div>
</div>

在这里插入图片描述

  1. 行内块级元素垂直居中

若元素是行内块级元素, 基本思想是子元素使用display: inline-block, vertical-align: middle;并让父元素行高等同于高度。

实现CSS代码如下:

.parent {/* 为父级容器设置行高 */line-height: 500px;
}.child {/* 将子级元素设置为 inline-block 元素 */display: inline-block;/* 通过 vertical-align: middle; 实现居中 */vertical-align: middle;
}
  1. 定位方式实现(方法一)

第一种通过定位的方式实现就比较简单,实际就是通过top: 50%; margin-top: 等于负的高度的一半就可以实现垂直居中。

实现CSS代码如下:

.parent {/* 为父级容器开启相对定位 */position: relative;
}.child {position: absolute;top: 50%;/* margin-top: 等于负高度的一半 */margin-top: -150px;
}
  1. 定位方式实现(方法二)

第二种通过定位的方式实现实现思路:top 和 bottom 将子元素拉伸至100%,设置指定的高度,通过margin:auto;即可实现垂直居中。

实现CSS代码如下:

.parent {/* 为父级容器开启相对定位 */position: relative;
}.child {height: 300px;position: absolute;/* 垂直拉满 */top: 0;bottom: 0;/* margin: auto 即可实现 */margin: auto;
}
  1. 定位方式实现(方法三)

第三种通过定位的方式就比较灵活,适用于多种场合,使用 top 配合 tansform 即可。

实现CSS代码如下:

.parent {/* 为父级容器开启相对定位 */position: relative;
}.child {position: absolute;top: 50%;transform: translateY(-50%);
}
  1. Flex方案

通过 Flex 可以有很多方式实现这个垂直居中布局的效果。

实现CSS代码如下:

.parent {/* 开启 flex 布局 */display: flex;/* 方法一 *//* align-items: center; */
}.child {/* 方法二 */margin: auto;
}

通过 Flex 布局实现不仅仅只有上面两种,这里只介绍最简单的方式。

  1. Grid方案

通过 Grid 实现居中布局比通过 Flex 实现的方式更多一些。

实现CSS代码如下:

.parent {display: grid;/* 方法一 *//* align-items: center; *//* 方法二 *//* align-content: center; */
}.child {/* 方法三 *//* margin: auto; *//* 方法四 */align-self: center;
}

以上就是垂直居中布局常用的几种方式。

水平垂直居中

实现水平垂直布局基本就是将上面几种方式结合使用,这里总结了7种常用的布局方法,其公共的 CSS 代码如下所示:

body {margin: 0;
}
.parent {height: 500px;width: 500px;background-color: #eebefa;margin: 0 auto;
}
.child {height: 300px;width: 300px;background-color: #f783ac;
}

其 HTML 结构也是固定的,就是一个父级包裹一个子级,这里的子级是固定的300px*300px,代码如下:

<div class="parent"><div class="child"></div>
</div>

最终的实现效果如下:
在这里插入图片描述

  1. 行内块级水平垂直居中方案

步骤如下:

  • 容器元素行高等于容器高度
  • 通过 text-align: center; 实现水平居中
  • 将子级元素设置为水平块级元素
  • 通过 vertical-align: middle; 实现垂直居中

实现CSS代码如下:

.parent {/* 1. 设置行高等于容器高度 */line-height: 500px;/* 通过 text-align: center; 实现水平居中 */text-align: center;
}
.child {/* 将子级元素设置为水平块级元素 */display: inline-block;/* 通过 vertical-align: middle; 实现垂直居中 */vertical-align: middle;
}
  1. 定位实现水平垂直居中方案(一)

步骤如下:

  • 使子元素相对于容器元素定位
  • 子元素开启绝对定位
  • 设置该元素的偏移量,值为50% 减去宽度/高度的一半

实现CSS代码如下:

.parent {/* 1. 使子元素相对于本元素定位 */position: relative;
}
.child {/* 2. 开启绝对定位 */position: absolute;/* 3. 设置该元素的偏移量,值为 50%减去宽度/高度的一半 */left: calc(50% - 150px);top: calc(50% - 150px);
}
  1. 定位实现水平垂直居中方案(二)

步骤如下:

  • 使子元素相对于容器元素定位
  • 子元素开启绝对定位
  • 设置该元素的偏移量,值为50%
  • 通过外边距-值的方式将元素移动回去

实现CSS代码如下:

.parent {/* 1. 使子元素相对于本元素定位 */position: relative;
}
.child {/* 2. 开启绝对定位 */position: absolute;/* 3. 设置该元素的偏移量,值为 50% */left: 50%;top: 50%;margin-left: -150px;margin-top: -150px;
  1. 定位实现水平垂直居中方案(三)

步骤如下:

  • 使子元素相对于容器元素定位
  • 子元素开启绝对定位
  • 将子元素拉满整个容器
  • 通过margin:auto实现水平垂直居中

实现CSS代码如下:

.parent {/* 1. 使子元素相对于本元素定位 */position: relative;
}
.child {/* 2. 开启绝对定位 */position: absolute;/* 3. 将子元素拉满整个容器 */top: 0;left: 0;right: 0;bottom: 0;/* 4. 通过 margin:auto 实现水平垂直居中 */margin: auto;
}
  1. 定位实现水平垂直居中方案(四)

步骤如下:

  • 使子元素相对于容器元素定位
  • 子元素开启绝对定位
  • 设置该元素的偏移量,值为50%
  • 通过 translate 反向偏移的方式,实现居中

实现 CSS 代码如下:

.parent {/* 1. 使子元素相对于本元素定位 */position: relative;
}
.child {/* 2. 开启绝对定位 */position: absolute;/* 3. 设置该元素的偏移量,值为 50%*/left: 50%;top: 50%;/* 通过translate反向偏移的方式,实现居中 */transform: translate(-50%, -50%);
}
  1. Flex方案

步骤如下:

  • 将元素设置为 Flex 布局
  • 通过 justify-content: center 以及 align-items: center 实现或者 margin: auto; 实现。

实现CSS代码如下:

.parent {/* 1. 将元素设置为 Flex 布局 */display: flex;/* 2. 通过 justify-content 以及 align-items: center 实现 *//* justify-content: center;align-items: center; */
}
.child {/* 或者通过 margin auto 实现 */margin: auto;
}
  1. Grid方案

Grid 方案的实现方式相对来说比较简单,方式也较多。

实现CSS代码如下:

.parent {/* 1. 元素设置为Grid 元素 */display: grid;/* 通过 items 属性实现*//* align-items: center; *//* justify-items: center; *//* items 的缩写 *//* place-items: center; *//* 或者通过 content 属性 *//* align-content: center; *//* justify-content: center; *//* content 的缩写 *//* place-content: center; */
}
.child {/* 或者通过 margin auto 实现 *//* margin: auto; *//* 或者通过 self 属性 *//* align-self: center;justify-self: center; *//* self 的缩写 */place-self: center;
}

实现水平垂直居中布局的方式大多是通过上面两种布局的方式相结合。

两列布局

所谓的两列布局就是一列定宽(也有可能由子元素决定宽度),一列自适应的布局。最终效果如下所示:
在这里插入图片描述

这里用到的 HTML 结构如下:

<!-- 解决高度塌陷 -->
<div class="container clearfix"><div class="left">定宽</div><div class="right">自适应</div>
</div>

公共的 CSS 代码如下:

body {margin: 0;
}
.container {height: 400px;background-color: #eebefa;
}
.left {height: 400px;width: 200px;background-color: #f783ac;font-size: 70px;line-height: 400px;text-align: center;
}
.right {height: 400px;background-color: #c0eb75;font-size: 70px;line-height: 400px;
}
/* 清除浮动 */
.clearfix:after {content: '';display: block;height: 0;clear: both;visibility: hidden;
}
  1. float+calc()函数完成左列定宽右列自适应

步骤如下:

  • 左边列开启浮动
  • 右边列开启浮动
  • 右边列宽度为父级 100%减去左列的宽度

实现CSS代码如下:

.left {/* 左边列开启浮动 */float: left;
}
.right {/* 右边列开启浮动 */float: left;/* 宽度减去左列的宽度 */width: calc(100% - 200px);
}
  1. float+margin-left完成左列定宽右列自适应

步骤如下:

  • 左边列开启浮动

  • 通过外边距的方式使该容器的左边有左边列容器的宽度的外边距

实现CSS代码如下:

.left {/* 左边列开启浮动 */float: left;
}
.right {/* 通过外边距的方式使该容器的左边有200px */margin-left: 200px;
}
  1. absolute+margin-left完成左列定宽右列自适应

步骤如下:

  • 开启定位脱离文档流
  • 通过外边距的方式使该容器的左边有左边列容器的宽度的外边距

实现CSS代码如下:

.left {/* 开启定位脱离文档流 */position: absolute;
}
.right {/* 通过外边距的方式使该容器的左边有200px */margin-left: 200px;
}

值得注意的是 以上几种方案左边列必须定宽,才可以实现,下面这几种方案左边列可以由子级撑起。

  1. float+overflow完成左列定宽右列自适应

步骤如下:

  • 左侧元素开始浮动
  • 右侧自适应元素设置overflow会创建一个BFC完成自适应

实现CSS代码如下:

.left {/* 1. 左侧元素开始浮动 */float: left;
}
.right {/* 2. 右侧自适应元素设置 overflow 会创建一个BFC 完成自适应 */overflow: hidden;
}
  1. Flex方案

通过Flex布局实现该功能主要是通过 flex 属性来实现示例代码如下:

.container {display: flex;
}
.right {flex: 1;/* flex: 1; 表示 flex-grow: 1; 即该项占所有剩余空间 */
}
  1. Grid方案

通过 Grid 布局实现该功能主要是通过template属性实现,具体代码如下所示:

.container {display: grid;/* 将其划分为两行,其中一列有本身宽度决定, 一列占剩余宽度*/grid-template-columns: auto 1fr;
}

三列布局

三列布局主要分为两种:

  • 第一种是前两列定宽,最后一列自适应,这一种本质上与两列布局没有什么区别,可以参照两列布局实现。
  • 第二种是前后两列定宽,中间自适应,最终效果图如下

在这里插入图片描述
公共 CSS 如下:

body {margin: 0;
}
.container {height: 400px;background-color: #eebefa;
}
.left {height: 400px;width: 200px;background-color: #f783ac;
}
.content {height: 400px;background-color: #d9480f;
}
.right {height: 400px;width: 200px;background-color: #c0eb75;
}
.left,
.content,
.right {font-size: 70px;line-height: 400px;text-align: center;
}
/* 清除浮动 */
.clearfix:after {content: '';display: block;height: 0;clear: both;visibility: hidden;
}

HTML 结构如下:

<!-- 解决高度塌陷 -->
<div class="container clearfix"><div class="left"></div><div class="content">内容</div><div class="right"></div>
</div>
  1. 通过float实现(一)

实现步骤:

  • 为了完成效果需要调整HTML结构,调整后如下:
<!-- 解决高度塌陷 -->
<div class="container clearfix"><div class="left"></div><div class="right"></div><div class="content">内容</div>
</div>
  • 左列容器开启左浮动
  • 右列容器开启右浮动
  • 自适应元素设置overflow会创建一个BFC完成自适应

实现CSS代码如下

.left {/* 1. 左列容器开启左浮动 */float: left;
}
.content {/* 自适应元素设置 overflow 会创建一个BFC 完成自适应 */overflow: hidden;
}
.right {/* 2. 右列容器开启右浮动 */float: right;
}
  1. 通过float实现(二)

实现步骤:

  • 为了完成效果需要调整 HTML 结构,调整后如下:
<!-- 解决高度塌陷 -->
<div class="container clearfix"><div class="left"></div><div class="right"></div><div class="content">内容</div>
</div>
  • 左列容器开启左浮动
  • 右列容器开启右浮动
  • 使中间自适应的宽度为父级容器减去两个定宽的列

实现CSS代码如下:

.left {/* 1. 左列容器开启左浮动 */float: left;
}
.content {/* 3. 使中间自适应的宽度为父级容器减去两个定宽的列 */width: calc(100%-400px);
}
.right {/* 2. 右列容器开启右浮动 */float: right;
}
  1. 通过position实现

实现步骤

  • 左右两列脱离文档流,并通过偏移的方式到达自己的区域
  • 使中间自适应的宽度为父级容器减去两个定宽的列
  • 通过外边距将容器往内缩小

实现CSS代码如下:

.left {/* 1. 左右两列脱离文档流,并通过偏移的方式到达自己的区域 */position: absolute;left: 0;top: 0;
}
.content {/* 2. 使中间自适应的宽度为父级容器减去两个定宽的列 */width: calc(100%-400px);/* 3. 通过外边距将容器往内缩小 */margin-right: 200px;margin-left: 200px;
}
.right {position: absolute;right: 0;top: 0;
}
  1. Flex方案

通过 Flex 布局实现该功能主要是通过 flex 属性来实现。

实现CSS代码如下:

.container {display: flex;
}
.right {flex: 1;/* flex: 1; 表示 flex-grow: 1; 即该项占所有剩余空间 */
}
  1. Grid方案

通过 Grid 布局实现该功能主要是通过 template 属性实现。

实现CSS代码如下:

.container {display: grid;/* 将其划分为两行,其中一列有本身宽度决定, 一列占剩余宽度*/grid-template-columns: auto 1fr auto;
}

等分布局

等分布局就是将一个容器平均分成几等份,这里以 4 等分为例,主要介绍4种方法。

公共CSS部分如下:

body {margin: 0;
}
.container {height: 400px;background-color: #eebefa;
}
.item {height: 100%;
}
.item1 {background-color: #eccc68;
}
.item2 {background-color: #a6c1fa;
}
.item3 {background-color: #fa7d90;
}
.item4 {background-color: #b0ff70;
}
/* 清除浮动 */
.clearfix:after {content: '';display: block;height: 0;clear: both;visibility: hidden;
}

公共HTML代码如下:

<!-- 父元素清除浮动 -->
<div class="container clearfix"><div class="item item1"></div><div class="item item2"></div><div class="item item3"></div><div class="item item4"></div>
</div>

在这里插入图片描述

  1. 浮动+百分比方式

这种方式比较简单,开启浮动,使每个元素占25%的宽度。

实现CSS代码如下:

.item {/* 开启浮动,每个元素占 25% 的宽度 */width: 25%;float: left;
}
  1. 行内块级+百分比方式

这种方式与上面那种方式类似,不过需要注意的是行内块级元素有一些类似于边距的几个像素,导致各25%会超出容器。

实现CSS代码如下:

.item {/* 设置每个元素为行内块级元素,每个元素占 24.5% 的宽度 */width: 24.5%;/* 因为行内块级元素有一些类似于边距的几个像素,导致各占25会超出容器 */display: inline-block;
}
  1. Flex方案

通过 Flex 布局实现该功能主要是通过 flex 属性来实现。

实现CSS代码如下:

.container {/* 开启 flex 布局 */display: flex;
}
.item {/* 每个元素占相同的宽度 */flex: 1;
}
  1. Grid方案

通过 Grid 布局实现该功能主要是通过 template 属性实现。

实现CSS代码如下

.container {/* 开启 grid 布局 */display: grid;grid-template-columns: repeat(4, 1fr);/* 使用 repeat 函数生成如下代码 *//* grid-template-columns: 1fr 1fr 1fr 1fr; */
}

Sticky Footer 布局

所谓的 Sticky Footer 布局并不是一种新的前端技术和概念,它就是一种网页布局。如果页面内容不够长时,底部栏就会固定到浏览器的底部;如果足够长时,底部栏就后跟随在内容的后面。如下图所示:

在这里插入图片描述
这里来介绍实现该布局的4种方式

公共的CSS代码如下:

body {margin: 0;
}
.container {height: 400px;display: flex;
}
.left {height: 400px;width: 200px;background-color: #f759ab;
}
.content {height: 400px;background-color: #52c41a;flex: 1;
}
.right {height: 400px;width: 200px;background-color: #f759ab;
}
.left,
.content,
.right {font-size: 70px;line-height: 400px;text-align: center;
}
.header {height: 100px;background-color: #70a1ff;
}
.footer {height: 100px;background-color: #ff7a45;
}
.header,
.footer {line-height: 100px;font-size: 52px;text-align: center;
}

公共的HTML如下:

<div class="main"><div class="header">header</div><div class="container"><div class="left">left</div><div class="content">content</div><div class="right">right</div></div><div class="footer">footer</div>
</div>
  1. 绝对定位的方式

通过绝对定位的方式实现Sticky Footer布局的步骤如下:

  • 设置最外层容器高度为100%;
  • 让子元素元素相对于容器元素进行定位,并设置容器元素最小高度为100%;
  • 在中间区域设置padding-bottom为footer的高度 ;
  • 底部栏绝对定位,并一直吸附在底部即可实现。

实现CSS代码如下:

/* 1. 设置最外层容器为100% */
html,
body {height: 100%;
}
/* 2. 让子元素元素相对于容器元素进行定位,并设置容器元素最小高度为100% */
.main {position: relative;min-height: 100%;
}
/* 3. 在中间区域设置 padding-bottom 为footer 的高度 */
.container {padding-bottom: 100px;
}
/* 由于开启了绝对定位,宽度成了自适应,设置为100% bottom:0 始终保持底部 */
.footer {position: absolute;width: 100%;bottom: 0;
}
  1. 使用calc函数实现

使用 calc 函数实现的方式会比较简单,中间的容器最少高度为视口宽度的100% - 头部和底部两部分的高度即可完成该功能。

实现CSS代码如下:

.container {/* 这里的 中间 部分的容器最少为视口宽度的 100% - 头部和底部两部分的高度即可完成该功能 */min-height: calc(100vh - 200px);
}
  1. Flex方案

实现步骤如下

  • 开启 flex 布局
  • 将子元素布局方向修改为垂直排列
  • 设置最小高度为当前视口,使不管中间部分有多高,始终都可以保持在底部
  • 设置中间部分容器高度为自适应

实现CSS代码如下:

.main {/* 开启flex布局 */display: flex;/* 将子元素布局方向修改为垂直排列 */flex-flow: column;/* 设置最小高度为当前视口,使不管中间部分有多高,始终都可以保持在底部 */min-height: 100vh;
}
.container {/* 设置 中间 部分自适应 */flex: 1;
}
  1. Grid方案

实现步骤如下

  • 开启 grid 布局
  • 置最小高度为当前视口,使不管中间部分有多高,始终都可以保持在底部

实现CSS代码如下:

.main {/* 开启grid布局 */display: grid;grid-template-rows: auto 1fr auto;/* 设置最小高度为当前视口,使不管中间部分有多高,始终都可以保持在底部 */min-height: 100vh;
}

全屏布局

全部布局主要应用在后台,主要效果如下所示:
在这里插入图片描述
这里介绍三种全屏布局的实现方法。

公共的CSS代码如下:

body {margin: 0;
}
body,
html,
.container {height: 100vh;box-sizing: border-box;text-align: center;overflow: hidden;
}
.content {background-color: #52c41a;/* * 中间部门的布局可以参考 两列 三列 布局 */display: grid;grid-template-columns: auto 1fr;
}
.left {width: 240px;background-color: #52c41a;font-size: 80px;line-height: calc(100vh - 200px);
}
.right {background-color: #f759ab;font-size: 60px;
}
.header {height: 100px;background-color: #70a1ff;
}
.footer {height: 100px;background-color: #ff7a45;
}
.header,
.footer {line-height: 100px;font-size: 52px;
}

HTML结构如下:

<div class="container"><div class="header">header</div><div class="content"><div class="left">导航</div><div class="right"><div class="right-in">自适应,超出高度出现滚动条</div></div></div><div class="footer">footer</div>
</div>
  1. 使用calc函数实现

实现步骤如下:

  • 通过 calc 函数计算出中间容器的高度。
  • 中间出现滚动条的容器设置overflow: auto即出现滚动条的时候出现滚动条。

实现CSS代码如下:

.content {overflow: hidden;/* 通过 calc 计算容器的高度 */height: calc(100vh - 200px);
}
.left {height: 100%;
}
.right {/* 如果超出出现滚动条 */overflow: auto;height: 100%;
}
.right-in {/* 假设容器内有500px的元素 */height: 500px;
}
  1. Flex 方案

使用 Flex 方式实现该布局比较简单。

实现CSS代码如下

.container {/* 开启flex布局 */display: flex;/* 将子元素布局方向修改为垂直排列 */flex-flow: column;
}
.content {/* 如果超出出现滚动条 */overflow: auto;/* 设置 中间 部分自适应 */flex: 1;
}
.right-in {/* 假设容器内有500px的元素 */height: 500px;
}
  1. Grid 方案

grid布局对于这种布局来说,实现起来是非常得心应手的,通过template属性即可实现。

实现CSS代码如下

.container {/* 开启grid布局 */display: grid;grid-template-rows: auto 1fr auto;
}
.content {/* 如果超出出现滚动条 */overflow: auto;
}
.right-in {/* 假设容器内有500px的元素 */height: 500px;
}

相关文章:

建议收藏!总结了 42 种前端常用布局方案

对 CSS 布局掌握程度决定你在Web开发中的开发页面速度。随着Web技术的不断革新&#xff0c;实现各种布局的方式已经多得数不胜数了。 本篇文章总结了四十二种CSS的常见布局&#xff0c;这四十二种布局可以细分为如下几类&#xff1a; 水平居中垂直居中水平垂直居中两列布局三…...

spring AOP两种动态代理

本文开始 1.什么是动态代理&#xff1f; 动态代理&#xff1a;本来是通过直接访问目标对象的&#xff0c;但是找个代理对象替你进行访问目标对象&#xff0c;这就是动态代理过程&#xff1b; 例如&#xff1a;买饭作为目标对象&#xff0c;自己不想亲自跑腿&#xff0c;就点个…...

英语——副词

副词是指在句子中表示行为或状态特征的词,常用来修饰动词、形容词、其他副词或者句子等,表示时间、地点、方式和程度等,在句子中作状语。 第一节 副词的基本形式 一、副词的构成 1.许多副词都是由形容词变化而来。 (1)大部分副词由相应形容词直接加-ly构成。quick→q…...

Vue 本地应用 记事本 v-on v-model v-for使用

新增功能 vue当中如何生成列表结构&#xff1f;使用的指令是v-for&#xff0c;同时要有一个可以生成列表的数据&#xff0c;常用的是数组。记事本里面的内容并不复杂&#xff0c;所以这里使用字符串数组就行了。 获取用户输入的内容使用绑定v-model&#xff0c;双向数据绑定&a…...

智能质检技术的核心环节:语音识别和自然语言处理

随着呼叫中心行业的快速发展和客户服务需求的不断提高&#xff0c;越来越多的企业开始采用智能质检技术&#xff0c;以提高呼叫中心的质量和效率。而在智能质检技术中&#xff0c;语音识别和自然语言处理是其核心环节&#xff0c;对于提高质检的准确性和效率具有重要作用。 语音…...

Python 中的值传递 和 引用传递

在 Python 当中的函数调用当中&#xff0c; numpy 和 torch.tensor 都 是按照 引用传递 传到函数里面的&#xff0c;也就是说 修改 传入函数的 形参&#xff0c;也会导致 未传入之前的形参 发生 变化。 position 是一个 tensor; 下面这段代码第一行&#xff0c;如果在函数里面…...

【雕爷学编程】Arduino动手做(200)---WS2812B幻彩LED灯带6

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…...

ChatGPT在工作中的七种用途

1. 用 ChatGPT 替代谷歌搜索引擎 工作时&#xff0c;你一天会访问几次搜索引擎&#xff1f;有了 ChatGPT&#xff0c;使用搜索引擎的频率可能大大下降。 据报道&#xff0c;谷歌这样的搜索引擎巨头&#xff0c;实际上很担心用户最终会把自己的搜索工具换成 ChatGPT。该公司针对…...

redis 持久化 与 键淘汰策略

redis运维核心&#xff1a; aof日志(全持久化 增量) 、 rdb(半持久化/全量备份) 、 键淘汰策略 、 高可用 1、Redis是基于内存的&#xff0c;一旦Redis重启/退出/故障&#xff0c;内存的数据将会全部丢失。故而有了持久化。 2、持久化&#xff1a;将内存中的数据存于磁盘中&am…...

PyCharm新手入门指南

安装好Pycharm后&#xff0c;就可以开始编写第一个函数&#xff1a;Hello World啦~我们就先来学习一些基本的操作&#xff0c;主要包含新建Python文件&#xff0c;运行代码&#xff0c;查看结果等等。 文章主要包含五个部分&#xff1a; 一、界面介绍 主要分为菜单栏、项目目录…...

【图像去噪】基于混合自适应(EM 自适应)实现自适应图像去噪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

[保研/考研机试] KY102 计算表达式 上海交通大学复试上机题 C++实现

描述 对于一个不存在括号的表达式进行计算 输入描述&#xff1a; 存在多组数据&#xff0c;每组数据一行&#xff0c;表达式不存在空格 输出描述&#xff1a; 输出结果 示例1 输入&#xff1a; 6/233*4输出&#xff1a; 18思路&#xff1a; ①设立运算符和运算数两个…...

源码解析Collections.sort ——从一个逃过单测的 bug 说起

本文从一个小明写的bug 开始&#xff0c;讲bug的发现、排查定位&#xff0c;并由此展开对涉及的算法进行图解分析和源码分析。 事情挺曲折的&#xff0c;因为小明的代码是有单测的&#xff0c;让小明更加笃定自己写的没问题。所以在排查的时候&#xff0c;也经历了前世的500年…...

一周 AIGC 丨苹果下架多款 AIGC 应用,阿里云开源通义千问 70 亿参数模型

多个 AIGC 应用在苹果应用商店下架&#xff0c;包含数据采集和使用不够规范等问题。阿里云开源通义千问 70 亿参数模型&#xff0c;包括通用模型 Qwen-7 B 和对话模型 Qwen-7 B-Chat。腾讯混元大模型开始应用内测&#xff0c;内部多个业务线接入测试。百度智能云“千帆大模型平…...

tomcat虚拟主机配置演示

一.新建用于显示的index.jsp文件&#xff0c;写入内容 二.修改tomcat/apache-tomcat-8.5.70/conf/server.xml配置文件 匹配到Host那部分&#xff0c;按上面格式在后面添加自己的域名和文件目录信息 主要是修改name和docBase 保存退出重启tomcat&#xff0c;确保tomcat运行…...

Nacos基本应用

Nacos 基本应用 Nacos 提供了 SDK 和 OpenAPI 方式来完成服务注册与发现等操作&#xff0c;SDK 实际上是对于 http 请求的封装。 微服务架构的电子商务平台&#xff0c;其中包含订单服务、商品服务和用户服务。可以使用 Nacos 作为服务注册和发现的中心&#xff0c;以便各个微…...

UML的类图规则

public:号 private:-号 protected:#号类图多重关系&#xff1a; 泛化关系&#xff1a; 概念&#xff1a;也就是继承关系。表示方式&#xff1a;用带空心三角形的直线来表示。例子&#xff1a;动物和猫&#xff0c;人和老师关联关系&#xff1a; 概念&#xff1a;用于表示一类对…...

uniapp实现微信小程序长按二维码扫码加群或好友

<template><view><view class"tit">欢迎扫码加入</view><image show-menu-by-longpress"true" src"/static/img/qrcode/1.jpg" class"btn-icon" click"previewImage"></image></vie…...

轮转数组(每日一题)

“路虽远&#xff0c;行则将至” ❤️主页&#xff1a;小赛毛 ☕今日份刷题&#xff1a;轮转数组 题目链接&#xff1a;轮转数组 题目描述&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例1&#xff1a; 输入…...

jmeter使用步骤

jmeter 使用步骤 1&#xff0c;进入jmeter目录中的bin目录&#xff0c;双击jmeter.bat 打开 2&#xff0c;右键test plan 创建线程组 3&#xff0c;配置线程组参数 4&#xff0c;右键刚刚创建的线程组&#xff0c;创建请求&#xff0c;填写请求地址 5&#xff0c;需要携带to…...

Ts中泛型的理解与使用

一、什么是泛型 在定义函数&#xff0c;定义接口或定义class类的时候&#xff0c;不先规定其类型&#xff0c;在使用的时候进行定义类型。 二、使用 1、定义函数&#xff1a; // 函数类型 function AA<T>(arg:T):T{return arg } AA<number>(1) AA<string>…...

uniapp使用eatchs雷达图

引入插件 <template><view class"page"><view class"AllBox"><view class"topTit">标题</view><view class"leftTit">对比分析</view><view class"tableBox"><view cl…...

PostgreSQL jsonb

PostgreSQL jsonb jsonb 函数以及操作符 在PostgreSQL中&#xff0c;有许多用于处理JSONB数据类型的内置函数和操作符。下面列出了一些常用的JSONB函数和操作符&#xff1a; jsonb_pretty(jsonb) 该函数将JSONB数据格式化为易读的多行字符串。jsonb_typeof(jsonb) 该函数返回…...

Spring系列四:AOP切面编程

文章目录 &#x1f497;AOP-官方文档&#x1f35d;AOP 讲解&#x1f35d;AOP APIs &#x1f497;动态代理&#x1f35d;初始动态代理&#x1f35d;动态代理深入&#x1f35d;AOP问题提出&#x1f4d7;使用土方法解决&#x1f4d7; 对土方法解耦-开发最简单的AOP类&#x1f4d7;…...

VS+Qt+C++旅游景区地图导航源码实例

程序示例精选 VSQtC旅游景区地图导航 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQtC旅游景区地图导航>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。…...

回调函数和一般函数的区别

回调函数&#xff1a;不是我能控制的&#xff0c;通过外界信号触发调用&#xff0c;例如下面是chatter 一般函数&#xff1a;我能控制的&#xff0c;顺序调用...

使用vite创建Vue/React前端项目,配置@别名和Sass样式,又快又方便

Vite官方网站&#xff1a;Vite | 下一代的前端工具链 Vite 并不是基于 Webpack 的&#xff0c;它有自己的开发服务器&#xff0c;利用浏览器中的原生 ES 模块。这种架构使得 Vite 比 Webpack 的开发服务器快了好几个数量级。Vite 采用 Rollup 进行构建&#xff0c;速度也更快…...

从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树

目录 从前序与中序遍历序列构造二叉树从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树 题目链接 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返…...

【JS常见数据结构】

JS数据结构 前言数组JavaScript 中数组的常见操作&#xff1a;1. 创建数组&#xff1a;2. 访问数组元素&#xff1a;3. 插入元素&#xff1a;4. 删除元素&#xff1a;5. 查询元素&#xff1a; 链表单向链表双向链表循环链表 栈队列树二叉树示例 图图的定义图的分类图的表示方法…...

算法基础之插入排序

1、插入排序基本思想 插入排序的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用in-place排序&#xff08;即只需用到O(1)的额外空间的排序&#xff09;&a…...