粉丝34.3万获赞532.0万

万事开头难,迈出了一步,后面的脚印才会更清晰。本设计 fkj 采用置顶向下的设计方法,展示了完整的设计功能和实现细节, 下面直接讲解干货,对顶层有问题或者功能有疑问或者设计细节有疑问的朋友可以留言一起讨论,大家共同进步。这里也有我们的联系方式,可以进行自然定制设计,欢迎大家交流讨论, 共同完成。是讲解啊,代码都在 sos 里面这里面,然后工程的话点开双击这里就给打开了,那打开之后,打开之后这里就能看, 看到哈,这里有代码,然后点进去就能看,然后这个带 tb 后缀的是反针啊,然后这里这个就顶层,然后整个设计是遵循那个交通灯红绿黄, 从昨晚有十字路口的交通灯,然后用的是字顶向下的设计方法,一共是分了三个模块,第一个模块的功能是分屏,第二个模块的功能是状态的控制,第三个模块的功能是 数码管的显示,那第一个模块的功能就是分屏嘛,因为这里根据系统实中要把这个频率分为一秒啊,因为交通灯是一秒为单位跳转的,然后这里是控制的状态,就是控制什么时候亮 东西方向的红绿环,什么时候亮南北方向的红绿环,然后通常会把倒计时给输出来,倒计时输出来之后会放到数码馆这里, 数码款这里会把通过动态扫描,动态扫描的原理吧,这两个时间 一层我们看到的显示的那个人也能看到数码管上显示的数据。那么先来讲第一个模块,分屏模块,分屏模块,这里是有个分屏系数啊,这个叫分屏系数,然后用的是那个记录器的原理啊,就是这个 ctrl 三,它不停的是在 累加的,按一的步进累加加到最大值的时候,他就会回到零,那么到最大值的时候就代表这里是一秒的话,这里会给出一个高电瓶,然后如果不是一秒的话,其他都保持零, 就是满一秒,这里会有个高电瓶,然后从这里输出来,这里输出来有什么用呢?然后就会来到顶层,这里一秒时间就来到这里,就会去到这个控制模 啊这里我们先把代码先编一下,编一把反针跑一下, 然后看一秒进来哈,一秒通过这里进来嘛?一秒计时器,一秒进来的话,这里是一秒钟计算,如果接收到这个高电瓶一秒的话,这里他就会 产生倒计时,简易吗?这里有三个时间给自己看,这个是红灯时间,绿灯时间,黄灯时间三十五秒,二十秒五秒啊,然后一开始这个是定义这个方向为 南北方向啊,下面对应的就是东西方向,他们两个是静态的啊,镜像的就是一秒的时候 给红灯时间三十五秒,三十五秒他就会通过这里倒计时啊,倒计时到什么时候呢?倒计时到零的时候啊,这里就来判断。一开始如果是零的话就是红灯,红灯亮完之后是要亮绿灯吗?绿灯的话就把绿灯 时间付给看腿一,然后看腿又开始倒计时,然后绿灯往减到零的时候,这里刚刚加一哈,又变成一了一的时候来判断这里, 然后因为前一个是绿灯,绿灯完了就黄灯闪烁提示嘛,黄灯提示完之后,然后就到红灯,这样依次的就形成了一个循环。但是如果你拿北方向定义的一开始是绿灯的话,东西方向一开始定义的就应该是红灯嘛,就应该是一号,这里 一的话就这里啊,就是红红灯时间完了之后他要进来嘛?进来这里, 我这里是红灯啊,这里拿东西方向以来给的是一,一的话就是绿灯啊,绿灯完了之后是黄灯嘛,所以这里 南北方向这里一来给的是零哈,零是零,是这个哈,零是这个,这个就是绿灯时间哈。 好,这里编辑成功了哈,编辑成功了这里那编辑成功,我们把反针打开看一下就可以了。 然后继续讲这边,这边就是一开始这里是绿灯嘛,绿黄,哦,红,绿黄。最左边是红灯嘛,红灯,红灯一代表亮啊,然后红灯后面是绿灯,绿灯后面是黄灯,作为一个过渡, 这里蹲着。就是如果他一开始是红灯的话,这边开始就是绿灯吗?就要把绿灯的话就是二这里啊, 第二个这里啊,绿灯倒计时完就是黄灯嘛,黄灯倒计时完就是红灯,红灯也就是对应着 南北方向的绿灯加黄灯的时间,就他红灯,这样就可以把时间算了。然后时间有了之后,这里是做了一个取时间的操作哈,看他一刚说完是南北方向的倒计时,看他二是东西方向的倒计时。 你看这里,对十取余就是取个位,那除十就是取十位。举个例子啊,就是拿十三进来的话,这里就是把三给取出来了,然后这里就把一取出来了,就把十三换成了 bcd 码 啊,下面也是一样的啊,这个就不讲,然后这个有了这个时间之后,他就会从这里输出来,这里输出来其实可以看这个图啊,这里有图,对着这个图来看就可以了啊。第二图这个图看的就比较清晰了,看这里有时间吗?时间对着就会给到这个一码模块,然后来看一下 这个一码模块,一码模块两个时间进来之后,他就会放在这里对应的数码馆的最低位啊, 然后次低位,然后次高位,最高位一共是四位,数码港分别四位, b、 c, 二进之数表示一个十进之数嘛,这里用的 b、 c、 d, 然后放到这里面,这里面会进行一个 e 码, 立马就来到这里,这里就可以把如果是数字零的话,就会把零给溢出来,就是从左到右一直是 a 段、 b 段、 c 段、 d 段,一段、七段,中间的 f 段不能看到的就是零。最后这个这一列是小数点,可以不用管 好这个就是一码。那这里还有一个动态扫描的过程,就是不停的在选这个,这个一是在不停的往左移的,去到最高位之后,他又回到了最低位,就是这个动态扫描好整个代码就 讲完哈,我们来看一下,反正啊,反正这里要按一下暂停啊,不然他会一直在跑,那这里没有时间哈,我们可以把一些我们想看的参数给大家讲,这里我们对应的模块嘛, 我们一共是这个是刚说完动态扫描的数码管,然后这个状态控制,我们主要看状态控制这个模块,然后把里面的这个 tm 一 tm 二加进了啊, 粘进来之后这里就能看到波形了啊,但是没有,没有数据啊,没有数据的话要复位一下, 每次加新变量键呢,都要复活一下,再点这个 ron, 然后再开运行,运行之后点暂停啊,数据就可以出来了, 这里就有数据哈,这里能看到啊,倒计时, 然后从三 四开始吗?三十五秒的话,零也算一秒吧,因为零这里零这里他也占了一秒,所以就零到三十四就正好是三十五秒,然后这里可以换成二进之出来看看 二技术。这里最左边的是红灯嘛,红绿黄红绿黄,这里亮红灯的时候这个通道就亮绿灯嘛,就从三十秒开始倒计时,二对二,一对一哈,像对应起来看二十。他到到零的时候啊, 这里啊,到到零的时候,绿灯后面就要切黄灯了吗?这里这里切黄灯,五秒四三二一黄,黄灯切完之后 那他就切到红灯嘛,切红灯的时候上面这个通道他就变成绿灯了嘛,然后绿灯到这里哈,这里是零,这里黄线,这里零的话,他上面这个通道他就切到黄灯闪烁 五秒,五秒提示,五秒提示之后又切到红灯,又重复刚刚的好,整个代码的反针和讲解就是这样的。 感谢收听,有问题可以留言与我们联系讨论, 且代码不易,点赞、收藏、支持一下,有其他想法或者建议也可以留言讨论,大家共同进步。感谢您的支持,谢谢。

