CSS 定位布局

简介: CSS 定位布局

1、定位的作用
普通文档流中块元素垂直排列,行内元素水平排列。 浮动可以实现多个块级盒子在一行无缝排列显示。 定位能够让我们把一个元素从它原本在正常布局流中应该在的位置移动到另一个位置(自由的在某个盒子内移动位置或者固定在屏幕中的某个位置)。

2、定位的实现
使用定位需要指定一个元素在文档中的定位模式,配合设置【边偏移量】决定元素最终的显示及位置。

定位模式通过position属性来设置,以下为常用四种定位模式静态定位,相对对定位,绝对定位,固定定位。

边偏移定位元素的位置,使用top、right、bottom和left来描述。

通常水平位置通过left或right控制,垂直位置通过top或bottom控制。

位置属性

left:设置距离包含块左侧的距离

right:设置距离包含块右侧的距离

top:设置距离包含块顶部的距离

bottom:设置距离包含块底部的距离

取值

长度值:px/em等

百分比:相对于包含块计算

auto 默认值

允许使用负值

3、定位模式详解
3.1 相对定位

postion:relative;
相对于元素在正常的文档流中的位置移动它,把一个正常布局流中的元素从它的默认位置按坐标进行相对移动。 它原本所占的空间不会改变。

3.1.1 基础特性

不脱离文档流

提升元素层级

不定义偏移量时对元素基本没有影响

3.1.2 应用场景

通常作为定位父级配合绝对定位使用

3.2 绝对定位

postion:absolute;
没有定位父级时相对于HTML进行定位,有定位父级时相对于最近的定位父级进行定位。

3.2.1 基础特性

脱离文档流

提升元素层级

3.2.2 应用场景

通常配合绝对定位使用(父相子绝)结合实际案例,如焦点图中的分页,翻页,视频网站中的 vip标签等。

3.3 固定定位

postion:fixed;
元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会移动。

3.3.1 基础特性总结

脱离文档流

提升元素层级

3.3.2 应用场景

相对于窗口定位的元素如弹窗、跟随滚动的导航、侧边栏。

3.4 静态定位

postion:static;
表示“将元素放在文档布局流的默认位置,HTML 元素的默认值,即没有定位,遵循正常的文档流对象。

3.4.1 基础特性总结

静态定位的元素不会受到 top, bottom,left,right影响

3.4.2 应用场景

常用于重置定位属性

4、定位元素的层级顺序
元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素。 z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面或后面)。

取值

auto(默认值) 堆叠顺序与父元素相等

数值:拥有更高堆叠顺序(数值越大)的元素总是会处于堆叠顺序较低的元素的前面

总结

普通层,浮动层,定位层覆盖关系总结

提示:从父原则

5、实现盒子居中的方法
方法一:

实现思路:margin负值配合百分比。

方法二:

实现思路:left,right,top,bottom并用,配合margin:auto。

如果元素的四个边的位置是使用“top”、“right”、“bottom”和“left”来描述的,那么元素的“height”和“width”将隐式地由偏移量决定。 如果包含块是块级,则相对于包含块的边界即(包括padding),如果包含块是行级,则相对于包含块的内容区域。

注意:ie低版本不兼容!

6、定位对元素的影响
相对定位基本不改变元素本身的特性

绝对、固定定位

脱离文档流

提升元素层级

未定宽度的块元素适应内容

使行内元素生成块级框

对浮动高度塌陷问题,margin值叠加问题的不同表现

注意:定位并不是一种用来做主要页面布局的方式,主要用于管理和微调页面中的一个特殊项的位置

7、定位与浮动的区别对比
7.1 使元素脱离文档流的属性

float:left

float:right

postion:absolute

position:fixed

7.2 表现上的区别

浮动元素: 使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本、图片、表单标签依然会为这个元素让出位置,环绕在周围

定位元素: 使用position脱离文档流的元素,其他盒子完全无视它,包括元素内部的文本、图片、表单标签

总结:

不同点:浮动脱离文档流,不脱离文本流,定位元素既脱离文档流,又脱离文本流

相同点:宽高默认由内容撑开,生成块级框(可以设置width和height及所有盒模型属性等)

