浅谈HTML几种布局方式

3 篇文章 0 订阅
订阅专栏

布局是前端比较基础但是也很重要的部分,过去传统的布局方案一般是通过基于盒子模型:
在这里插入图片描述
然后配合display、position或float等属性进行布局。这种布局方式使用和理解起来是相对简单,但是我认为布局更复杂的布局场景和维护起来会比较困难。
本文总结几种布局方式供参考:Flex 弹性布局、Grid网格布局和多列布局。没有适用所有场景的布局,只有合适的布局,在实际应用中多种布局方式灵活使用才能达到更好的效果。

1. Flex弹性布局

概念

Flex布局指弹性布局,是一种一维的布局方式,提供了对子元素的空间分布控制和对齐能力,为盒装模型提供了最大的灵活性。

任何一个容器都可以指定为flex布局

.box{
	display: flex;
}

行内flex容器

.box{
	display: inline-flex;
}

设置了flex布局后,元素的子元素的float、clear和vertical-align属性都将失效,使用了flex布局的元素即为flex容器,他的子元素自动成为容器成员。

flex容器存在两根主轴,主轴(main axis)和垂直交叉轴(cross axis)。
主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

容器属性

flex-direction

该属性决定主轴的方向,该属性取值为:

  • row(默认值):主轴为水平方向,起点在左端。
    在这里插入图片描述
  • row-reverse:主轴为水平方向,起点在右端。
    在这里插入图片描述
  • column:主轴为垂直方向,起点在上沿。
    在这里插入图片描述
  • column-reverse:主轴为垂直方向,起点在下沿。
    在这里插入图片描述
flex-wrap

该属性表示如果轴线排不下该如何换行。取值为:

  • nowrap 不换行,全部挤在一行
    在这里插入图片描述
  • wrap 换行,第一行在上面
    在这里插入图片描述
  • wrap-reverse 换行,第一行在下面
    在这里插入图片描述
flex-flow

该属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

.box{
	display: flex;
	flex-flow: row nowrap;
}
justify-content

该属性定义了项目在主轴上的对齐方式。取值为:

  • flex-start(默认值):左对齐
    在这里插入图片描述
  • flex-end:右对齐
    在这里插入图片描述
  • center: 居中
    在这里插入图片描述
  • space-between:两端对齐,项目之间的间隔都相等。
    在这里插入图片描述
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
    在这里插入图片描述
align-items

该属性定义项目在交叉轴上如何对齐。取值为:

  • flex-start:交叉轴的起点对齐。
    在这里插入图片描述
  • flex-end:交叉轴的终点对齐。
    在这里插入图片描述
  • center:交叉轴的中点对齐。
    在这里插入图片描述
  • baseline: 项目的第一行文字的基线对齐。
    在这里插入图片描述
  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
    在这里插入图片描述
align-content

该属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。取值为:

  • flex-start:与交叉轴的起点对齐。
    在这里插入图片描述
  • flex-end:与交叉轴的终点对齐。
    在这里插入图片描述
  • center:与交叉轴的中点对齐。
    在这里插入图片描述
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
    在这里插入图片描述
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
    在这里插入图片描述
  • stretch(默认值):轴线占满整个交叉轴。
    在这里插入图片描述

容器子元素的属性

order

属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

flex-grow

属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
在这里插入图片描述

flex-shrink

属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

负值对该属性无效。
在这里插入图片描述

flex-basis

属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
在这里插入图片描述

flex

flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

align-self

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

2. Grid布局

Grid网格布局,是一种很强大的布局方式,它将容器划分为一个一个网格,网格布局于Flex布局有一定相似性,都可以指定容器内元素的位置,但flex布局只能指定元素在轴线上的位置,而网格布局则是将容器划分位了,看起来flex布局像是一维布局,而网格布局为二维布局。

概念

  • 采用网格布局的元素,称为容器。网格布局容器内部的元素为子元素。
  • 容器内水平区域为行,垂直区域为列
  • 行和列交叉区域称之为单元格,n行m列会产生n*m个单元格
  • 划分网格的线,称为网格线

容器属性

网格布局是通过设置容器属性和子元素属性完成。

display: grid | inline-grid

容器可以设置为块级网格布局grid,也可以设置为行级网格布局inline-grid