哈喽,同学们,大家好,我是徐老师,今天呢给大家带来 b f c 的讲解。呃,那其实很多同学呢,对于 b f c 这个概念是比较陌生的 啊,甚至于说呢,你可能已经从事前端行业好几年了,但是你可能都不知道 b f c 它到底是个什么啊,但是这其实也很正常,因为 b f c 它是一个纯概念性的东西,就虽然你对 b f c 比较陌生, 但是我敢保证你们在工作中,项目中和练习中一直在使用 b f c 去帮助你们解决问题,也就说其实对于 b f c 的使用啊,你们是已经掌握了的,但是呢,只不过说你们自己没有意识到, 或者说你们根本就不清楚 b f c 的概念。那现在呢,我们就来重点来探讨一下这个 b f c 它到底是个什么东西?那么官方呢, 把他的名字称之为快捷格式上下文,然后呢,他官方的概念中是这样解释的,他说什么是一个叫快捷格式上下文呢?就他是页面中的一块渲染区域, 并且呢有一套属于自己的旋转规则,它决定了元素如何对齐啊,内容如何布局。 是这样的,当然了,官方的这个解释啊,还是他一如既往的那个调性,就还还是很官方,很晦涩难懂。那下面呢,我们来给 b f c 做一个总结,那他到底是个什么呢?好, 我们把它总结为 b f c 其实就是一个独立的布局环境,那 b f c 里面的元素呢?跟外面的元素互不影响,就是你可以把它理解为 b f c 其实就是个块儿,就是个盒子,那这盒子里 里边怎么布局,怎么写,你翻江倒海也好,跟外面是一点关系都没有的,互不影响就相当于,哎,我在页面中呢,给你开了这样一块盒子,这盒子呢是完全独立的,那么我们在页面中我们通常所说的块或者说盒子一般是什么呀?是 div 啊, 对不对?那你可能想问问那老师,那我们平常所写的 d i v, 他难道就是个 b f c 吗?那当然不是了, d i v, 它不是 b、 f c, 但是呢,我们可以通过一些样式来开启 b f c, 同学们要记住,这个 b f、 c 呢,是很多情况下都是需要你自己主动开启的,你加一条样式才能让某个块儿变成 b f、 c, 如果你不加的话,很有可能就大部分情况下它不是 b、 f c。 你注意,我说的是大部分情况下,因为有极个 别的,就它天生就是 b、 f c, 不需要你加任何样式,它天生就是 b、 f、 c。 哪些呢?好,我们一点一点来慢慢来解释。首先我们要先了解一下,如果开启了 b、 f、 c 之后,它里面的布局是什么样的规则,也就说呢,对于 b、 f、 c 这样的一个块儿, 他是有一套自己的布局规则的,有什么规则呢?我在注视中呢,给大家写好了,来看一下他的布局规则有这么六个,这六个呢,要求同学们要深刻的去 啊理解,并且要把它记下来。好了,我们一个个来解释,内部的块呢,会在垂直方向上一个接一个的放置,这就是 b、 f、 c 的规则。 你说老师,那我们这个不是 b f c, 我们平常使用那不也是垂直排练吗?对,这个没错,这是一样的,就是不管你是在 b f c 之内还是不在 b f c 之内,他们的块儿呢,都是在垂直 方向上一个接一个的放置。第二呢,垂直方向的距离由 moden 决定,然后在同一个 b f c 里面的两个相邻块 model 会重叠。 哎妈疹,重叠的这个情况其实我们是遇到了,我们平常写代码的时候会经常发生重叠情况,对吧?其实你们没有意识到,因为你那两个发生重叠的元素是处于一个 b f c 中的。 薛老师,我没有加过 b f c 啊,你注意,我刚才说了,有些元素啊,它天生就是 b f c, 比如说我们的根元素 就是 html 元素,那 html 元素呢,它天生就是个 b f c, 所以说呢,你在 html 元素里边,对吧?我们的 dna 是写在你的根元素里边,所以说呢,肯定也会发生 mod 重叠。所以这种这种 mod 重叠的情况啊, 其实是 b f c 的布局规则。只不过呢,我们以前遇到这种重叠的情况,我们并不知道,这是因为 b f c 的布局规则导致的,但是现在呢,我们知道了,好。第三个,每个块的左外边框紧贴包含块的左边框啊,这个也是跟普通的是一样的, 就说呢,我一个大块包一个小块,左小块里面呢,他的左上角是紧顶着负极的左上角了,哎,这个也是一样的。好,第四条,开启了, b f c 的块和浮动元素不会重叠,会挨着浮动元素显示。 ok, 那这一点呢,是我们之前没有遇到的, 大家去想一下,我如果写一个块跟一个不浮动的块,我前面那块浮动了,我后面没没浮动的话,会发生什么情况?大家一定会知道,你浮动的那个元素呢?一定会遮住你未浮动的那个元素, 因为我们说过浮动的元素不占位置,对不对?好,那现在这样的话,你看如果开启了 b、 f、 c 的话,他就不会重叠 啊,这么神奇的吗?我们一会来来看一下这个情况,大家需要先先记一下,我们一会来验证。好。第五条,它是一个独立的容器,这个我们刚才说了,哎,跟外面不影响。第六条,计算 b、 f、 c 高度的时候呢,浮动的子元素也参与运算, ok, 那这一点呢, 跟我们以前所说的也不一样,因为你计算高度的时候,大家都知道,如果你浮动元素不清除的话,能否把负极撑开 是撑不开的对不对?但是如果开启了 b、 f c, 它就可以, ok, 那这个呢,就是我们 b、 f c 的布局规则,这些呢是需要我们来记的。好,那下面呢,我们需要知道如何能够开启一个 b、 f c, 比如说我一个普通 d i v, 我怎么能够让它变成 d f c 呢? b f c 呢?好,来看一下,给大家整理好了, 在这里边好了,如何开启呢?首先第一个根元素啊,这个就是我刚才说的,有些 b f c 啊,需要你主动加样式才能开启,但是有些元素呢,它天生就是 b、 f c, 比如说我们的根元素。好了,那除了根元素呢,在下边浮动的元素其实也是 b、 f c, 就如果一个元素你加了浮动,也就相当于你开启了 b、 f c, 如果一个元素加了定位,也相当于你开启了 b、 f c 啊,当然当然了,这个定位啊,仅限于绝对定位和固定定位,相对定位不包含在内啊,就是只包含这两个,然后呢, display 属相设置为音浪, blog, flex 等等等等, 后面这些他都认为是开启了 flags, 那 overflow 属相只要你设置的不是 visible, 其他的你设置其他的值也都相当于你开启了 b, f c, 所以现在你们知道了吧, 你们有没有用过 bfc? 那肯定用过啊,对不对?那我们同学可能会觉得,老师啊,我这几年我没干别的事,我感觉我天天就光开启 bfc 了,对不对?我整天搁这开启,但是呢,我竟然不知道啊,对,就是这样的,所以说你们肯定是会用,但是呢,你们没有意识到。好了, 通过这几种情况呢,它都能够开启 flex 布局,哎,不是,呸啊,都是来开启 b, f, c 布局的啊。好了,那下面我们来说一下,那我们这个 b, f c 有什么用呢?好,那么我们一个一个的来尝试啊,首先呢,第一个我们可以使用 b f c 去 解决妈诊塌陷问题我们可以使用 b f c 去解决妈诊塌陷问题。来举个例子,比如说呢,现在我们写两个 d i v, 两个 div, 然后呢,我一个叫 top, 另一个呢,我叫 bottom, 我就复制一下一个两个,然后呢? bottom, 然后呢?这个注视呢太长了,我先把它收起来啊,先把它收起来,我们在上面呢加一点样式大家都知道,现在呢,我写两个块,我写两个块,我如果加一个上面句和加一个下边句,那他俩会不会产生重叠? 就说 moden 啊,加一个上面句和下面句,他们的 moden 是否会重叠?重叠很明显他们是应该是会重叠的,我们来看一下,宽度三百,高度三百,然后呢 背景色我让它是一个红色,然后呢我再写一个 bottom 宽度,我就直接复制了, 然后呢我把颜色换一下就行了啊,这个颜色呢,我让他是蓝色的。好了,这个是没有什么问题。 然后呢,我给他加一个 martin bottom, 写一个一百像素。好,然后呢我们给这个 bottom 加一个 martin top, 加一个二百像素。 那么此时呢,我相信小伙伴们肯定会知道,那他俩家的他俩之间的间距是多少呢?会是三百吗?肯定不是,因为这里面呢,他会发生一个妈枕重叠的情况。 那现在呢,他俩的间距会取两者中的较大数,也就是二百。那么我们来看一下,现在呢,他俩之间的间距就是二百, 对不对?那么此时呢,我如果说我去调整这个妈针包套膜调到一百五,有没有什么影响?其实是没有影响的,我们刷新看一下,他没有任何的变化,因为这个妈针呢,他会发生重叠情况,取较大数。好了,那么我们如何来解决这个问题呢?好,我们的解决方案就是什么呢?就是 开启 bfc, 就说呢,我们只要让其中的一个块在 bfc 之中,那么这样的话,他们就会处于不同的 bfc。 大家来看一下我们刚才讲的 bfc 的布局原则,他的布局,他的布局规则 说呢,在同一个 b, f, c 里边儿呢,它才会 mod 针重叠,对不对?那现在呢,我们 top 和 bottom 它是处于同一个 b, f, c, 就是我们的包那个我们的 h t m l 里边儿,哎,它俩呢,因为是处于在同一个 b, f c 里面, 所以说呢,他们产生了麻疹重叠的情况,那么现在我们只需要让他们处于不同的 b, f c 里面,那么现在他就可以解决这个问题。那怎么办呢?比如说我现在我可以给这个 top, 这个 div 呢?我给他套一个负极, 我给他套一个负极好了,然后呢,我把他的样式我起个名字吧,这个名字呢?我叫 box。 好了,同学们先请问如果我单纯的加一个 box, 会不会改变现在的现状? 并不会,并不会。来看我刷新一下,你会发现是没有影响的。为什么?因为我们所加的这个 div 是不是 b, f c? 不是,我们前面说过了,不是一个普通 diy, 它不是 b f c。 你如果说想开启 b, f c 的话怎么办?我们刚才讲了这么一堆的样,一堆啊,我们刚才讲的是这么 一堆的方法,通过这些方法呢,我们都可以开启 b, f c。 好,我们来看一下我们如何来开启呢?我们选取最后一个 o flo, o flo, 那现在呢?我给点 box 选速,我开启 b, f c, 怎么开启呢?我设置 o flo hidden 也行,但是你说是设置 oto 也行,这个随意,因为我们说只要不是 visible, 那都可以。好了,那我们设置了 oto heat 之后呢?我们保存刷新,我们同学来看一下, 看到了吧,这个间距是不是变大了?他们还重叠吗?不重叠了。那么此时呢?比如说我去调整一下这个麻针 bottom, 我改成一百五,会不会对布局有影响? 当然有影响,因为现在他不重叠呀,你随便改一个值,那么他两者都会叠加的。我们来看一下,当我把这个数值呢写小写大了之后, 再看有没有变化,刷新,你发现又动了,证明我们这个 moden 是不重叠的。 为什么呢?因为你看此时的 box 这个 div, 它就是一个 b、 f、 c, 它处于的是我们的这个 top 元素处于的的,处于的是这个 b、 f c 中,而它呢,是处于这个 b、 f、 c 之外, 他们是不是处于同一个 b f c b f c 里面?所以说呢,他们就不会重叠了, 因为我们说的是它的布局规则,是同一个 b f、 c 会重叠。那现在呢?我是在不同的 b f、 c 里边,他们显然就不重叠了。 好,那这个时候呢,可能有同学说,那老师我同样的,那我开启浮动不也行吗?那我开启定位不也行吗?那我非得按照你这样写去 overflow 吗?呃,定位浮动其实并不是不行,但是大家别忘了定 为何浮动啊,他自己有自己本身的特点。什么特点?他们会脱离文档流的,那脱离文档流之后,那不就导致不占位置了吗?所以说他会导致其他的问题。说这里面呢,我们不会去用浮动或者定位去做,因为他不占,他会脱离文档流。脱离文档流之后呢,其实也会被覆盖掉, 也会被覆盖掉,因为元素会不占位置。好了,行,这是这个我们的第一个问。第一个价值就是我们用来 b、 f c 呢,用来解决妈枕塌陷的问题。 那么 b f c 呢?其实还有它的第二个作用,我们刚才讲的这是第一个,第二个作用呢,它是为了能够,它能够解决什么问题呢?它能够解决浮动的问题。 好,我们把这个代码呢再进行一个简化,现在呢,我们把这个 box 先删掉,这个 box 先先删掉,然后呢,我们把这些 model 呢也先取消掉, 我们还是最保,我们还是保留最简单的两个块,这样还是一个 top 和一个 bottom。 然后呢,在这个代码中呢,这个 top 和 bottom 呢?我需要改一下布局了, top 在里边,然后呢? bottom 作为它的子级克拉斯呢,叫 bottom。 好,这样 一个大块套一个小块,然后呢,大家来看,那么此时呢,如果说我给子吉就是 bottom, 我加一个浮动, 我给他加一个浮动,然后呢?我的负极我不加高度,我宽高我都不加了,我宽高都不加了,因为我们知道宽度默认不加的话,他是百分百,对不对?好,那现在这样的话,请问 红色块,红色块我们是否能看到宽度?百分百嘛?对吧?那主要就看高度了。我, 我们能否看到红色块,那答案肯定是看不见。为什么呢?因为紫元素浮动了,紫元素浮动导致他不占位置,无法撑开负极,对不对?你看我们如果不加浮动的话,那他肯定是可以正常撑开的,这个是没有什么问题。 好,刷新看到没有,这是可以撑开的,对吧?但是我加了浮动了,那肯定不行。好,那这种问题呢,我们依旧可以使用 b f c 来解决,怎么办呢?此时我可以写给 top, top 是我的负极,对不对?好了,我可以给 top 开启浮,那个开启,这个 b f c 怎么开启呢? overflow, hidden, overflow, hidden, 但或者 oto 也行啊,这个都可以。好啦,你看现在呢,我给 top 这个块儿开启了 b f、 c, 那现在呢,我们来看一看刷新, 同学们发现了吗?红色块现在就能看见了,就虽然你里边子级加了浮动,但是呢,我外面的负极是依旧可以正常显示的,它是可以撑开负极的,对不对?这个是用了我们 b、 f、 c 中的哪一个布局规则, 用的哪个布局规则?你看是第六个。在计算 b f、 c 高度的时候呢,浮动的子元素也参与运算啊,也参与运算, 我们正是利用他这个规则,所以说呢,我们的负极才可以得以撑开,因为他计算高度的时候呢,会算浮动的子元素呢,是算的,而普通 div 呢,他在算高度的时候呢,浮动的元素 它是不算在内的。所以说呢,我们在平常的时候,我们可能经常会给负极加一个 overload heat, 达到 清除浮动的目的。大家想一想,你平常是否有这样做过?给给子极浮动了,你给负极加了一个 o flute 的,是不是也能达到清除浮动的目的啊?哎,你看这是用的什么理论啊?其实就是 b f c, 对吧,你看你们是不是在项目中也用了?同理,大家也知道,浮动元素的负极如果也浮动了的话,那么子元素需不需要清除浮动,相信这个同学们平常也用过,我们来再来看一下,那现在呢? 我的 bottom, 我两个 bottom, 现在呢,这两个子集他俩都是浮动的,看到没有,他俩都是浮动的。然后呢,现在我的 top 这个板块呢?我 top 这个板块,我让他也浮动,我让他也浮动。 float left, float left。 好,我们保存来刷新一下,那么此时呢?刷新,我们看一看,这个红色块呢,现在我们看不见,因为它跟蓝色一样大了,我现在呢,我给它宽度吧,我高度不给,为了证明它能撑开,我给它个宽度吧,比如说给个七百像素,这样我们能看到它。好,保存,刷新,你看到 红色,我们是能看见的,并且高度能不能撑开也能撑开啊,为什么此时我没有加 overload hidden 也能撑开呢?我加的是浮动,同学们注意看浮动能能否开启, b、 f、 c 也是可以的。说这个呢,其实也是我们平常写像的时候会用到, 我们之前怎么怎么样说的,就如果子元素和复元素同时浮动的话,那么子元素的浮动他是可以不用清除的,为什么呢?哎,原理就在这,因为你的复元素浮动了,他也 也是开启了。 b, f c, 这个同学们可以理解吧?好,这个呢,就是我们 b、 f、 c 的第二个作用,它可以达到清除浮动的效果,它可以达到清除浮动的效果。好,那在下一个, 他的第三个,他的第三个作用。就是说呢,我们说一个元素,如果说两个同级,如果前面一个元素浮动了,那么下一个元素会不会贴着他牌默认?不会,他肯定会插入到下面去。好,我们来举个例子,我们还是这个 top, 然后呢,我们再写一个包头, 我们再写个 bottom。 好,那这样的一个两个块,然后呢,我们还是先把它其余的样式啊,先给它先去掉好了。然后呢,此时呢这个 top 这个块呢,我也把它设置为一个宽度三百,高度三百的这样一个块, 然后呢, bottom 呢?也是这个给他稍微大一点吧,给他一个四百吧,给他四百的一个蓝色块,然后呢,把他的浮动先取消掉,现在呢?我们给谁加呢?我们给谁加呢? top 和 bottom 是同级,那么此时我给这个 top 加一个浮动,加一个浮动, 那这个地方呢?把它改为三百吧。好,那这时候呢,问大家一个问题,他们两个会不会水平排列?或者说他俩会不会垂直排列? 会不会?并不会,因为大家看 top 这个板块呢,它浮动了,那它浮动呢?它一定是不占位置的,而这个 bottom 呢?因为 top 不占位置,它一定会 嵌入到他,他介嵌入到这个 top 这个块底下去的。我们来看一下,好,刷新,你发现没问题吧?红色块不占位置, 所以说蓝色嵌入到底下去了,那么如何来解决这个问题呢?好,此时怎么办呢?我们就可以开启 b f c 啊,开启 b f c, 怎么开启呢?怎么开启呢?现在呢?我们 top 它有了浮动了,其实相当于 top 已经开启了 b f c, 对不对?那么现在呢,我们给 bottom 这个块,让它也开启一个 b f c, 比如说呢, overflow, hidden 啊, overflow, heat。 那它现在呢?也开启了 b f c。 好,我保存,我们再来看效果。那此时呢?同学们发现了吧,现在呢?红色它占位置了, 为什么呢?为什么此时可以这样排列呢?我们用的,我们用的是第几个?布局规则用的是第几个?来看一下第几个?第四个开启了 b f c 的块儿,和浮动元素不会 重叠,对不对?你看我这个是开启了 b、 f、 c 的块儿,对不对?只要开启了 b、 f、 c, 那这个块儿呢,它就不会跟浮动的元素产生重叠,并且呢它会挨着浮动元素显示, 你看他会紧挨着,那么利用这个特性,利用这个特性,那么我们可以去实现一个比较经典的面试题,叫双栏布局。什么双栏布局呢?就是在面试的过程中,他经常会问 同学,如何来实现一个左边宽度固定,右边宽度自适应的这样一个布局。 相信很多学班小伙伴在面试中被问到过,就是我需要写一个响应式,左边的这一列呢,宽度是固定的,而右边这一列呢,宽度是能够随着屏幕缩放而缩放的,对吧?而现在呢,我们就完全可以使用 b、 f、 c 来做好,那现在呢,包 这个块我就不给宽了啊,给宽度,他肯定是固定宽度,我不给宽,那他默认应该是百分百啊,这个是我们之前说的不给宽度,默认是百分百,对不对?好保存,刷新。同学们,你想想,那现在如果他是百分百的话,他会不会把红色这块部分 也占据下,占据下来就是蓝色呢?会不会插入到红色底下去?这个是不会的,刚才我们已经验证了, 对不对?所以说呢,利用他的这个特点,我们再刷新,同学们发现蓝色他就是一个全屏效果,他就是一个全屏效果。所以说现在呢,如果说你对屏幕进行缩放, 特别注意看,如果你对屏幕进行缩放,它是不影响的,它是不影响的,它都会跟着屏幕的缩放而一起来变化。 说这个呢,我们就实现了一个非常经典的双栏布局,左边高,左边宽度固定,右边宽度自适应。那这个呢?其实我们用的还是他的哪个特性啊?其实还是他的这个第四个特性,就只要你开启了 b、 f、 c 那块和浮动元素呢?他就不会重叠。

