前端埋点框架设计(前端埋点框架设计图)

前端埋点框架设计(前端埋点框架设计图)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> 

讯享网

​CSS 提供了三种传统布局方式(简单说,就是盒子如何进行排列顺序):
在这里插入图片描述
讯享网

1.普通流(标准流)
2.浮动
3.定位

这三种布局方式都是用来摆放盒子的,盒子摆放到合适位置,布局自然就完成了。

注意:实际开发中,一个页面基本都包含了这三种布局方式,合理的利用三种方式搭配然后组合页面进行页面的布局调整 。

所谓的标准流: 就是标签按照规定好默认方式排列,就是按照这个元素本身给一些样式,让他直接在原有的文档流中进行展示

昨天已经了解了这个块级元素和行内元素的区别了:

以上都是标准流布局,标准流是最基本的布局方式,就是说在文档中去操作布局方式,进行调整。

​总结: 有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。 因为浮动可以改变元素标签默认的排列方式,可以想象成文档流是1楼,如果进行了浮动后,自动到2楼的位置,这个时候就已经脱离了1楼可以进行样式调整.

浮动最典型的应用:可以让多个块级元素一行内排列显示。

​网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。

​float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

加了浮动之后的元素,会具有很多特性,需要我们掌握的.

1、浮动元素会脱离标准流(脱标:浮动的盒子不再保留原先的位置),例如说,父级元素没有设置高,高度完全是由这个子元素的高度撑起来的,那么这个时候如果有子元素,浮动了,那么父元素的大小也会受到影响

2、浮动的元素会一行内显示并且元素顶部对齐。其实这么说也不准确,尤其是同级的上一个子元素如果不是浮动的,还在标准流中的时候,那么这个你设置的浮动对象可能就是在当前的位置浮动起来,并不会浮动到标准流的右侧。

注意:
​浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
3、浮动的元素会具有行内块元素的特性,但是是可以设置宽和高的
4、浮动元素的大小根据内容来决定
​5、浮动的盒子·是没有缝隙的
6、浮动元素经常和标准流父级搭配使用
为了约束浮动元素位置, 我们网页布局一般采取的策略是:先用标准流父元素排列上下位置, 之后内部子元素采取浮动排列左右位置.

1、浮动和标准流的父盒子搭配。
先用标准流的父元素排列上下位置, 之后内部子元素采取浮动排列左右位置
2、一个元素浮动了,理论上其余的兄弟元素也要浮动。
一个盒子里面有多个子盒子,如果其中一个盒子浮动了,其他兄弟也应该浮动,以防止引起问题。

浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流.

​由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子。

清除浮动的本质是清除浮动元素造成的影响:浮动的子标签无法撑开父盒子的高度

注意:

如果父盒子本身有高度,则不需要清除浮动
清除浮动之后,父级就会根据浮动的子盒子自动检测高度。
父级有了高度,就不会影响下面的标准流了

其实仔细想一想,为什么要清除浮动其实就是想解决这个元素浮动起来后,父级就会受到影响,就是因为他的子元素都是脱离了他。

那清除浮动也就有很多的方式了
1.增加父元素的高度
你想解决子元素对父元素的影响问题,也可以直接给父元素设置一些样式内容

讯享网
 

之前
在这里插入图片描述
增加宽度之后
在这里插入图片描述

讯享网
 

之前
在这里插入图片描述
清除浮动之后
在这里插入图片描述
2.使用伪元素进行clear

讯享网
 

其实这个的原理就是说在outer的子内容中增加一个新伪的子节点,然后在content属性中放置一个空的内容,然后clear: both,相当于也是在子节点中进行了清除

为什么需要清除浮动?
1.父级没高度。
2.子盒子浮动了。
3.影响下面布局了,我们就应该清除浮动了。

所谓定位,简单的来说就是将盒子定在某一个位置。所以定位其实也是按照规则进行摆盒子,不要想的太复杂其规则为:
定位 = 定位模式 + 边偏移 。

1.absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
2.fixed 生成固定定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
3.relative 生成相对定位的元素,相对于其正常位置进行定位。因此,“left:20” 会向元素的 LEFT 位置添加 20 像素。
3.static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)
4.sticky 粘性定位。根据用户的滚动位置进行定位。

属性 说明
position 指定元素的定位类型。
right 定义了定位元素右外边距边界与其包含块右边界之间的偏移。
top 定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。
bottom 定义了定位元素下外边距边界与其包含块下边界之间的偏移。
left 定义了定位元素左外边距边界与其包含块左边界之间的偏移。
什么是文档流?

将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流。

只有三种情况会使得元素脱离文档流,分别是:浮动、绝对定位和固定定位。

HTML 元素默认情况下的定位方式为 static(静态)。

静态定位的元素不受 top、bottom、left 和 right 属性的影响。

position: static; 的元素不会以任何特殊方式定位;它始终根据页面的正常流进行定位。

1、初始未定位

讯享网

在这里插入图片描述
2、我们修改first元素的position属性:

 

在这里插入图片描述