注意:
当元素设置为网格布局的容器时,容器子元素的float、display:inline-block、display:table-cell、vertical-align等属性全部失效

grid-template-columns / grid-template-rows

这两个属性表示将网格容器划分行列,并定义行列宽高值。

.container{
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 100px 100px;
}

在这里插入图片描述
同时这两个属性也可以使用百分比表示

  .container{
    display: grid;
    grid-template-columns: 25% 25% 25% 25%;
    grid-template-rows: 25% 25% 25% 25%;
  }

在这里插入图片描述

repeat() 方法

可以使用repeat() 函数简化重复值的配置

  .container{
    display: grid;
    grid-template-columns: repeat(4, 25%);
    grid-template-rows: repeat(4, 25%);
  }

repeat()函数参数第一个参数为数字,表示重复几次,第二个是重复的值。同时repeat()函数也可以重复多个值

.container{
  display: grid;
  grid-template-columns: repeat(2, 100px 200px);
  grid-template-rows: repeat(2, 100px 200px);
} 

在这里插入图片描述

auto-fill关键字

有时单元格的大小是固定的,但容器的大小是变化的, 如果希望一行能尽量多的容纳单元格,可以使用auto-fill关键字

.container{
  display: grid;
  grid-template-columns: repeat(auto-fill, 200px);
}

在这里插入图片描述

fr关键字

fr关键字表示了容器内子元素的比例关系,例如1fr表示2fr的一半

.container{
  display: grid;
  grid-template-columns: 1fr 2fr;
}

在这里插入图片描述

fr关键字还可以配合绝对长度使用

.container{
  display: grid;
  grid-template-columns: 100px 1fr 1fr;
}

在这里插入图片描述

minmax()函数

minmax()函数产生一个长度范围,接收两个参数,最大值和最小值。

.container{
  display: grid;
  grid-template-columns: 200px 200px minmax(200px, 500px);
}

在这里插入图片描述

表示第三列子元素的宽度都会随着容器进行变化,范围是200-500px

auto关键字

auto关键字表示浏览器自动调整长度,与使用了minmax()函数的区别就是没有设定的最大最小值。

.container{
  display: grid;
  grid-template-columns: 200px auto 200px;
}

在这里插入图片描述

row-gap / column-gap / gap

这三个属性表示单元格之间的间距,row-gap是行间距,column-gap是列间距,gap是行列间距,相当于两个属性合并。

.container{
  display: grid;
  grid-template-columns: 200px 200px 200px;
  row-gap: 20px;
  column-gap: 20px;
}

等同于

.container{
  display: grid;
  grid-template-columns: 200px 200px 200px;
  gap: 20px 20px;
}

在这里插入图片描述

这三个属性原本是多列布局(Multi-column Layout)特有的属性,在新的标准中这三个属性同时被多列布局(Multi-column Layout)、弹性盒布局(Flexible Box)和网格布局(Grid Layout)中使用。
但在不支持这三个属性的浏览器上,还需要加上前缀grip-,例:grip-row-gap / grip-column-gap / grip-gap

grid-template-areas

该属性主要是将网格布局分区,一个区域可以由一个或多个单元格组成。

.container{
  display: grid;
  grid-template-columns: 200px 200px 200px;
  grid-template-areas: 'a b c'
                       'd e f'
                       'g h i';
}

以上就是把布局分成九个区域。相同的区域名称表示合并分区:

.container{
  height: 500px;
  display: grid;
  grid-template-areas: "head head"
                       "nav  main"
                       "nav  foot"; /* 区域划分 当前为 三行 两列 */
  grid-template-rows: 80px 1fr 100px; /* 各区域 宽高设置 */
  grid-template-columns: 150px 1fr; 
}
.item{
  text-align: center;
  line-height: 100px;
  border: 1px solid white;
}
.block1 {
  grid-area: head;
  background: #f44336;
}
.block2 {
  grid-area: nav;
  background: #9c27b0;
}
.block3 {
  grid-area: main;
  background: #2196f3;
}
.block4 {
  grid-area: foot;
  background: #00bcd4;
}

<div class="container">
  <div class="item block1">子元素1</div>
  <div class="item block2">子元素2</div>
  <div class="item block3">子元素3</div>
  <div class="item block4">子元素4</div>
</div>

在这里插入图片描述

grid-auto-flow

