首页 > 其他分享 >07-CSS中的定位

07-CSS中的定位

时间:2023-05-11 20:15:03浏览次数:28  
标签:定位 07 auto top 元素 文档 margin CSS

CSS 中的定位

HTML 页面的文档流

  1、标准文档流
     标准文档流指的是元素排版布局过程中,元素会默认自动从左往右,从上往下的流式排列方式
     当前面内容发生了变化,后面的内容位置也会随着发生变化

  2、留存弊端
     无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”
     显然标准流已经无法满足需求,这就要用到浮动
     以及某些元素会出现的特定区域,这就要用到定位

什么是定位?

  浮动可以让多个盒子一行没有缝隙排列显示,经常用于横向排列盒子
  定位则是可以让盒子自由的在某个盒子内移动位置或固定屏幕中的某个位置,并且可以压住其他盒子

定位的属性

  定位 = 定位模式 + 边偏移量
     定位模式:一个元素在文档中的定位方式
     边偏移量:决定该元素的最终位置

  1.是否占据原有空间(是否脱标) 2.以谁为参考系移动位置

定位模式 + 边偏移量

  position:
     static:  静态定位
     fixed:  固定定位
     sticky:  粘性定位
     relative: 相对定位
     absolute:   绝对定位

  top:
  bootom:
  left:
  right:

  1、static:  静态定位	没有脱离标准文档流
     一般的标签元素不加任何定位模式,都属于静态定位

  2、fixed:  固定定位	!!! 不保留原本占据的空间,脱离标准文档流
     相对于浏览器窗进行偏移并且不会随着滚动条进行滚动
  用途:
     1、网页右下角的 “返回顶部”
     2、顶部导航条

  3、sticky:  粘性定位	没有脱离标准文档流
      粘性定位可以被认为是相对定位和固定定位的混合
      以浏览器的可视窗口为参照系移动元素(固定定位特点)
      粘性定位占有原先的位置(相对定位特点)
      必需添加top、left、right、bottom中的一个才有效
  用途:
     当滚动条到达某一位置时,这个粘性定位的容器才不随滚动条移动而移动(吸顶效果)

  4、relative: 相对定位	 !!! 原本占据的空间依旧保留着,没有脱离标准文档流
     相对于该元素本身在标准文档流时的位置进行偏移,元素仍然保持未定位前的形状

  5、absolute:   绝对定位	!!! 不保留原本占据的空间,脱离标准文档流
     相对于已经设置定位属性的父元素的位置进行偏移,如果都没有就针对<body></body>

  	通常情况下和相对定位一起使用 --- 子绝父相
  用途:
     鼠标移入时照片放大效果
     二级菜单
     轮播图上的翻页按钮
     图片底部的标题
     关闭按钮

定位元素之包含块-参考系问题

  包含块是绝对定位的基础,包含块就是为绝对定位元素提供坐标,偏移和显示范围的参照物,
  即确定绝对定位的偏移起点和百分比 长度的参考;
     默认状态下,浏览器是一个大的包含块,所有绝对定位的元素都是根据窗口来定自己所处的位置和百分比大小的显示的,
     如果我们定义了包含元素为包含元素块以后,对于被包含的绝对定位元素来说,就会根据最接近的具有定位功能的上级包含元素来定位自己的显示位置

     定义元素为包含块:给绝对定位元素的父元素添加声明position:relative;
     如果我们的父素设置了position:absolute;那么子元素也会相对父元素来定义自己的位置

透明属性

  opacity : [0.0 - 1.0] 从0.0(完全透明)到1.0(完全不透明)
  该属性我们可以设置图片、文字、盒子模型等等的透明度
  IE9, Firefox, Chrome, Opera 和 Safari 都可以使用属性 opacity 来设置透明度
	面试题:区别?
  IE8 以及更早的版本使用滤镜 filter: alpha(opacity=x)   x 能够取的值从 0 到 100

定位元素层级关系

  z-index : auto | number

  检索或设置对象的层叠顺序
  auto:默认值
  number:无单位的整数值,可为负数, 默认为 0

  没有设置z-index时,最后写的对象优先显示在上层,设置后,数值越大,层越靠上
  z-index可以是负数,如果是负数,则遇到常规流、浮动元素,则会被其覆盖
  出现元素重叠时,要哪个元素在前,要哪个元素在后,通过z-index设置,值越大越靠前
  
  除了默认的定位模式,其他定位模式下都能生效