右倒库第一个点位到我们的左侧后视镜下边框与这个虚线重合的时候,就干盘一把,往右边打满,打满发现以后来观察右侧后视镜, 从右侧后视镜找右边前面的库角,你看那是左库角,看到右库角以后呢,判断车身和右库角的宽度,一开始在三十厘米以上的时候,先保持不动,往后倒车。 当车身与库角在三十厘米左右啊,你看这个时候呢,大概是两个手指左右的宽度,这个时候呢,大概小于三十公分的,而且如果有虚线的话呢,就是我们的车身,把最后一页虚线差不多盖住一半的时候,方向盘先往左边回半圈, 继续往后倒车,还是看右后视镜,如果车身库角还是越走越窄的话,那方向盘会越继续往 回,如果可以进库的话,就保持不要动了。那么这个时候呢,如果可以进库了,我们的门把手完全进入库角,方向盘再次往右打死。然后呢,先看右镜,右边车身竟然没有压库角,我们去看左镜,车辆快平行了,车回正,方向盘 回正以后,我们看两边后视镜,看车身有没有歪斜,车屁股如果右边歪的话,方向盘就往左边调,车屁股往左歪,方向盘就往右调,使车辆走直, 确保车辆平行。以后,我们来看左侧,看停车的点位,停车的点位同样是看这个后视镜下边框与这条实线,从和右停车和第一个点位是一样的。好盖线以后呢,我们就停车,右倒库就完成了。请学会的朋友给教练点点红心,加个关注,每天更新教学视频。