首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CSS 中重要的层叠概念

CSS2.1 规范中,每个元素的位置是三维的,元素发生层叠,这时它可能覆盖了其他元素或者被其他元素覆盖;排在 z 轴越靠上的位置,距离屏幕观察者越近 可以想象一张桌子,上面有一堆物品,这张桌子就代表着一个层叠上下文...,处理层叠只考虑子元素,这里类似于BFC 每个层叠上下文是自包含的:元素的内容发生层叠后,整个该元素将会在父级叠上下文中按顺序进行层叠 2....除了我们常用的横坐标和纵坐标, 盒模型元素还可以沿着”z 轴”层叠摆放, 他们相互覆盖, z 轴顺序就变得十分重要。...那么没有元素包含 z-index 属性,这个例子中的元素按照如下顺序层叠(从底到顶顺序): 根元素的背景和边界 块级非定位元素按 HTML 中的出现顺序层叠 行内非定位元素按 HTML 中的出现顺序层叠...设置的多大z-index: 999,蓝都位于红绿的下面;如果我们只更改红绿的 z-index 值,由于这两个元素都在父元素first-box产生的层叠上下文中,此时谁的 z-index 值大,谁在上面

77630
您找到你想要的搜索结果了吗?
是的
没有找到

关于 z-index,你可能一直存在误区

为了决定某个元素在 z 轴方向上的位置,CSS 允许我们为 z-index 属性设置三种值: auto(默认值) 整数 inherit 我们主要看一下整数值。...不过,下面的问题恐怕就不是很好回答了: 设置了定位和 z-index 的元素与一个位于正常文档流中的元素重叠,哪一个在顶层呢? 一个元素设置定位,另一个元素设置浮动,哪一个在顶层呢?...对每一个网页来说,默认都会创建一个层叠上下文 ,这个上下文(这张桌子)的根部就是 html 元素,html 元素的所有子元素都会位于这个默认的层叠上下文中的某个层叠等级,就好比东西会摆放在桌子的不同位置一样...在 CSS 文件中设置 html 的背景颜色为蓝色,设置 div 的背景颜色为红色,并设置宽高。 加载页面的时候,你觉得会看到什么?...假设所有的非定位元素位于同一个层叠等级,那么我们就没办法在 div (块级盒)看到文本(内联盒)了。

1.1K10

CSS 中重要的层叠概念

某个元素可能覆盖了其他元素也可能被其他元素覆盖; ?...,处理层叠只考虑子元素,这里类似于BFC 每个层叠上下文是自包含的:元素的内容发生层叠后,整个该元素将会在父级叠上下文中按顺序进行层叠 2....除了我们常用的横坐标和纵坐标, 盒模型元素还可以沿着"z 轴"层叠摆放, 他们相互覆盖, z 轴顺序就变得十分重要。...参见Codepen - 普通情况 那么没有元素包含z-index属性,这个例子中的元素按照如下顺序层叠(从底到顶顺序): 根元素的背景和边界 块级非定位元素按HTML中的出现顺序层叠 行内非定位元素按...,那么此时无论蓝的 z-index 设置的多大z-index: 999,蓝都位于红绿的下面;如果我们只更改红绿的z-index值,由于这两个元素都在父元素first-box产生的层叠上下文中,此时谁的z-index

73520

CSS 中重要的层叠概念

某个元素可能覆盖了其他元素也可能被其他元素覆盖; ?...,处理层叠只考虑子元素,这里类似于BFC 每个层叠上下文是自包含的:元素的内容发生层叠后,整个该元素将会在父级叠上下文中按顺序进行层叠 2....除了我们常用的横坐标和纵坐标, 盒模型元素还可以沿着"z 轴"层叠摆放, 他们相互覆盖, z 轴顺序就变得十分重要。...; 参见Codepen - 普通情况 那么没有元素包含z-index属性,这个例子中的元素按照如下顺序层叠(从底到顶顺序): 根元素的背景和边界 块级非定位元素按HTML中的出现顺序层叠 行内非定位元素按...的大,那么此时无论蓝的 z-index 设置的多大 z-index:999,蓝都位于红绿的下面;如果我们只更改红绿的z-index值,由于这两个元素都在父元素 first-box产生的层叠上下文中,此时谁的

64730

从box-sizing:border-box属性入手,来了解盒模型

box-sizing属性用于更改用于计算元素的宽度和高度默认的CSS盒子模型,可以使用此属性来模拟不正确支持CSS盒子模型规范的游览器行为。...内容框是框内容显示的区域--包括框内的文本内容,以及表示镶嵌子元素的其他框;             ②padding表示一个CSS框内边距--这一层位于内容框的外边缘与边界的内边缘之间;            ...③border即CSS框的边界是一个分割层,位于内边距的外边缘以及外边距的内边缘之间;             ④margin即外边距代表CSS框周围的外部区域。...使该容器在它的父容器内居中显示: margin:0 auto;                 那么最终呈现的效果是:父容器在最小和最大宽度限制内,它将填满整个视口宽度;父容器超过1280px宽度...因此,父容器宽度缩小到小于图像的宽度,图像会一起缩小。