定位的特殊用法

  设置元素水平,垂直都居中

  方案一 (已知子元素尺寸,未知父元素尺寸)
     父元素: {
        position: relative;
     }
     子元素: {
        width: ___px;
     	height:___px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: - 子元素height/2 px
        margin-left: - 子元素width/2 px
     }

  方案二(子元素父元素尺寸都未知)
     父元素: {
        position: relative;
     }
     子元素: {
        position: absolute;
        margin: auto;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
     }

  为什么在这里设置 margin: auto; 又能实现元素水平垂直都居中呢?
     只有绝对定位的元素才可以,意思就是绝对定位之后如果设置了 margin: auto,
     那么 margin-top 和 margin-right 不再为0,而是 auto,
     同时需要设置 top,bottom,left,right为0 来找到父元素的位置,
     然后 margin: auto 会找到父元素的位置分配好上下左右外边距,从而实现水平垂直居中!

总结

  1、标准文档流
     元素会默认自动从左往右,从上往下的流式排列方式

  2、浮动
     可以让多个块级元素一行显示或者左右对齐盒子浮动

  3、定位
     定位最大的特点就是有层叠的概念,
     可以让多个盒子前后叠压来显示,但是每个盒子需要测量数值

标签:定位,07,auto,top,元素,文档,margin,CSS
From: https://www.cnblogs.com/fszj/p/17392082.html

相关文章

  • 06-CSS中的盒模型
    CSS中的盒模型什么是盒模型(BoxModel)?盒模型是css布局的基石,它规定了网页元素如何显示以及元素间相互关系可以把所有的HTML元素都看作是一个盒子,它包括:边距、边框、填充以及实际内容 Margin(外边距)-清除边框外的区域,外边距是透明的。 Border(边框)-围绕在内边距和内容......
  • 05-CSS中的浮动
    CSS中的浮动HTML页面的文档流1、标准文档流---面试题 标准文档流指的是元素排版布局过程中,元素会默认自动从左往右,从上往下的流式排列方式 当前面内容发生了变化,后面的内容位置也会随着发生变化2、留存弊端 无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div......
  • 04-CSS基础
    CSS基础什么是CSSCSS指层叠样式表(CascadingStyleSheets)WEB标准中的表现标准语言简单说就是如何修饰网页信息的显示样式目前推荐遵循的是W3C发布的CSS3.01998年5月21日由w3C正式推出的css2.1CSS的语法 由两个主要的部分构成:选择器,以及一条或多条声明 选择......
  • [NOIP2007 普及组] 奖学金
    [NOIP2007普及组]奖学金题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前\(5\)名学生发奖学金。期末,每个学生都有\(3\)门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩......
  • 【2023.05.07 模拟赛】T3 树数树
    Description牛牛有一棵\(n\)个点的有根树,根为1。我们称一个长度为\(m\)的序列\(a\)是好的,当且仅当:\(\foralli\in(1,m],\mathrm{a}_{\mathrm{i}}\)为\(\mathrm{a}_{\mathrm{i}-1}\)的祖先或\(\mathrm{a}_{\mathrm{i}-1}\)是\(\mathrm{a}_{\mathrm{i}}\)的......
  • CSS
    1.单位单位:px:如果我们将一个图片放大的话,我们会发现一个图片是有一个一个的小色块构成的,这一个小色块就是一个像素,也就是1px,对于不同的显示器来说一个像素的大小是不同的。百分比:也可以使用一个百分数来表示一个大小,百分比是相对于父元素来说的。em:基于字体大小的倍数 2.属性wi......
  • CSS :root的使用
    :root这个CSS伪类匹配文档树的根元素。对于HTML来说,:root表示<html>元素,除了优先级更高之外,与html选择器相同。所有主流浏览器均支持:root选择器,除了IE8及更早的版本。在声明全局CSS变量时:root会很有用。CSS变量(--*)带有前缀--的属性名,比如--example,表示的是带......
  • css
    css:级联样式表css定义:修饰网页(html在w3c中是结构化,css在w3c中就是表现化)修饰效果的种类:字体大小,颜色,高度,宽度等等css应用:一般用于对网页的效果进行修饰美化的工作css发展史1996发布css1.02010发布了css3.0沿用至今 ......
  • 基于EKF(拓展卡尔曼滤波器)与里程计算法的机器人定位的MATLAB程序
    基于EKF(拓展卡尔曼滤波器)与里程计算法的机器人定位的MATLAB程序使用EKF模型与里程计模型(Odometry)对机器人进行定位,定位的结果跟GPS定位的真实值作比较,验证两种算法的可行性。可以看出,EKF模型、里程计模型(Odometry)估计的误差变化趋势不同。EKF模型估计的误差总体趋势平稳,稳定在一定......
  • [GD32E507VET6]选错启动文件可能导致芯片上锁问题
    GD32E507VET6的启动文件选择startup_gd32e50x_cl.s如果选择的HD会导致DAP_Link不能使用,需要按住复位键点击下载,然后弹出错误,再松开按键点击下载就可以了。启动文件一定要选择正确!启动文件一定要选择正确!启动文件一定要选择正确! ......