目录
相关文章
|
3天前
|
前端开发 容器
前端 css 经典:grid 栅格布局
前端 css 经典:grid 栅格布局
9 1
|
4天前
|
前端开发 容器
CSS 弹性布局,大厂意外流出
CSS 弹性布局,大厂意外流出
|
6天前
|
前端开发 UED
【专栏:HTML与CSS实战项目篇】创建一个具有复杂布局的电商详情页
【4月更文挑战第30天】构建复杂布局的电商详情页涉及页面结构规划、样式设计和交互效果实现。首先规划顶部导航栏、商品图片展示区、商品信息区、用户评价区和相关商品推荐区。在样式设计上,注重色彩搭配、字体选择、布局与间距及图片处理。交互效果包括图片放大、添加到购物车按钮、滚动监听和评论互动,以提升用户体验。实际开发中需考虑跨设备兼容性和用户体验优化。
|
6天前
|
编解码 缓存 前端开发
【专栏:HTML与CSS移动端开发篇】移动端网页布局与适配
【4月更文挑战第30天】本文探讨了如何使用HTML和CSS优化移动端网页布局与适配,强调响应式设计、灵活布局和媒体查询的重要性。针对移动设备的屏幕尺寸、操作方式、网络速度和性能差异,提出了断点选择、触摸优化、图像和性能优化等最佳实践。测试和调试、框架工具的应用也是关键步骤,以确保在多设备上提供优秀用户体验。开发者需持续学习新趋势和工具,以适应移动端发展。
|
6天前
|
前端开发 UED 容器
【专栏:CSS进阶篇】CSS Grid布局:构建复杂的二维布局
【4月更文挑战第30天】CSS Grid布局是二维布局系统,适用于复杂页面结构,如页眉、主体和侧边栏。通过定义网格线和单元格,能轻松创建行和列。基本语法包括设置容器为grid容器,定义`grid-template-rows`和`grid-template-columns`。高级特性包括命名网格线、网格区域、网格间隙、重复网格线和自动填充。在实际应用中,CSS Grid能有效提升开发效率和用户体验,尤其在响应式设计和复杂布局场景下。
|
6天前
|
前端开发 开发者 容器
【专栏:CSS进阶篇】CSS Flexbox布局:实现灵活的响应式设计
【4月更文挑战第30天】CSS Flexbox是现代网页设计中创建响应式布局的关键工具,它提供了一种一维布局模型,使元素能灵活适应各种屏幕尺寸。通过设置容器的`display`属性为`flex`,开发者可以利用主轴和交叉轴调整元素排列和对齐方式。核心概念包括弹性项、伸缩性、空间分配和对齐。通过实例,如导航栏、卡片布局、图片画廊和响应式表单,展示了Flexbox在实现响应式设计中的应用。尽管需要注意浏览器兼容性,但掌握Flexbox能帮助开发者构建出功能强大且适应性强的界面。
|
6天前
|
前端开发 开发者 容器
【专栏:CSS基础篇】CSS定位与布局:从静态到浮动、定位
【4月更文挑战第30天】本文介绍了CSS定位与布局的基础,包括静态、相对、绝对、固定定位以及浮动。静态定位遵循HTML顺序,相对定位可在正常位置基础上偏移,不占用额外空间。绝对定位基于最近已定位祖先元素定位,脱离文档流。固定定位相对于浏览器窗口定位,无视页面滚动。浮动用于文字环绕图片等,可能导致父元素高度塌陷。Flexbox布局提供更灵活的元素排列和对齐方式,适配各种复杂布局需求。理解并掌握这些布局技术能提升网页设计的灵活性和响应性。
|
6天前
|
前端开发
【专栏:CSS基础篇】CSS盒模型:理解网页布局的核心
【4月更文挑战第30天】CSS盒模型是网页布局关键,将HTML元素视为内容、内边距、边框和外边距的矩形。内容决定元素大小,padding增加内部空间,border设置线条样式,margin控制元素间距。理解盒模型及其计算方式(内容+padding+border+margin)有助于布局设计。通过调整相关属性,实现浮动、Flexbox或定位布局,创建响应式网页。
|
6天前
|
前端开发 开发者
【专栏:CSS基础篇】CSS选择器详解:精准定位网页元素
【4月更文挑战第30天】本文介绍了CSS选择器在Web开发中的重要性,详细阐述了基础选择器(元素、类、ID、属性和伪类/伪元素)及复杂选择器(后代、子元素、相邻兄弟和一般兄弟)的用法。通过理解并巧妙运用这些选择器,开发者能更高效地控制页面样式,提高代码的可维护性。CSS预处理器如Sass、LESS进一步增强了选择器的功能,助力创建优雅且强大的样式表,实现精准的网页设计。
|
6天前
|
前端开发
CSS弹性布局justify-content的用法
CSS弹性布局justify-content的用法