写定位的时候如果不给定位,可以设置left:0、top:0;
一、定位
如果页面出现错误,出现很多margin(不是自己写的),那就是*{}清除内外边距附近的问题
定位的概念是什么?
以不同的方式,把盒子定在某一个位置。
1.静态定位(相当于标准流,很少用)
(静态定位有和没有都一样)
定位组成
1:定位的概念是什么?
以不同的方式,把盒子定在某一个位置。
2:定位由哪两部分属性构成?各自的作用是什么?
定位= 定位模式 + 边偏移
定位模式:用于指定元素的定位方式,通过position 属性设置
边偏移:根据定位模式确定最终位置,通过top、bottom、left、right 四个属性设置
标准流可以从上向下摆放块级盒子,从左向右摆放行内盒子;
浮动可以从左向右摆放多个块级盒子,盒子之间没有缝隙并且顶端对齐;
定位可以让盒子:
1. 摆放在另一个盒子中的任意位置;
2. 固定在屏幕中的某个位置;
3. 可以压住其他盒子。
相对定位:相对自身位置定位,不脱标。
定位由哪两部分属性构成?各自的作用是什么?
定位= 定位模式 + 边偏移
定位模式:用于指定元素的定位方式,通过position 属性设置
边偏移:根据定位模式确定最终位置,通过top、bottom、left、right 四个属性设置
2.相对定位
1. 相对与自己进行定位
2. 占位置
1:静态定位的作用是什么?静态定位使用边偏移属性有效吗?开发中用得多吗?
静态定位 static 是元素的默认定位方式,表示没有定位的意思,类似于:border 属性的 none;
静态定位按照标准流特性摆放位置,它没有边偏移,使用边偏移没有效果;
静态定位在布局时几乎不用。
2:相对定位(relative)的语法是什么?:position: relative;
3. 绝对定位
绝对定位(absolute)-没有父级或者父级无定位情况
绝对定位(absolute)-父级有定位情况
在布局时,让盒子相对父级以上的元素定位好吗?
不好,一旦出现问题,不好排查。
可以将父级元素设置为相对定位(relative),因为相对定位的盒子:不会脱标 + 不设置边偏移位置不会变化。
绝对定位脱标的不占有原来位置
相对定位占位置(父元素最好定义相对)
父元素如果设置绝对定位就不占位置,后边的盒子会占有父盒子的位置,因为父元素必须占有位置,所以父元素必须用相对定位。
绝对定位不占位置(脱标)
子元素用绝对占位不用相对定位,因为相对定位是根据自己的位置来移动。
子绝父相
1:什么是子绝父相?
子级使用绝对定位,父级使用相对定位
父级使用相对定位:
不脱标,在标准流中占据空间
绝对定位的儿子们都参考父亲进行定位
子级使用绝对定位:
脱标,不影响其他元素的摆放
自己则相对父级任意摆放位置
子绝父相不是永远不变的,如果父元素不需要占有位置,子绝父绝也会遇到。
2. 定位方式 —— 固定和粘性
固定定位是特殊的绝对定位
固定定位小技巧-固定到版心右侧
浏览器宽度的一半:width:50%然后再用marin-left往左移动
往右移动为负数,并且还要算上自身的宽(可以通过增加5px来把版心隔开)
固定到版心右侧的实现步骤是什么?
left: 50%;+margin-left: 版心宽度的一半
粘性定位(sticky)(了解)
1:定位的叠放顺序的应用场景是什么?
没有设置z-index时,两个设置定位的盒子相遇时,根据盒子标签的前后决定谁压谁,下边的压住上边(了解,不用记)
在使用定位时,如果出现盒子重叠的情况,可以使用z-index 控制盒子的前后顺序。
边偏移和z-index只有定位才有。
(x、y、z轴,定位相当于z轴:了解)
如果当前子盒子想压住下边的盒子,但是设置了z-index不管用,就去提升子盒子的父盒子的z-index就可以压住了
水平居中
脱标不占位置
扩展(重要)
行内元素添加绝对或固定定位后,可以直接设置宽度和高度吗(浮动也可以)
块级元素添加绝对或固定定位后,如果不给宽度和高度,大小是怎么计算的?
默认是实际内容的大小
3:脱标的盒子会触发外边距合并吗?
脱标的盒子(浮动、绝对定位、固定定位)不会触发外边距合并。
绝对定位和浮动哪一个会压住下面标准流的文字?为什么?
绝对定位会压住文字,浮动不会;
浮动最开始的设计是为了实现文字环绕效果的。
浮动的盒子不会压住文字和图片,因为浮动产生的本质是为了图文混排
但是绝对定位和固定定位会完全压住文字和图片,因为它们是完全脱标的。
网页布局总结
一个完整的网页,是由标准流、浮动、定位一起完成布局的,每个都有自己的专门用法。
1.标准流
①块级元素上下排列/行内元素或行内块元素左右排列;
②垂直的块级盒子显示就用标准流布局。
2.浮动
①让多个块级元素一行显示或者左右对齐盒子;
②多个块级盒子水平显示就用浮动布局。
3.定位
①定位最大的特点是有层叠的概念,就是可以让多个盒子前后叠压来显示;
②如果元素自由在某个盒子内摆放就用定位布局。
visibility 显示隐藏元素(大厂校招题经常出现)
Visibility占位置