虚线是初始的位置空间,现在看明白了吧,相对定位相对的是它原本在文档流中的位置而进行的偏移,而我们也知道relative定位也是遵循正常的文档流,它没有脱离文档流,但是它的top/left/right/bottom属性是生效的,可以说它是static到absoult的一个中间过渡属性,最重要的是它还占有文档空间,而且占据的文档空间不会随 top / right / left / bottom 等属性的偏移而发生变动,也就是说它后面的元素是依据虚线位置( top / left / right / bottom 等属性生效之前)进行的定位,这点一定要理解。

那好,我们知道了top / right / left / bottom 属性是不会对relative定位的元素所占据的文档空间产生偏移,那么margin / padding会让该文档空间产生偏移吗?答案是肯定的,我们一起来做个试验吧:

3、添加margin属性:

讯享网

在这里插入图片描述

设置margin:20px后:

对比一下,是不是就很清晰了,我们先将first元素外边距设为20px,那么second元素就得向下偏移40px,所以margin是占据文档空间!

相对定位总结:
相对定位相对的是它原本在文档流中的位置而进行的偏移
元素不会脱离文档流,原来在标准流的区域继续占有,后面的盒子仍然以标准流的方式对待它

所谓绝对定位是元素在移动位置时,是相对于它祖先元素来说的。

使用absoult定位的元素脱离文档流后,就只能根据祖先类元素(父类以上)进行定位,而这个祖先类还必须是以postion非static方式定位的, 举个例子,a元素使用absoulte定位,它会从父类开始找起,寻找以position非static方式定位的祖先类元素(注意,一定要是直系祖先才算哦~),直到标签为止,这里还需要注意的是,relative和static方式在最外层时是以标签为定位原点的,而absoulte方式在无父级是position非static定位时是以作为原点定位。和元素相差8px左右。原因是body有一个浏览器提供的默认样式margin:8px;

我们来看下效果:

添加absoulte属性:

 

在这里插入图片描述

绝对定位一般和相对定位一起使用(子绝父相)

示例代码:

讯享网

在这里插入图片描述

从运行结果上可以看出,使用绝对定位,如果没有父元素则是相对于html进行定位,如果有父元素,父元素需要使用相对定位,子元素使用绝对定位,子元素则会相对于父元素进行定位。并且使用绝对定位,元素会脱离文档流,后面的元素会自动进行填补。

绝对定位总结:
绝对定位不会保留原来的位置(脱离文档流),那后面盒子就会往上占了它的位置;
如果没有祖先元素或者祖先元素没有定位,则以浏览器为基准定位;
如果祖先元素有定位(可以是相对、绝对或者固定定位),则以最近的已经定位的祖先元素为基准移动位置。
子绝父相 —— 虽然父元素的定位可以是相对、绝对或者固定定位,但是绝对定位和固定定位都会脱离标准流,所以我们实际开发中,一般都使用相对定位,这就是常说的子绝父相。
5、固定定位 fixed(重点)
固定定位相对于浏览器窗口,脱离文档流,使用fixed的元素不会随窗口的滚动而滚动

示例代码:

 

在这里插入图片描述

使用固定定位之后,元素会脱离标准文档流。

使用固定定位之后,在滚动浏览器页面时,元素不会随着窗口的滚动而滚动。

position: sticky; 基于用户的滚动位置来定位。

粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。

它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix (查看以下实例)。

示例代码:

讯享网

在这里插入图片描述

粘性定位总结:
以浏览器的可视窗口为参照点移动元素(固定定位特点)
粘性定位占有原先的位置(相对定位特点)
必须添加 top 、left、right、bottom 其中一个才有效
有时候设置会发现粘性定位不起作用,又找不到原因,可以看看有没有以下几点原因:

父元素不能overflow:hidden或者overflow:auto属性。
必须指定top、bottom、left、right4个值之一,否则只会处于相对定位
父元素的高度不能低于sticky元素的高度
sticky元素仅在其父元素内生效
7、重叠元素
在对元素进行定位时,它们可以与其他元素重叠。

z-index 属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面)。

元素可以设置正或负的堆叠顺序。

示例代码:

 

在这里插入图片描述

注意:

z-index 仅能在定位元素上生效(重点)
如果两个元素为父子关系,则z-index也不生效
总结:
position 属性规定应用于元素的定位方法的类型。

定位模式 是否脱离文档流 移动位置 是否常用
static 静态定位 否 不能使用边偏移 很少
relative 相对定位 否(占有原来位置) 相对于自身位置偏移 常用
absolute 绝对定位 是(不占有原来位置) 带有定位的父级 常用
fixed 固定定位 是(不占有原来位置) 浏览器可视区 常用
sticky 粘性定位 否(占有原来位置) 浏览器可视区 偶尔用
我们学习定位时,一定要记住 相对定位、固定定位、绝对定位 两个大的特点:
是否占有位置(是否脱离文档流)
以谁为基准进行移动位置。
学习定位,重点要学会子绝父相,这是开发中最常用的。

小讯
上一篇 2025-04-27 22:16
下一篇 2025-05-14 07:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/163009.html