划分网格后,子元素会按照顺序,自动放置在网格中,默认是先行后列。该属性由grid-auto-flow控制,默认值row,即表示先行后列排序。取值为Column表示先列后行。

.container{
  display: grid;
  grid-template-columns: 200px 200px 200px;
  grid-template-rows: 200px 200px 200px;
  grid-auto-flow: column;
}

在这里插入图片描述

grid-auto-flow取值还可以是row dense和column dense。这两个值主要是在行列顺序上,尽量保证填充空白,例如:

.container{
  display: grid;
  grid-template-columns: 200px 200px 200px;
  grid-template-rows: 200px 200px 200px;
  grid-auto-flow: row;
}
.item{
  text-align: center;
  line-height: 100px;
  border: 1px solid white;
}
.block1 {
  grid-column-start: 1;
  grid-column-end: 3;
  background: #f44336;
}
.block2 {
  grid-column-start: 1;
  grid-column-end: 3;
  background: #9c27b0;
}
.block3 {
  background: #2196f3;
}
.block4 {
  background: #00bcd4;
}
...

<div class="container">
  <div class="item block1">子元素1</div>
  <div class="item block2">子元素2</div>
  <div class="item block3">子元素3</div>
  <div class="item block4">子元素4</div>
  <div class="item block5">子元素5</div>
  <div class="item block6">子元素6</div>
  <div class="item block7">子元素7</div>
  <div class="item block8">子元素8</div>
  <div class="item block9">子元素9</div>
</div>

会出现下面情况:
在这里插入图片描述

由于子元素1和子元素2都占用了两个单元格,而当前容器布局只有三个单元格,所以元素2被挤到第二行,导致第一行出现了一个空白单元格。此时容器使用grid-auto-flow: row dense既可以尽量铺满每一行:

.container{
  display: grid;
  grid-template-columns: 200px 200px 200px;
  grid-template-rows: 200px 200px 200px;
  grid-auto-flow: row dense;
}

在这里插入图片描述

justify-items / align-items / place-items

justify-items属性设置单元格内容即子元素的水平位置(左中右),align-items属性设置单元格内容的垂直位置(上中下),这两个属性取值为:

start: 单元格左(justify-items)/上(align-items)边缘对齐
end: 单元格右(justify-items)/下(align-items)边缘对齐
center: 居中
stretch: 拉伸充满单元格(默认)

而place-items则是前两个属性的组合属性,语法是place-items: <align-items> <justify-items>

例:justify-items: start;
在这里插入图片描述

justify-content / align-content / place-content

这三个属性是设置网格布局的整个内容曲在容器内的位置,justify-content设置水平位置,align-content设置垂直位置。place-content则为前两个属性的组合形式。取值为:

start:容器起始边框对齐
end:容器的终止边框对齐
center:容器内部居中
stretch:如果子元素的大小没有指定,则拉伸满整个容器(默认)
space-around:子元素之间的距离相等,两个子元素之间的距离比子元素距容器边框的距离大一倍
space-between: 子元素之间距离相等,但是子元素与容器边框没有距离
space-evenly: 子元素之间的距离相等,且子元素与容器边框的距离等于子元素之间的距离

例:justify-content: space-around;
在这里插入图片描述

grid-auto-columns / grid-auto-rows

有时子元素可能会设置在网格的外部,浏览器会生成多余的网格放置多余的元素。可以使用这两个元素设置多余的子元素的宽和高。

.container{
  display: grid;
  grid-template-columns: repeat(3, 100px);
  grid-template-rows: repeat(3, 100px);
  grid-auto-rows: 50px;
}

在这里插入图片描述

子元素属性

grid-column-start / grid-column-end / grid-row-start / grid-row-end

子元素通过这四个属性可以指定位置,方法就是指定子元素的四个边框,分别在哪个网格线上。

grid-column-start:左边框所在的垂直网格线
grid-column-end:右边框所在的垂直网格线
grid-row-start:上边框所在的水平网格线
grid-row-end:下边框所在的水平网格线

例:

.block1 {
  grid-column-start: 2;
  background: #f44336;
}

在这里插入图片描述

这四个属性还可以使用span关键字,表示跨越几个单元格,例:

.block1 {
  grid-column-start: span 2;
  background: #f44336;
}

在这里插入图片描述

grid-area

