定位的作用1:
让盒子自由地在某个盒子内移动位置或者固定屏幕中的某个位置,并且可以压住其他盒子。
定位 = 定位模式 + 边偏移
定位模式用于指定一个元素在文档中的定位方式。边偏移则决定了该元素的最终位置。
定位模式:
position:static、relative、absolute、fixed
静态定位static就是默认的方式,标准流
相对定位(自恋型定位):
1.相对于自身原来的位置进行边偏移
2.不脱标,原来在标准流的位置继续占有
3.最典型的应用是给绝对定位当爹
绝对定位(重要):
1.如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位(Document文档)
2.如果祖先元素有定位(relative、absolute、fixed),则以最近一级的有定位的祖先为准。
3.绝对定位不占有原先位置(脱标)
子绝父相:子元素使用绝对定位,父元素使用相对定位
1.子采用绝对定位,不会占有位置,可以放到父盒子的任意一个位置,不会影响其他兄弟盒子
2.父盒子需要加定位限制子盒子在父盒子内显示
3.父盒子布局时需要占有位置,因此父盒子只能是相对定位
固定定位fixed(重要):
1.以浏览器的可视窗口为基准,和父元素没关系
2.不随滚动条滚动而滚动
3.固定定位不占有原先的位置,也是脱标的,可以看作是特殊的绝对定位。
固定定位定位小技巧:固定在版心右侧位置
1.让固定定位的盒子left:50% 走到浏览器可视区的一半位置
2.让固定定位的盒子margin-left:版心宽度一半的距离
粘性定位(了解)
定位叠放次序:
绝对定位盒子实现居中:
定位特殊特性:
1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度
2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小
3.浮动元素、绝对定位(固定定位)元素不会触发外边距塌陷的问题
4.绝对定位会完全压住盒子,而浮动会压住盒子,但不会压住盒子的文字(浮动最初的目的就是让文字环绕住盒子)。
元素的显示与隐藏:
display:none;隐藏元素后不再占有原来的位置
display:block;
visibility:hidden;隐藏后仍占有原来的位置
visibility:visible;
overflow: 对溢出盒子的文字的处理