1.5K20

从box-sizing:border-box属性入手,来了解盒模型

box-sizing属性用于更改用于计算元素的宽度和高度默认的CSS盒子模型,可以使用此属性来模拟不正确支持CSS盒子模型规范的游览器行为。...内容框是框内容显示的区域–包括框内的文本内容,以及表示镶嵌子元素的其他框; ②padding表示一个CSS框内边距–这一层位于内容框的外边缘与边界的内边缘之间;...③border即CSS框的边界是一个分割层,位于内边距的外边缘以及外边距的内边缘之间; ④margin即外边距代表CSS框周围的外部区域。...③display:grid–给出一种简单实现CSS网络系统的方式,而在传统它依赖于一些棘手难以处理的CSS网络框架。...因此,父容器宽度缩小到小于图像的宽度,图像会一起缩小。

1.3K10

如何使用Flexbox和CSS Grid,实现高效布局

CSS 浮动属性一直是网站上排列元素的主要方法之一,但是实现复杂布局,这种方法不总是那么理想。...在不久的将来, CSS Grid 布局获得完整的浏览器支持,设计人员就能够利用每个 CSS 组合的优势,来创建最有效和最有趣的布局设计。...Grid 模板区域 CSS Grid 的方便之处在于,可以指定模板区域,这也使得定义布局变得非常直观。采取这种方法,网格的区域可以命名并引用位置项。...,主区域内容位于右侧,如果需要,也可以轻松更改顺序。...grid-column-end: 4; grid-row-start: 1; grid-row-end: 2; background-color: #d5c9e2; } 也可以使用简写,起始值和结束值位于同一行

3.4K10

AngularDart4.0 指南- 表单 顶

每个input元素都有一个ngControl指令,Angular表单需要用这个指令在表单注册控件。 如果您现在运行应用程序并更改每个英雄model属性,表单可能会显示如下: ?...靠近表单顶部的诊断确认所有的更改都反映在model中。 从模板中删除诊断绑定,因为它已经达到了目的。 根据控制状态给出视觉反馈 使用CSS和类绑定,您可以更改表单控件的外观以反映其状态。...有些开发人员希望仅在用户进行无效更改时显示消息。 控件是“原始的”隐藏消息实现了这个目标。 您向表单添加一个“清除”按钮,您会看到此选项的重要性。...对你来说,这很简单: 在(增强的)表单元素定义一个模板引用变量。 在多处的按钮中引用该变量。 显示Model(可选) 提交表单目前没有视觉效果。 如预期的演示。...您单击编辑按钮,该表消失,并且可编辑的表单重新出现。 概要 Angular表单为数据修改,验证等提供支持。

17.4K30

手写原生代码专题 | 图片拖拽效果(一)

三、拖拽相关知识复习 在练习前,我们先复习下和拖拽相关的几个API事件,在某个元素被拖动,会按照顺序触发以下事件: dragstart(按住鼠标不放,刚开始拖动元素,就会触发 dragstart 事件...) drag(dragstart 事件触发后,只要元素还在被拖动,就会持续触发 drag 事件,类似 mouseover,随着鼠标移动而不断触发) dragend(拖动元素的动作停止即松开鼠标,...1、编写HTML代码 html代码文件比较简单,我们依次创建5个div方格,并将被拖动的图片元素容器初始化放置在第一个方格内,并在元素添加可拖动属性 draggable 值为 true,表示此元素可被拖动...接下来我们分别来定义相关事件函数, dragstart :图片目标刚被拖动,我们为元素添加灰色的粗边框属性 .hold,并将当前此元素的容器背景div隐藏,这里使用样式 invisible。...dragOver 函数:阻止浏览器的默认行为;元素离开目标位置 dragLeave,我们需要将当前元素的样式更改为原始的样式 empty;最后定义 dragDrop 函数,用户在目标位置放置拖动的图片元素

2.2K30

浏览器解析 CSS 样式的过程

优先级与多个CSS声明中任意一个声明的优先级相等的时候,CSS 中最后的那个声明将会被应用到元素。 在下面的示例中,div 将具有蓝色背景。...在本节中,我们将讨论以下 CSS 布局概念: 格式化上下文(FC):有许多类型的格式化上下文,其中大多数 Web 开发人员通过更改 display 元素的值来调用。...从这里开始,浏览器遵循与第一个示例相同的布局过程——但是它确保任何内联内容的内联和块的起始位置都位于浮动所占用的约束空间之外。 ? 浏览器继续沿着树向下移动并克隆节点,它将越过约束空间的块位置。...solid black; } button:hover { background: teal; color: black; } 我们在这里添加的是一个伪类,它告诉浏览器在用户悬停在按钮更改按钮的背景和文本颜色...浏览器不断跟踪各种输入,这些输入正在移动,它会经历称为命中测试的过程。 对于此示例,该过程如下所示: ? 用户将鼠标移到按钮

1.6K00

关于 CSS margin,一些让你模糊的点