该属性表示项目放置在哪一个区域下,名称的取值在容器定义了grid-template-areas属性中。

grid-area的取值还可以是grid-row-start、grid-column-start、grid-row-end、grid-column-end的合并简写形式:

.block{
	grid-area: <row-start> / <column-start> / <row-end> / <column-end>;
}
justify-self / align-self / place-self

justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,但只作用于单个项目。

align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目。

place-self则是前两个属性的合并简写形式

3. 多列布局(Multi-column Layout)

多列布局就像他的名字一样,是css3提供的一种多列组织内容的方式,就是类似报纸杂志类似的排榜方式。

多列局部不像Flex布局或网格布局那样,会直接更改子元素的显示属性。例如当容器被定义为网格容器后,该容器的子元素都会变成网格项(grid-item),而会被按规则放置到网格单元格中。而在多列布局中的子元素按照正常的布局放置,会按照顺序被排成多列,而这些子元素可以灵活的设置大小。

容器属性

column-width / column-count / columns

使用属性 colum-widthcolumn-count 定义的容器即为一个多列的容器。

其中column-count表示明确的将容器划分为几列的属性,而子元素会按顺序排列流入容器中。列宽是根据容器的可用宽度而变化。

.container {
  column-count: 3;
}

在这里插入图片描述

colum-width表示设置列的最小宽度,不代表实际宽度,而实际宽度还是以容器可用控件决定,浏览器会根据指定的宽度创建更多的列,而剩余的空件就会被现有的列平分。

.container {
  column-width: 300px;
}

在这里插入图片描述

columns相当于column-width 和 column-count两种的组合属性,但该属性也可设置单独的属性,例:

.container { columns: 2 }
.container { columns: 200px }
.container { columns: 2 200px }
column-rule / column-rule-color /column-rule-style / column-rule-width

这几个属性控制每一个列之间的分割线的样式。而column-rule 则是后三种属性的组合属性。例:

.container {
  columns: 3 300px;
  column-rule: 4px dotted rgb(79, 185, 227);
}

在这里插入图片描述

column-gap

column-gap属性控制的是每个列之间的间距,该值可取像素值或百分比,也可以取值为normal(默认),多列布局中normal表示为1em

column-span

column-span属性用来定义子元素是否跨列,该属性取值为 noneall,例:

.container {
  columns: 3 300px;
  column-rule: 4px dotted rgb(79, 185, 227);
}
.block1 {
  background: #f44336;
  column-span: all;
}

<div class="container">
  <h1>多列示例</h1>
  <div class="item block1">子元素1</div>
  <div class="item block2">子元素2</div>
  <div class="item block3">子元素3</div>
  <div class="item block4">子元素4</div>
</div>

在这里插入图片描述

