2.浮动流的起始位置由最先设置浮动的元素未浮动时的位置决定 我们再回到上述的例子,div2,div3,div4向左浮动的时候 ? 浮动流的起始位置被最先设置浮动的元素原本的位置决定了。..."div4"这个文本不是被包裹在div4这个元素里面吗,为什么被浮动元素div2“怼”下来了?刚刚不是还说好浮动 ==脱离文档流 == 不占其他元素的物理空间的吗?对啊,这里说的是元素,并不是文本。...浮动元素会影响文本的位置! 我们甚至可以无脑地推测,float的一开始设计的作用就是为了解决以下的这个问题—— 让文本环绕一个图片,就像下面这个W3C的案例一样: ?...4.浮动流位居标准流之上(也就是说浮动流的元素会覆盖标准流的元素) 这个根据上面那个例子就可以看出来,这里就不多说了 六.实践案例 好,说了这么多,还是用以上的知识点来一个实践的案例比较痛快,下面这个案例是...【实现思路】:正如上面所说,浮动会脱离文档流从而不占据其他元素的物理位置,而我们让div1向左浮动了,这表示我们在考虑div2的布局的时候完全可以把div1当作不存在。
当它正常工作时,元素会"粘"在一定位置,但在滚动的其他部分,它又会停止"粘"住。作为一个每天都在使用CSS的人,作者无法接受自己不能深入理解这个问题的根本原因,所以决定深入研究sticky定位。...这个元素没有其他元素可以浮动,因为它只能浮动在兄弟元素上,而作为唯一的子元素,它没有兄弟元素。 CSS Sticky 定位的真正工作原理!...让我来解释一下: Relative 定位(或Static定位)- 粘性定位元素类似于相对定位和静态定位,因为它保持DOM中的自然间隙(保持在流中)。...Fixed - 当项目固定时,它的行为与 position: fixed 完全相同,浮动在视口的相同位置,从流中移除。...这意味着可以定义页脚具有粘性位置,并且在向下滚动时始终会出现粘在底部。当我们到达粘性容器的末尾时,元素将停留在其自然位置。最好将其用于自然位置为粘性容器底部的元素。
目录: 一、大结构上的导航栏和内容区域两栏布局 1、博客园为例 2、腾讯课堂个人中心页 3、慕课网个人中心页 4、github个人中心页 二、mini版的nav...一、大结构上的导航栏和内容区域两栏布局 首先我们从 大结构上 说起,因为我发现很多网站从整个首屏的大结构上都是这种两栏布局: 旁边是侧边栏导航,中间是大块内容区域。...右边nav栏固定宽度,并用margin/padding-left隔开和左边内容区域的距离 值的注意的是左边内容区域宽度设置为百分百,并使用margin-left负值使得自身向左位移,以给右边的nav...width:100%的元素使用了padding后的,宽度会增大。使用box-sizing把padding的宽度算到width中。 main伪元素after清楚浮动,解决父元素塌陷问题。...这个就简单多了 ? 左边和右边内容分别左右浮动: ? flex两端布局 ? 左边左浮动,右边宽度自适应并text-aligin:right; ?
,不再占据文档流中的位置 2、设置浮动以后元素会向父元素的左侧或右侧移动, 3、浮动元素默认不会从父元素中移出 4、浮动元素向左或向右移动时,不会超过它前边的其他浮动元素 5、如果浮动元素的上边是一个没有浮动的块元素...我记得有一种开过极细小的粉红花,现在还开着,但是更极细小了,她在冷的夜气中,瑟缩地做梦,梦见春的到来,梦见秋的到来,梦见瘦的诗人将眼泪擦在她最末的花瓣上,告诉她秋虽然来,冬虽然来,而此后接着还是春,蝴蝶乱飞...,其会完全脱离文档流,子元素从文档流中脱离,将会无法撑起父元素的高度,导致父元素的高度丢失 父元素高度丢失以后,其下的元素会自动上移,导致页面的布局混乱 所以高度塌陷是浮动布局中比较常见的一个问题,这个问题我们必须要进行处理...高度塌陷问题解决之 - clear 由于box1的浮动,导致box3位置上移 也就是box3收到了box1浮动的影响,位置发生了改变 如果我们不希望某个元素因为其他元素浮动的影响而改变位置,可以通过...="box1 clearfix"> clearfix 这个样式可以同时解决高度塌陷和外边距重叠的问题,当你在遇到这些问题时
当我们滚动窗口的时候,盒子是固定屏幕某个位置的 ?...新浪案例分析 顶部图片固定在浏览器可视窗口顶部,不会随窗口一起滚动; 左右两侧的广告图片固定在浏览器可视窗口的左右两侧,不会随窗口一起滚动; 注意:底部的内容图片初始显示在顶部图片的下方,如何解决?...left: 50%;:让盒子的左侧移动到父级元素的水平中心位置; margin-left: -100px;:让盒子向左移动自身宽度的一半。 案例演示:相对定位案例。 盒子居中定位示意图 ?...完善新浪导航案例 同时注意: 浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题。...(我们以前是用padding border overflow解决的) 也就是说,我们给盒子改为了浮动或者定位,就不会有垂直外边距合并的问题了。 6. 综合演练 - 淘宝轮播图 ?
,并浮动到容器视图的最左边的(0,180)的位置上。...清除浮动 上面的几个场景中我们发现,不管新加入视图的宽度如何,只要容器视图中剩余宽度能够容纳新加入的子视图,则子视图总是会浮动到前面一个视图的右边。...那么当我们的布局视图里面的子视图又有向左浮动的且又有向右浮动的情况时,我们的宽度边界又是如何考虑的呢? ...因此为了解决这个问题,我们的布局系统提供了边界线以及智能边界线的功能。...即便如此,对于上面的特殊情况,我们还需要进行编程以及条件判断来完成边界线的指定,因此为了解决这个问题,我们在布局中新增加了一个智能边界线的属性: @property(nonatomic, strong
它始终是以 body 为依据的。 注意设置 fixed 属性的元素在标准流中不占位置。 3.浮动与清除浮动 3.1 浮动相关知识 float属性的取值: left:元素向左浮动。...取值:left、right、both 3.2 父元素高度塌陷问题 为什么要清除浮动,父元素高度塌陷 解决父元素高度塌陷问题:一个块级元素如果没有设置height,其height是由子元素撑开的。...(不推荐使用) 方法三:让父级div 也一并浮起来 这样做可以初步解决当前的浮动问题。但是也让父级浮动起来了,又会产生新的浮动问题。...它是一个独立的渲染区域,只有 Block-level box 参 与, 它规定了内部的 Block-level Box 如何布局,并且与这个区域外部毫不相干。...当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
浮动(float) 目标 记忆 能够说出 CSS 的布局的三种机制 理解 能够说出普通流在布局中的特点 能够说出我们为什么用浮动 能够说出我们为什么要清除浮动 应用 能够利用浮动完成导航栏案例 能够清除浮动...定位 将盒子定在浏览器的某一个位置——CSS 离不开定位,特别是后面的 js 特效。 1.2 为什么需要浮动? 思考题: 我们首先要思考以下2个布局中最常见的问题?...漏 加了浮动的盒子是不占位置的,它原来的位置漏给了标准流的盒子。...注意,实际重要的导航栏中,我们不会直接用链接a 而是用 li 包含链接(li+a)的做法。 li+a 语义更清晰,一看这就是有条理的列表型内容。...防止引起问题 2. 清除浮动 2.1 为什么要清除浮动 因为父级盒子很多情况下,不方便给高度,但是子盒子浮动就不占有位置,最后父级盒子高度为0,就影响了下面的标准流盒子。 ?
在本文中,我们将探讨这个问题,为什么会发生这种情况,以及如何使用虚拟键盘API来解决它。让我们开始吧。 问题 在深入细节之前,让我们通过一个例子来了解一下。...请看下图: 为了更好地展示问题,如下动画所示: 为了解决这个问题,我们需要检测输入是否处于焦点状态,并根据此进行相应的 padding-bottom 更改。...好问题。env() 会回退到 0 ,总计将得出 var(--cta-height) 的值。 浮动操作按钮 在这个例子中,我们有一个浮动操作按钮,它位于页面的右下角。...当键盘激活时,浮动按钮应该移动到键盘上方。就像第一个例子中一样,浮动按钮将位于键盘下方。 为了解决这个问题,我们可以使用 env(keyboard-inset-height) 值。...为桌面使用不同的值 假设我们想在桌面浏览器上进一步调整浮动按钮的位置,我们该如何做呢?嗯,我考虑使用 max() 比较函数,结果行得通。
| 为块元素设置浮动 | 为块元素设置定位 ) 【CSS】使用 固定定位 实现顶部导航栏 ( 核心要点 | 固定定位元素居中设置 | 代码示例 ) 【CSS】使用绝对定位 / 浮动解决外边距塌陷问题..., 让子元素的左侧 移动到 父容器水平中心位置 ; left: 50%; 然后 , 设置 负数的 左外边距 , 令 子元素 向左移动 自身 宽度的一半 , 需要提前测量 子元素的宽度 ; margin-left...可以改变显示模式 , 将 元素的显示模式 改为 行内块 显示模式 ; 使用 浮动 , 也可以 将 块内元素 改为 类似于行内块的显示模式 , 浮动是脱标的 , 不占用标准流元素的位置 ; 绝对定位 和...和 绝对定位 / 固定定位 元素 , 都是脱标的 , 都不会触发 外边距塌陷 问题 , 为 盒子设置 浮动 / 定位 , 就不用考虑 外边距塌陷的问题 ; 14、使用绝对定位 / 浮动解决外边距塌陷问题...为父容器 / 子元素设置内边距 / 边框 */ padding: 1px; } 为子元素设置浮动 , 可以解决 外边距 塌陷问题 ; 为子元素设置绝对定位 , 可以解决 外边距 塌陷问题 ;
先看这个问题昂:在给c2的div标签加上浮动之前是下面这样的效果: 我并没有给c1那个div标签设置高度,但是你发现c1这个div标签是有高度的,这是因为里面两个c2div我设置了高度了,这两个...div将c1这个div标签撑起来了 当我们加上浮动之后,你再看这个c1的div标签的高度:发现c1这个div的高度没有了,显示的高度是1.99,是因为我给它设置了边框,上下边框加起来正好2px,...,并且将来这样的标签要是很多怎么办,没法算对不对,所以我们一般不用这种方法来解决浮动的问题,看下面我们要学的clear,清除浮动。 ...可以将元素设置成relative,不设置任何的top、left、right、bottom等,它还是它原来的位置 absolute(绝对定位) 定义:设置为绝对定位的元素框从文档流完全删除,也会有父级标签塌陷的问题...,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。
解决方法有很多,最简单的,就是给这个span元素添加一个“display:block”或者“display:inline-block”的样式,就可以解决这个问题了。 ?...1489389799684095860.png 接下来一个问题,我们已经给这个行内元素升级为行内块级元素了,如何让里面的字相对于这个span居中定位呢?...1489394897277012185.png 发现问题了吗,各位?本来是一个p元素,当我在它里面放一个div元素的时候,一个p元素竟然被分成了两个,同学们,这样是不是很危险啊?...1489392103105078631.png 为什么呀,刚才我们是不是已经说了呀,当我们给一个行内元素设置宽度和高度,是不是没有用的呀?...1489393380355073949.png 第四个盒子消失了,为什么呢?刚才我们说,当一个元素设置了浮动,那么就会飘起来,脱离标准流,也就是不占位置了。那么,在它后面的元素是不是就要紧跟上来啊?
不过在 CSS 中,任何元素都可以浮动,假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。...,并浮动到容器视图的最左边的(0,180)的位置上。...那么当我们的布局视图里面的子视图又有向左浮动的且又有向右浮动的情况时,我们的宽度边界又是如何考虑的呢?...因此为了解决这个问题,我们的布局系统提供了边界线以及智能边界线的功能。...即便如此,对于上面的特殊情况,我们还需要进行编程以及条件判断来完成边界线的指定,因此为了解决这个问题,我们在布局中新增加了一个智能边界线的属性: @property(nonatomic, strong)
) 子元素设置position: absolute 简称为“子绝父相” 当然,也有 子绝父绝 子绝父固 不要死记 1.2. position设置absolute/fixed特性 将position设置为...,直到它滚动到某个阈值点; 当达到这个阈值点时, 就会变成固定(绝对)定位; sticky是相对于最近的滚动祖先包含滚动视口的( the nearest ancestor scroll container...浮动规则 浮动规则一 元素一旦浮动后, 脱离标准流 朝着向左或向右方向移动,直到自己的边界紧贴着包含块(一般是父元素)或者其他浮动元素的边界为止 定位元素会层叠在浮动元素上面 浮动规则二 如果元素是向左...(右)浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界 浮动规则三 规则三: 浮动元素之间不能层叠 如果一个元素浮动,另一个浮动元素已经在那个位置了,后浮动的元素将紧贴着前一个浮动元素(左浮找左浮...练习一 - 去除间隙 浮动常用的场景 解决行内级元素、inline-block元素的水平间隙问题 2.4. 练习二 - 百度页码 2.5.
浮动元素会生成一个块级框,而不论它本身是何种元素。 关于浮动的两个特点: 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。...是可以设置一个高度即可解决覆盖问题。...2、clear: left;对自身起作用,一旦左边有浮动元素,即切换到下一行来保证左边元素不是浮动的,依据这一点解决父级塌陷问题。 overflow溢出属性 值 描述 visible 默认值。...absolute(绝对定位) 定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。...在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。 <!
关于浮动的两个特点: 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。...对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。...absolute(绝对定位) 定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。...这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left...在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。 示例代码: <!
并集选择器」如果某些选择器定义的相同样式,就可以利用并集选择器,可以让代码更简洁。并集选择器(CSS选择器分组)是各个选择器通过,连接而成的,通常用于集体声明。...什么是浮动」元素的浮动是指设置了浮动属性的元素会 脱离标准普通流的控制,不占位置,脱标 移动到指定位置。 作用 让多个盒子(div)水平排列成一行,使得浮动称为布局的重要手段。...防止引起问题 浮动(float)小结 特点 说明 浮 加了浮动的盒子「是浮起来」的,漂浮在其他标准流盒子的上面。 漏 加了浮动的盒子「是不占位置的」,它原来的位置「漏给了标准流的盒子」。...总结: 由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响 准确地说,并不是清除浮动,而是清除浮动后造成的影响 清除浮动本质清除浮动主要为了解决父级元素因为子级浮动引起内部高度为0 的问题...:让盒子的左侧移动到父级元素的水平中心位置; margin-left: -100px;让盒子向左移动自身宽度的一半。
一,浮动的定义 一个浮动盒会向左或向右移动,直到其外边(outer edge)挨到包含块边沿或者另一个浮动盒的外边。如果存在行盒,浮动盒的外top(边)会与当前行盒的top(边)对齐。...当一个普通元素遇到一个浮动元素,普通元素是看不见浮动元素的。但里面的行盒是可以看见浮动元素的,行盒会缩短并给浮动元素让位。 ? 写一下我理解的行盒的概念。...clear: left; 官方解释:要求该盒的top border边位于源文档中在此之前的元素形成的所有左浮动盒的bottom外边下方 不正经的理解:如果我前面有左浮动元素,我必须位于它的下方 clear...; 如果我前面有浮动元素,我必须位于它的下方 (2)封装一个clearfix的属性,用于父元素清除浮动 原理:父元素看不见元素,导致高度不正常。...display: block; //生成的伪元素是内联元素,需要设置成块级元素来占位置啊 clear: both; //把这个元素清除浮动,放在父元素的最下方,把父元素撑开 } 使用:把.clearfix
在两个形状之间放入一小段文本,会形成一个 Z 形,它表明了在驾驶这款标志性小型车时,人们会感受到的速度和乐趣。...右:使用 CSS Shapes 创建更独特的外观。 通过将我的内容限制在右侧浮动的曲线图像中,我可以轻松地为下一个设计添加独特的外观。...,我再次围绕一个向左浮动的形状图像流动内容。...如果所有正在运行的文本因为空间太小而无法适应形状,那每个形状都浮动意味着内容将流入到形状下方的空间。 5. 旋转型 为什么要满足于只使用 CSS Grid 和 Shapes 呢?...像 CSS Shapes 这样的工具现在为我们提供了无数可以利用艺术设计吸引读者的注意力并让他们保持参与的机会。我希望你现在和我一样兴奋!
-- 固定定位 --> 相对定位 相对定位:让元素相对于自己原来的位置,进行位置调整(可用于盒子的位置微调)。...相对定位不脱标 相对定位:不脱标,老家留坑,别人不会把它的位置挤走。 也就是说,相对定位的真实位置还在老家,只不过影子出去了,可以到处飘。...我们可以总结成一个公式: left:50%; margin-left:负的宽度的一半 固定定位 固定定位:就是相对浏览器窗口进行定位。无论页面如何滚动,这个盒子显示的位置不变。 备注:IE6不兼容。...需要注意的是,假设顶部导航条的高度是60px,那么,为了防止其他的内容被导航条覆盖,我们要给body标签设置60px的padding-top。 顶部导航条的实现如下: *{ margin: 0; padding: 0; } body{ /*为什么要写这个
领取专属 10元无门槛券
手把手带您无忧上云