支持 monorepo 随着前端工程的日益复杂,越来越多的项目开始使用 monorepo。...比如 React 有一些内部变量,在两个不同包引入的 React 不是同一个模块实例,因此无法共享内部变量,导致一些不可预知的 bug。...接着,从 npm3 开始,包括 yarn,都着手来通过扁平化依赖的方式来解决这个问题。相信大家都有这样的体验,我明明就装个 express,为什么 node_modules里面多了这么多东西? ?...版本的 C,而 A 当中用的还是 C 当中旧版的 API,可能就直接报错了。...注意,使用的是硬链接,而不是软链接。如: pnpm link ../..
复制代码 其实我个人理解,浮动造成的最核心的问题就是破坏了文档流,那么问题来了,float破坏了文档流,为什么还要设计这个api,我查了一些资料最后才知道,这是因为当初设计float的目的是为了能实现文字能够环绕图片的排版功能...这只是开始,大家眼睛盯好,继续看下面截图: ---- ? 从图中标注可以看出,为什么伪元素要设置display:block,继续看下一个截图。 ---- ?...从上图中可以知道,为什么height要设置成 0 了。如果content不是空字符串,那么就会在页面中显示内容。...我故意让content显示出来,会发现伪元素清除浮动的核心原理其实是在给父元素增加块级容器,同时对块级容器设置clear属性,使其能够清除自身的浮动,从而正常按照块级容器排列方式那样排列在浮动元素的下面...同时,父元素的同级元素也会正常排列在伪元素形成的块级元素后面,而不受浮动影响。 ---- 下面是干掉clear属性后的截图: ?
(float:right同理,只是方向不同而已) 注意:在仅考虑浮动元素本身的前提下,float:left的效果与display:inline-block而父容器direction:ltr的效果是一样的...头痛的开始——基于Normal flow看Float 用割裂的方式理解float并不难,难就难在结合Normal flow看Float。下面我们一起来探讨吧!警告,前方高能,前方高能!!...:#06f;width:200px;height:100px;"> 通过创建BFC翻身做主人 同样是盒子,为啥你就可以在我上面呢?...是"浮动闭合"还是"清除浮动"? 我想各位都看过各种版本的clearfix实现,而最简单粗暴的方式就是添加一个来清除浮动。...我还听过另一个名称——"浮动闭合",那到底两者有什么区别呢?在作区分之前我们先要明确问题的本身。
BFC是一个独立的布局环境,其中的元素布局是不受外界的影响,并且在一个 BFC 中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。...块格式化上下文(BFC)的行为通过一个简单的float示例很容易理解。在下面的示例中,我有一个框,其中包含向左浮动的图像和一些文本。...这是因为当我们浮动一个元素时,文本所在的框的宽度保持不变,为给浮动元素腾出空间而缩短的是文本的行框。这就是为什么背景和边框会出现在浮动后面的原因。 我们通常有两种方法来解决这个布局问题。...一种方法是使用 clearfix hack,它的作用是在文本和图像下面插入一个元素,并将其设置为 clear:both。另一种方法是使用 overflow 属性,其值不是缺省值 visible。...查看演示 在多列布局中使用 BFC 如果我们创建一个占满整个容器宽度的多列布局,在某些浏览器中最后一列有时候会掉到下一行。这可能是因为浏览器四舍五入了列宽从而所有列的总宽度会超出容器。
1 文档流 要了解css的布局,就要先了解什么是文档流。文档流就是HTML元素的一种排列规则。 而正常文档流就是在不用样式控制之下,html元素的默认排版方式。...它的规则如下: 自上而下排列,每个块元素独占一行,行内元素自左向右排列,不会独占一行 独占一行 从左向右 这是在不使用 样式的请况之下正常排列方式...而一旦使用了浮动元素。...,并且自带内边距 这一类标签在页面中会紧贴在浮动元素下面 ( 这个紧贴不是边框紧贴!...我能不能让它不要忽视浮动元素,而是排在浮动元素之后呢?能不能让段落标签不这么紧贴着,而是以边框为基准排在浮动元素后面呢?答案是肯定的。
BFC是一个独立的布局环境,其中的元素布局是不受外界的影响,并且在一个 BFC 中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。...块格式化上下文(BFC)的行为通过一个简单的float示例很容易理解。在下面的示例中,我有一个框,其中包含向左浮动的图像和一些文本。...删除一些文本 这是因为当我们浮动一个元素时,文本所在的框的宽度保持不变,为给浮动元素腾出空间而缩短的是文本的行框。这就是为什么背景和边框会出现在浮动后面的原因。 我们通常有两种方法来解决这个布局问题。...一种方法是使用 clearfix hack,它的作用是在文本和图像下面插入一个元素,并将其设置为 clear:both。另一种方法是使用 overflow 属性,其值不是缺省值 visible。...在多列布局中使用 BFC 如果我们创建一个占满整个容器宽度的多列布局,在某些浏览器中最后一列有时候会掉到下一行。这可能是因为浏览器四舍五入了列宽从而所有列的总宽度会超出容器。
而下面代码是错误的: 三年级时,我还是一个胆小如鼠的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。...a{display:block;} 块级元素特点: 1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。...(真霸道,一个块级元素独占一行) 2、元素的高度、宽度、行高以及顶和底边距都可设置。 3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。...我要变成内联元素 内联元素特点: 1、和其他元素都在一行上; 2、元素的高度、宽度及顶部和底部边距不可设置; 3、元素的宽度就是它包含的文字或图片的宽度,不可改变。...任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。如下代码可以实现两个 div 元素一行显示。 什么是层模型?
写这篇文章的起因是源于这篇文章:谈谈面试与面试题 中关于position的讨论,文中一开始就说的这句话: 面试的时候问个css的position属性能刷掉一半的人这是啥情况…… 其实这问题我本来打算的是可以顺着一路扯到...也就是说,上下两个块级盒之间的边距由它们之中边距较大的元素决定,而不是他们的和!...div1和div2的垂直距离由大的margin决定,也就是div2的40px而不是二者之和60px。 其次,行内元素是会被折断的,当宽度受到限制的时候,它会自动移动到下一行。...在BFC中,每一个盒子的左外边缘(margin-left)会触碰到容器的左边缘(border-left)(对于从右到左的格式来说,则触碰到右边缘), 即使存在浮动也是如此(尽管一个子元素的内容区域会由于浮动而压缩...总之,对于 "display:table" 的元素,产生块格式化上下文的是匿名框而不是 "display:table"。 最后,是这些元素创建了块格式化上下文,它们本身不是块格式化上下文。
普通流 (normal flow) 在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定...绝对定位 (absolute positioning) 在绝对定位布局中,元素会整体脱离普通流,因此绝对定位元素不会对其兄弟元素造成影响,而元素具体的位置由绝对定位的坐标决定。...BFC是一个独立的布局环境,其中的元素布局是不受外界的影响,并且在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。...(不设置浮动,设置浮动那肯定是 左右一行排列了)。...BFC清除浮动 浮动元素是会脱离文档流的(绝对定位元素会脱离文档流)。如果一个没有高度或者height是auto的容器的子元素是浮动元素,则该容器的高度是不会被撑开的。
利用 overflow 清除浮动 其实第一次看到可以用 overflow 清除浮动(其实我是拒绝的),有一种很神奇的感觉,为什么这样可以清除浮动?!而这样的问题,也作为面试题被问过。...属性均可以清除浮动,而 overflow 被广泛使用的原因,我想应该在于,在触发 BFC 或者 hasLayout 的同时,对元素自身的定位或者表现影响有限。...下面是对使用 overflow 的几个属性值来清除浮动时,它们之间的差异性。...在使用 auto 或者 hidden 时,需要保证容器的高度为自适应(即不显式定义height);此外浮动元素的总宽度应该始终小于容器的宽度。...否则,在清除了浮动的同时会带来另外的问题:超出容器部分的内容会被“切”掉,或者出现滚动条。 3. 在Explorer Mac中,设置 auto 会始终显示滚动条。(不懂mac 没测过) 4.
块级元素的特点: (1)总是从新行开始 (2)高度,行高、外边距以及内边距都可以控制。 (3)宽度默认是容器的100% (4)可以容纳内联元素和其他块元素。...(3)宽度默认是容器的100% (4)可以容纳内联元素和其他块元素。 行内元素的特点: (1)和相邻行内元素在一行上。...好比我们的浮动,有浮动开始,则就应该有浮动结束。 为什么要清除浮动 我们前面说过,浮动本质是用来做一些文字混排效果的,但是被我们拿来做布局用,则会有很多的问题出现, 但是,你不能说浮动不好 。...准确地说,并不是清除浮动,而是清除浮动后造成的影响 如果浮动一开始就是一个美丽的错误,那么请用正确的方法挽救它。 清除浮动本质 清除浮动主要为了解决父级元素因为子级浮动引起内部高度为0 的问题。...项目位于容器的开头。 让子元素从父容器的开头开始排序但是盒子顺序不变 flex-end 项目位于容器的结尾。 让子元素从父容器的后面开始排序但是盒子顺序不变 center 项目位于容器的中心。
在开始今天的课程之前,有一个东西我需要先讲一下,学网页,我认为最最重要的就是学布局,如果一个网页,你不去布局,学再多的div加css也无济于事,你就算学了再多的特效,又能怎么样?那么,何为布局呢?...接下来,我们来说一个非常非常重要的知识点,那就是浮动布局。那么,到底什么是浮动呢,还是以案例为主吧。我在B区域画三个div盒子,给他们都绑定同一个class,叫做box。 ?...1489391487793013193.png 可以看到,div元素是块级元素,再复习一下啊,块级元素有什么特点啊,是不是会独自占满一行呀?所以,这三个div元素就没法在同一行显示了。...1489391754949081918.png 哇,是不是飘起来了。没错,这个就叫做浮动布局。我现在问一下大家,你觉得,浮动布局的目的是什么?没错,就是为了让块级元素在同一行上显示,仅此而已。...没有其他更玄妙的说法了,不论多么复杂的网页,如果用到了浮动布局,肯定就是这么回事,肯定是为了让某些div元素在一行上面显示。在这个例子中,我们如果让第三个盒子往右浮动,就给它单独加一个行内样式: ?
a{display:block;} 块级元素特点: 每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行) 元素的高度、宽度、行高以及顶和底边距都可设置。...我要变成内联元素 内联元素特点: 和其他元素都在一行上; 元素的高度、宽度及顶部和底部边距不可设置; 元素的宽度就是它包含的文字或图片的宽度,不可改变。...任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。如下代码可以实现两个 div 元素一行显示。...>、、、、、 常用的内联块状元素有: 、 块级元素 块级元素特点: 1、每个块级元素都从新的一行开始,并且其后的元素也另起一行...(真霸道,一个块级元素独占一行) 2、元素的高度、宽度、行高以及顶和底边距都可设置。 3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
float 浏览器绘制这个网页时,按照文档流顺序,先在网页第一行左边开始处理 div1 元素,发现它的一个浮动元素,则将其抽离到另一个层面,浮动在文档流上面。...然后它继续处理 div2 元素,因为之前处理的 div1 元素是浮动元素,不占用文档流,所以此时仍旧是在第一行左边绘制 div2 元素,发现它是一个块级元素,所以让其霸占一整行。...紧接着,继续处理 div3 元素,因此之前 div2 块级元素已经霸占了第一行了,所以此时是在第二行处理 div3 元素,发现它也是一个浮动元素,便以当前位置将其抽离到另一层面绘制。...如果接下去处理的元素是块级元素,那么此时的效果会是怎样的呢? 如果接下去是块级元素,那么它就会是绘制在浮动元素 div3 和 dive4 下面,呈现出重叠的效果。...而如果我们想让浮动元素之后的元素另起一行,从新的位置开始布局,那么就要进行浮动的清除。
(一般情况下参考元素 == 父级元素,这里写成参考元素而不是父级元素,在下面我会再细说) 2.width:auto也是以“占满参考元素宽度”为目标。...没错,在一般情况下(没有浮动,不是行内框),并排的div 的margin可以彼此重叠,而且重叠后值为两者中较大的那个 ?..."div4"这个文本不是被包裹在div4这个元素里面吗,为什么被浮动元素div2“怼”下来了?刚刚不是还说好浮动 ==脱离文档流 == 不占其他元素的物理空间的吗?对啊,这里说的是元素,并不是文本。...浮动元素会影响文本的位置! 我们甚至可以无脑地推测,float的一开始设计的作用就是为了解决以下的这个问题—— 让文本环绕一个图片,就像下面这个W3C的案例一样: ?...【实现思路】:正如上面所说,浮动会脱离文档流从而不占据其他元素的物理位置,而我们让div1向左浮动了,这表示我们在考虑div2的布局的时候完全可以把div1当作不存在。
三种常见的布局方案方案: 普通流 (normal flow) 在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行...绝对定位 (absolute positioning) 在绝对定位布局中,元素会整体脱离普通流,因此绝对定位元素不会对其兄弟元素造成影响,而元素具体的位置由绝对定位的坐标决定。...BFC是一个独立的布局环境,其中的元素布局是不受外界的影响,并且在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。...或fixe BFC布局规则: 1.内部的Box会在垂直方向,一个接一个地放置(不设置浮动,设置浮动那肯定是左右一行排列了)。...BFC清除浮动 浮动元素是会脱离文档流的(绝对定位元素会脱离文档流)。 如果一个没有高度或者height是auto的容器的子元素是浮动元素,则该容器的高度是不会被撑开的。
原因很简单,因为我发现这几个概念不仅仅是编码的人搞不明白,很多的前端,就是靠这个技术吃饭的人都很多搞不明白怎么回事的,为什么和浮动一起说呢,其实这篇文章真正的要说的是浮动给我们的布局带来的问题,我们应该怎么合理的处理...伪类介绍 首先介绍一下什么是伪类:伪类其实我们经常用的到,只是我们自己不会刻意的说这个是伪类这样的一个东西,我下面简单的举个例子就明白了怎么回事 <!...以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。...也就是说,被浮动了的元素是不可以撑起来这个外层的div的 浮动的元素在父级的元素不够包它的时候,他会自动填充到下一行 写个例子 <!...,我们在最外层的伪元素结尾部分加上清除浮动就可以了。
然而,接着浮动盒 创建的当前及后续行盒会进行必要的缩短,为了给浮动(盒)的margin box让出空间。 二,浮动的例子 浮动的定义很枯燥,下面我们通过几个例子,来理解浮动的概念。...行盒就是 line-box,也就是一个块级元素展示出的每一行就是一个行盒。块级元素内展示在一行的所有元素共同构成了一个行盒。...所有元素从上到下依次排列,普通元素可以把父元素的内容撑开。 但浮动元素脱离了普通流,元素不是一个个从上到下排列的,浮动元素也不能把父元素撑开,因为父元素压根就看不见浮动元素。 demo链接描述 ?...(2)父容器高度计算出现问题 父元素看不到浮动元素,如果父元素没有设置高度,浮动元素是无法撑开父容器的。...demo链接描述 /li里面的元素全部浮动的情况下,.navbar的高度为0,所以设置背景色无效 ? 四:清除浮动 (1)clear属性 clear可以用于任何元素,无论是不是浮动元素都可以加。
写在标签的开始标签里 在开始的标签里写style=“ ” 什么时候使用:只有这么一个标签需要这个样式的时候...,之后的内联对象会被排列在同一行内。...Windows 自带的点阵宋体(中易宋体)从 Vista 开始只提供 12、14、16 px 这三个大小的点阵,而 13、15、17 px时用的是小一号的点。...等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度。...:rem 38、为什么css放在顶部而js写在后面?
2005年,因出演现代剧《涩谷15》而作为演员出道。2006年,参演校园剧《我的老大,我的英雄》;同年,她还出版了个人首本写真集《水漾青春》。...3.浮动引发的问题 3.1破坏性 这个在我的一篇文章小结BFC的基本知识与应用中也提过:如果父元素的子元素都是浮动元素,那么父元素的高度会发生高度塌陷。...3.2包裹性 我们都知道,div元素是块级元素,会占据一行。而如果给div元素增加设置了float,看起来这个div元素会变得紧凑,宽度就是能把内容包裹住的宽度,例如: ?...IE 会扩展浮动来包含图片,突破伸出主内容之外把侧栏推到下面。 快速修正:确保不是图片造成这种情况,使用 overflow:hidden 来切除多余的部分。...由于BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。所以父元素里面的浮动元素不会影响到外面的其他元素,达到清除浮动的效果。
领取专属 10元无门槛券
手把手带您无忧上云