margin 重叠意味着,一个有底部margin的标题后面跟着一个有顶部 margin 的段落,它们之间就不会出现较大的空白。...两个 margin 发生重叠,它们将组合在一起,两个元素之间的空间取较大的一个。 较小的 margin 在较大的里面。...margin会随着父节点的任何一边的margin相互重叠,从而最终位于父节点的外部。...如果出于语义目的而对元素进行包装,但这些元素不显示在屏幕,那么你可能不希望它们在显示中引入大的 margin。web主要是文本,这很有意义。...百分比 margin 当你在CSS中使用百分比的时候,它必须是某个元素的百分比。使用百分比设置的 margin(或 padding)始终是父元素内联大小(水平写入模式下的宽度)的百分比。

1.3K20

关于css margin,你需要知道的一切

margin 重叠意味着,一个有底部margin的标题后面跟着一个有顶部 margin 的段落,它们之间就不会出现较大的空白。...两个 margin 发生重叠,它们将组合在一起,两个元素之间的空间取较大的一个。 较小的 margin 在较大的里面。...margin会随着父节点的任何一边的margin相互重叠,从而最终位于父节点的外部。...如果出于语义目的而对元素进行包装,但这些元素不显示在屏幕,那么你可能不希望它们在显示中引入大的 margin。web主要是文本,这很有意义。...百分比 margin 当你在CSS中使用百分比的时候,它必须是某个元素的百分比。使用百分比设置的 margin(或 padding)始终是父元素内联大小(水平写入模式下的宽度)的百分比。

1.3K40

CSS(初级)笔记

{ text-decoration:underline; } max-hright display:none;和visibility:hidden; visibility:hidden可以隐藏某个元素...,但隐藏的元素仍需占用与未隐藏之前一样的空间 更改内联元素和块元素 display:inline; display:block; Position(定位) static HTML 元素的默认值,即没有定位...重叠的元素 z-index属性指定了一个元素的堆叠顺序 一个元素可以有正数或负数的堆叠顺序 overflow 属性用于控制内容溢出元素显示的方式。 值 描述 visible 默认值。...以下实例选取了所有位于 元素后的第一个 元素: div+p { background-color:yellow; } 后续兄弟选择器 后续兄弟选择器选取所有指定元素之后的相邻兄弟元素...以下实例选取了所有 元素之后的所有相邻兄弟元素 : div~p { background-color:yellow; } div~*:匹配全部

1.1K30

Web 自动化实战经验硬核总结

匹配最后一个标签 3. xpath 与 css 的对比 4. xpath 与 css 更详细示例对比 直接子元素 XPATH 中的直接子元素是使用“/”定义的,而在 CSS ,它是使用“>”定义的...XPATH://div/input CSS: div>input 后代元素 如果一个元素在另一个元素的内部(子元素或者孙元素),则它在 XPATH 中使用“//”定义,而在 CSS 中仅使用空格定义...XPATH://input[@class="s_ipt"] CSS: input.s_ipt 弟弟元素:after-sibling 继兄弟 这对于表单元素非常有用,即页面中位于同一父节点内的下一个相邻元素...页面中位于同一父节点内的上一个相邻元素 XPATH://a[@name='tj_baike']/berfore-sibling::a CSS:无法实现 父节点元素 页面中位于一个节点的上级元素 XPATH...']/a[last()] CSS: div#u1 a:last-child 第二个子元素 XPATH: //div[@id='u1']/a[2] CSS: div #u1 a:nth-child(2)

93120

CSS魔法堂:display:none与visibility:hidden的恩怨情仇

;而父元素的display为none,子元素的display必定为none,因此元素也没有机会位于事件捕获或冒泡阶段的路径路径,因此display:none的元素无法响应事件。...6.不耽误form表单提交数据 虽然我们无法看到display:none的元素,但表单提交依然会将隐藏的input元素的值提交上去。...对display的变化不感冒 详情请参考CSS魔法堂:Transition就这么好玩 9.display变化时将触发reflow 撇开display:none,我们看看display:block表示元素位于...3.collapse  用于表格子元素(如tr,tbody,col,colgroup)时效果和display:none一样,用于其他元素则效果与visibility:hidden一样。...2.和display:none一样无法获得焦点 3.可在冒泡阶段响应事件 由于设置为visibility:hidden的元素其子元素可以为visibility:visible,因此隐藏的元素有可能位于事件冒泡的路径因此下面代码中

1.4K31

Interection Observer如何观察变化

所有测试的目的是检测目标元素何时以25%的增量向上滚动通过视口。每次增加,都会应用CSS类来更改元素的背景颜色。换句话说,每个元素都应用了DOM修改,这将触发重绘。...这将调整根元素的大小,使其比目标元素高。再次,当上下滚动,目标元素可能位于元素内部。...demo3[4] 这个示例检测粘性元素何时位于滚动容器顶部,然后给其添加一个css类。这是通过在给观察者特定的rootMargin利用DOM的一个有趣的特性来实现的。...该div将被设置为粘性元素并充当容器。用于根据粘性状态设置样式和更改元素元素是class为sticky-content的div及其子元素。...同样,您几乎可以在粘性内容div中做任何您想做的事情。在此demo中,粘滞状态处于活动状态,在延迟的过渡中会出现一个隐藏的章节符号。

2.5K20
领券