css中常见的五种定位方法

简介: CSS中的定位在页面布局中,我们经常会对一些盒子调整位置,普通的浮动或者一些其他方法,但是这些方法要么达不到我们想要的效果要么就是实现起来太复杂了。今天我们要讲到的定位就可以很好的解决这个问题。

CSS中的定位

在页面布局中,我们经常会对一些盒子调整位置,普通的浮动或者一些其他方法,但是这些方法要么达不到我们想要的效果要么就是实现起来太复杂了。

今天我们要讲到的定位就可以很好的解决这个问题。

技术发展就是这样的:出现什么问题,过不了多久就会出现新的解决语法。

position(定位)

position属性用来设置元素的定位方式,有以下几种:

  • static:默认值,元素在正常的流中,top、right、bottom、left和z-index属性无效。
  • relative:元素在正常的流中,相对于其在正常流中的位置进行定位,top、right、bottom、left和z-index属性有效。
  • absolute:元素脱离正常的流,相对于其最近的已定位祖先元素进行定位,如果没有已定位的祖先元素,则相对于body元素进行定位,top、right、bottom、left和z-index属性有效。
  • fixed:元素脱离正常的流,相对于浏览器窗口进行定位,top、right、bottom、left和z-index属性有效。
  • sticky:当页面滚动或者改变后,该盒子未超出目标区域,它的表现就像absolute;超出目标区域之后,它就表现为fixed定位。

static

static是默认值,元素在正常的流中,top、right、bottom、left和z-index属性无效。

.box{
    position: static;
}
复制代码

relative

relative是相对定位,元素在正常的流中,相对于其在正常流中的位置进行定位,top、right、bottom、left和z-index属性有效。

.box{
    position: relative;
    top: 100px;// 距离顶部100px
    left: 100px;// 距离左边100px
}
复制代码

absolute

absolute是绝对定位,元素脱离正常的流,相对于其最近的已定位祖先元素进行定位,如果没有已定位的祖先元素,则相对于body元素进行定位,top、right、bottom、left和z-index属性有效。

.box{
    position: absolute;
    top: 100px;// 距离顶部100px
    left: 100px;// 距离左边100px
}
复制代码

这个属性值定位的参考点是最近的已定位的祖先元素,如果没有已定位的祖先元素,则相对于body元素进行定位。

fixed

fixed是固定定位,元素脱离正常的流,相对于浏览器窗口进行定位,top、right、bottom、left和z-index属性有效。

.box{
    position: fixed;
    top: 100px;// 距离顶部100px
    left: 100px;// 距离左边100px
}
复制代码

不管这个页面如何滚动(改变),这个盒子都会固定在浏览器窗口的某个位置。

sticky

sticky是粘性定位,它的特性是当页面滚动或者改变后,该盒子未超出目标区域,它的表现就像absolute;超出目标区域之后,它就表现为fixed定位。

.box{
    position: sticky;
    top: 100px;// 距离顶部100px
    left: 100px;// 距离左边100px
}
复制代码

这段代码就是让box盒子在滚动到距离上面100px或者左边100px的时候,就固定在浏览器窗口的这个位置。

z-index(层叠顺序)

z-index属性用来设置元素的层叠顺序,它的值是一个整数,数值越大,层叠顺序越靠上。

.box{
    position: relative;
    z-index: 1;
}
复制代码

z-index可以设置为负值,但是不建议这么做。

总结

  • 在使用绝对定位的时候,一定要注意定位的参考点,如果没有已定位的祖先元素,则相对于body元素进行定位。(子绝父相)
  • 在使用sticky粘性定位的时候,必须使用top,botton,left,right中的一个或者多个属性,否则不会生效。
  • 使用固定定位的时候,在其父级元素中,如果有overflow:hidden;overflow:auto;overflow:scroll;这些属性,那么这个盒子就会被裁剪掉,所以在使用固定定位的时候,一定要注意这个问题。
  • 父级元素的高度如果没有设置,那么子元素的固定定位是不会生效的,所以在使用固定定位的时候,一定要注意父级元素的高度。(父元素高度 > 子元素高度)
  • 固定定位的生效范围只在父元素内。


相关文章
|
1月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
236 1
|
4月前
|
自然语言处理 前端开发 JavaScript
Playwright系列课(2) | 元素定位四大法宝:CSS/文本/XPath/语义化定位实战指南
本文是Playwright系列第二课,详解元素定位四大核心技术:CSS选择器、文本定位、XPath和语义化定位,结合实战演示各方法应用场景。重点解析Playwright智能定位器(Locator)的独特优势——自动等待与重试机制,通过预检元素可操作性(可见/可点击)有效规避网络延迟导致的脚本失效,显著提升自动化测试稳定性。
|
前端开发
css页面顶部底部固定,中间自适应几种方法
【10月更文挑战第22天】css页面顶部底部固定,中间自适应几种方法
|
缓存 监控 前端开发
CSS 提高性能的方法
【10月更文挑战第24天】在实际应用中,还需要根据具体项目的特点和需求,灵活选择和组合这些方法,不断进行优化和改进。同时,随着技术的不断发展,也需要持续关注新的性能优化技巧和最佳实践,以保持在性能优化方面的领先地位。你对 CSS 性能优化还有哪些深入的思考和经验呢?欢迎进一步交流和分享。
|
前端开发 容器
CSS 中几种常用的换行方法
CSS 中几种常用的换行方法
372 1
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
101 2
|
前端开发
|
前端开发 JavaScript
jQuery css() 方法
jQuery css() 方法
79 3
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
97 0
|
前端开发 UED
css性能优化的方法
css性能优化的方法
154 0

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    128
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    141
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    115
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    87
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    212
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    236
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    129
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    65
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    123
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    164