HTML DIV布局实例
qq_40596594的博客
05-05 7371
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Div首页布局</title> <style type="text/css"> *{ margin: 0; padding: 0;...
HTML 布局几种方式
weixin_30843605的博客
05-24 204
1.浮动 2.定位 3.分栏布局   column-count:auto | 整数;---控制栏数   column-width: auto | length;---每栏的宽度 column-gap : length ;---两栏之间的间距 column-rule : 宽度,线型,颜色;---栏与栏的间隔线 类似border,solid | dotted |...
html页面布局
墨城烟柳ベ旧人殇的博客
04-12 6720
本文主要是用HTML语言实现页面布局
html + css 布局技巧总结 ——单列布局(3),2024年最新Web前端性能优化面试
最新发布
2401_84138890的博客
04-21 510
从转行到现在,差不多两年的时间,虽不能和大佬相比,但也是学了很多东西。我个人在学习的过程中,习惯简单做做笔记,方便自己复习的时候能够快速理解,现在将自己的笔记分享出来,和大家共同学习。个人将这段时间所学的知识,分为三个阶段:第一阶段:HTML&CSS&JavaScript基础第二阶段:移动端开发技术第三阶段:前端常用框架推荐学习方式:针对某个知识点,可以先简单过一下我的笔记,如果理解,那是最好,可以帮助快速解决问题;如果因为我的笔记太过简陋不理解,可以关注我以后我还会继续分享。
html5 权威指南】知识小结 II
jiangyaoyujian的博客
03-16 174
html5 权威指南》知识小结 II 第三部分 CSS css3盒模型 ch20 使用盒模型 1 内边距 padding 内边距属性 padding-top padding-right padding-bottom padding-left padding 2 外边距 外边距属性 margin-top margin-right margin-bottom margin-left ma...
HTML布局HTML Layout)简介
cnds123的专栏
09-17 7132
HTML布局HTML Layout)是创建一个网站时需要考虑的情况,合理设计网页中内容的排列方式,让网页看起来更加合理、美观,能产生引人注目的视觉效果。
div css布局html实例6,6个div+css页面布局入门教程和使用实例总结
weixin_35765686的博客
06-15 915
DIV+CSS是WEB设计标准,它是一种网页的布局方法,它可以实现网页页面内容与表现相分离,在Web开发中,DIV+CSS布局页面也是各种各样网页的样式表现元素之一,那么如何实现div+css页面布局呢?今天就给大家来总结下关于div+css页面布局!div+css入门教程:在网页制作中,有许多的术语,例如:CSSHTML、DHTML、XHTML等等。在下面的文章中我们将会用到一些有关于HTML...
浅谈css网页的几种布局
01-19
2018年已经过了一周,总结一下2017年在公司wiki上写的一篇关于css布局的知识,当时也借鉴了几个大神写的css布局知识,和自己在项目中遇到的坑。废话不多说。请看以下的干货。 1、左边固定,右边自适应布局的两种实现...
浅谈html5 响应式布局
01-21
一、什么是响应式布局?  响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。  这个概念是为解决移动互联网浏览而诞生的。...
浅谈PROFIBUS控制系统配置的几种形式
01-20
PROFIBUS,是一种国际化。开放式。不依赖于设备生产商的现场总线标准。PROFIBUS传送速度可在 9.6kbaud~12Mbaud范围内选择且当总线系统启动时,所有连接到总线上的装置应该被设成相同的速度。广泛适用于制造业自动化...
网站开发之DIV+CSS简单布局网站入门篇(五)
杨秀璋的专栏
11-08 1万+
这篇文章主要介绍如何使用DIV和CSS简单布局一个网站的首页,通常将网站划分为顶部(Logo、导航条)、中部(页面主要内容、左右栏目)、底部(制作方介绍、超链接)。这是非常基础的一篇引入性文章,采用案例的方式进行介绍的,希望对你有所帮助。运行结果如下图所示:main.html主页面代码:主要通过div进行布局的,同时用户设置导航条,鼠标悬停时背景颜色切换。css/main.css代码:该部分代码主
html 布局小例子(div)
hjjdebug的专栏
07-17 705
div 区块布局, 由htmlcss 共同确定布局,其中html 确定了包含关系,css中定义了寬高. 小例子,我们直接上代码, 还可以慢慢把玩,供入门用. <!DOCTYPE html> <html> <head> <meta charset=utf-8> <style> /* 由htmlcss 共同设置布局 */ #container {width:600px;} /* 父级区块 */ ...
html布局
yyjnhs18s的博客
04-14 206
元素的换行是简单的布局方式,我们将元素简单分为块级元素和行内元素两种。行内元素(内联)并不会换行,无法改变行内元素的长a span块级元素和行内元素可以通过display相互转换。常用属性如下。
HTML盒子模型的布局
m0_72975897的博客
08-05 4977
**垂直和水平方布局**外边距重叠
前端学习之CSS---多列布局、响应式布局、网格布局
weixin_45258154的博客
06-12 682
瀑布流效果,网格线划分,响应式布局媒体查询
HTML基本布局结构
joker的博客
11-11 1156
html 元素之间的关系————血缘关系 父子关系 父元素 子元素 直接包含在元素内容 子孙关系 子元素 祖籍元素 隔多代的元素 兄弟关系 具有相同父元素 浏览器解析html元素顺序 从辈分高的,到辈分低的元素 相同辈分之间,从上往下解析 注意:在html元素中;所有【相对】的单位,都是 子元素相对父元素 <!-- ...
html表格布局方式有那几种,前端几种常见的布局方式
weixin_33420201的博客
06-10 1340
1.静态布局(固定宽高)2.弹性布局(flex)————常用3.圣杯布局flexflex-group、flex-shrink、flex-basisflex:auto/none/负数/一个长度或百分比/两个非负数/一个非负数和一个长度或百分比等A,flex-group:当父元素有剩余空间时,子元素占据剩余空间的量B,flex-shrink:当父元素的空间不足以展示所有的子元素,父元素没设置flex...
常见的几种页面内容布局方式
热门推荐
wang839305939的博客
07-27 6万+
常见的页面布局,左右自适应布局
HTML布局
时光的博客
06-10 8331
HTML网页布局常用的是:div和table元素。1、使用div元素的网页布局示例:&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;使用div元素的网页布局&lt;/title&gt; &lt;/head&gt; &lt;body&
py opencv几种拷贝方式
11-10
在使用Python和OpenCV进行图像处理时,有几种常见的拷贝方式。下面是其中的三种: 1.浅拷贝: 浅拷贝是最简单的一种拷贝方式,它创建了原始图像的一个新的引用,但是不复制图像数据本身。换句话说,它只是创建了一个指向原始数据的新指针。因此,对浅拷贝所创建的图像进行修改会影响到原始图像。可以使用OpenCV函数`cv2.copy()`进行浅拷贝。 2.深拷贝: 深拷贝是在内存中创建原始图像数据的一个完全独立的副本。这种方式复制了原始数据并分配了新的内存空间,因此对深拷贝所创建的图像进行修改不会影响到原始图像。可以使用OpenCV函数`cv2.copyTo()`进行深拷贝。 3.ROI拷贝: ROI(Region of Interest)拷贝是一种通过选择感兴趣区域来拷贝图像的方式。这种方式是非常高效的,因为它只需要复制所选择区域的数据,而不是整个图像数据。可以使用OpenCV的ROI操作来实现。使用`cv2.setRoi()`将感兴趣区域设置为图像的一个子集,然后使用`cv2.copyTo()`函数进行拷贝。 选择使用哪种拷贝方式取决于具体的需求。如果需要在拷贝后的图像上进行修改,可以使用浅拷贝。如果需要对拷贝后的图像进行独立的操作,不影响原始图像,可以使用深拷贝。如果只需要对某个区域进行操作,可以使用ROI拷贝来提高效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • MAC实用SSH连接远程服务器,并实现文件上传下载 51769
  • 理解JavaScript基本数据类型symbol 15344
  • 如何获取js异步请求返回值 9512
  • Linux中Nginx编译安装、卸载并添加到service中 9394
  • 浅谈HTML几种布局方式 9337

