CSS基础知识总结之定位详解

前言

 day5主要讲述了定位

 其中包含,为什么需要定位及常用的定位模式


1、什么是定位?
 定位,是将盒子固定在某一个位置上,可以自由的漂浮在其他盒子之上
2、边偏移

2.1边偏移概念

 通过属性定义元素所在位置,向边上移动

2.2边偏移的属性,在CSS中通过,top,bottom,left,right四种属性定义边偏移

边偏移属性 示例 描述
top top: 80px 顶端偏移量,定义元素相对于其父元素上边线的距离
bottom bottom: 80px 底部偏移量,定义元素相对于其父元素下边线的距离
left left: 80px 左侧偏移量,定义元素相对于其父元素左边线的距离
ight right: 80px 右侧偏移量,定义元素相对于其父元素右边线的距离

 有定位的地方必有边偏移
3、定位的分类

3.1语法

选择器 { position: 属性值; }

3.2详细分类

语义
static 静态定位
relative 相对定位
absolute 绝对定位
fixed 固定定位

3.3相对定位(重点)

 相对 定位是元素相对于它原来所在标准流中的位置来说的,就是从原来的位置进行位置偏移
 相对定位的两个特点

  •  相对于原来的标准流中位置来移动的
  •  原来在标准流的区域继续占有,后面的盒子仍然以标准流的方式对待它

3.4绝对定位(重要)

 绝对定位是元素以带有定位的父级元素来移动位置 (拼爹型)
 完全脱标 —— 完全不占位置;
 父元素没有定位,则以浏览器为准定位(Document 文档).
 绝对定位,父亲有定位,以父亲为基础
 绝对定位的特点:(务必记住)
 绝对是以带有定位的父级元素来移动位置 (拼爹型) 如果父级都 没有定位,则以浏览器文档为准移动位置
 不保留原来的位置,完全是脱标的。
 因为绝对定位的盒子是拼爹的,所以要和父级搭配一起来使用。
 定位口诀:子绝父相

3.5固定定位(fixed)-重要

  •  固定定位,完全脱标,完全不占位置
  •  固定定位和父亲没有关系吗,不受父亲的影响

4、盒子层叠次序(z-index)

 在使用定位布局时,可能会出现盒子重叠的情况。
 加了定位的盒子,默认后来者居上, 后面的盒子会压住前面的盒子。
 应用 z-index 层叠等级属性可以调整盒子的堆叠顺序
 z-index 的特性如下:

  •  属性值:正整数、负整数或 0,默认值是 0,数值越大,盒子越靠上
  •  如果属性值相同,则按照书写顺序,后来居上
  •  数字后面不能加单位
  •  注意:z-index 只能应用于相对定位、绝对定位和固定定位的元素,其他标准流、浮动和静态定位无效
  •  效果图
    在这里插入图片描述

5、定位改变display属性
前面我们讲过, display 是 显示模式, 可以改变显示模式有以下方式:
可以用inline-block 转换为行内块
可以用浮动 float 默认转换为行内块(类似,并不完全一样,因为浮动是脱标的)
绝对定位和固定定位也和浮动类似, 默认转换的特性 转换为行内块。
一个行内的盒子,如果加了浮动、固定定位和绝对定位,不用转换,就可以给这个盒子直接设置宽度和高度等。
6、浮动元素,绝对定位(固定定位)元素都不会触发外边距合并的问题,盒子改变了浮动或者定位,就不会有垂直外边距合并的问题了
7、圆角矩形,分别设置矩形的四个角

7.1分别设置

border-top-left-radius:20px;
border-top-right-radius:20px;
border-bottom-right-radius:20px;
border-bottom-left-radius:20px;

7.2如果四个角值相同可以统一设置

border-top-left-radius:20px;
border-top-right-radius:20px;
border-bottom-right-radius:20px;
border-bottom-left-radius:20px;

7.3简写的形式

border-radius: 左上角 右上角  右下角  左下角;
/*圆角矩形*/
/*右上角*/
border-top-right-radius: 15px;
/*右下角*/
border-bottom-right-radius: 15px;

效果
在这里插入图片描述
7、小圆点效果
样式中代码

/*小圆点*/
		.circle {
			position: absolute;
			left: 50%;
			margin-left: -35px;
			bottom: 10px;
		    width: 70px;
			height: 13px;
			background-color:rgba(255,255,255,0.3);			
			border-radius: 7px;
		}
		/*小圆点样式*/
		.circle li {
			float: left;
			width: 8px;
			height: 8px;
			margin: 3px;
			background-color: #fff;
			border-radius: 50%;
		}

结构中代码

<!--小圆点-->
	<ul class="circle">
		<li></li>
		<li class="current"></li>
		<li></li>
		<li></li>
		<li></li>
	</ul>

效果图
在这里插入图片描述
8、定位总结

定位模式 是否脱标占有位置 移动位置基准 模式转换(行内块) 使用情况
静态static 不脱标,正常模式 正常模式 不能 几乎不用
相对定位relative 不脱标,占有位置 相对自身位置移动 不能 基本单独使用
绝对定位absolute 完全脱标,不占有位置 相对于定位父级移动位置 要和定位父级元素搭配使用
固定定位fixed 完全脱标,不占有位置 相对于浏览器移动位置 单独使用,不需要父级

注意:

  • 边偏移需要和定位模式联合使用,单独使用无效
  • top 和 bottom 不要同时使用
  • left 和 right 不要同时使用

完!欢迎评论区留言

发布了104 篇原创文章 · 获赞 72 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_42758288/article/details/103445007