分类专栏

  • 微信小游戏 1篇
  • java 17篇
  • maven
  • javaee 1篇
  • 架构设计 11篇
  • typescript 3篇
  • angularjs
  • css 3篇
  • 实用散知识 15篇
  • react 4篇
  • javascript 8篇

最新评论

  • 理解JavaScript基本数据类型symbol

    xiu张.: 基本数据类型不是有6个吗

  • css中em和rem的使用

    前端交互仔: 大佬

  • 理解JavaScript基本数据类型symbol

    ungame: 查了几个资料,你这个我看懂了

  • 浅谈HTML几种布局方式

    〆懒羊羊、: 谁记得住这么多呀,铁汁

  • kudu可视化管理工具与kudu基础知识

    m0_37250105: 大哥 不好用呀 点什么都没反应呀

大家在看

  • JavaScript ES6 新特性探索:Proxy 解锁编程新境界 1812

最新文章

  • ECMAScript中平等比较标准,区分 == 和 ===
  • 理解JavaScript基本数据类型symbol
  • 简述浏览器渲染原理
2020年13篇
2019年4篇
2018年14篇
2017年21篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司安庆seo公司临猗设计公司网站报价南阳百度关键词包年推广价格淄博网站开发龙岩网站搭建惠州SEO按天计费报价泉州至尊标王推荐桐城外贸网站建设哪家好湖州外贸网站建设朔州百度网站优化排名多少钱天水SEO按天计费多少钱宝安建网站佛山建设网站公司东营网站设计模板报价长沙外贸网站制作推荐安康百度竞价哪家好舟山网站搜索优化推荐南昌如何制作网站价格徐州网站优化按天扣费公司固原模板网站建设哪家好淮北优秀网站设计多少钱晋中建站多少钱眉山网络推广推荐宝安网站开发多少钱十堰网站推广工具哪家好盐田关键词按天扣费价格娄底百度竞价公司连云港外贸网站设计报价宿迁网络广告推广多少钱抚顺百度网站优化排名公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化