CSS(五)浮动和文档流、定位

简介: CSS(五)浮动和文档流、定位

一、浮动和文档流

1. 默认文档流

       流就是文档布局的自身特性,而定位机制可能就会打破原有流的特性;默认文档流有内联元素(从左向右排列)、块级元素(从上向下排列)。


2. 脱离文档流

       文档一旦脱离文档流,就不再受文档流布局约束,在算其父元素高度时不包括自身;


       以下情形会导致元素脱离文档流:float 浮动、position 定位(绝对定位、固定定位)。


3. 浮动

子元素在父元素中浮动时,会使其脱离文档流,导致父元素失去管理能力。属性:


       float:none  默认不浮动

       float:left  左浮动

       float:right  右浮动


(1)浮动的特点


元素浮动后不再撑起父级的高度;

元素浮动后可以在父元素的左侧或右侧排列;

元素浮动后不再自占一行;

元素浮动后会对后面的文档流中的兄弟元素产生影响,会遮盖其后的兄弟元素;

内联元素浮动后,自动变成块级元素;

元素浮动后虽不在撑起父级的高度,但仍受父级影响,还在父级范围内;

父元素内所有元素均浮动,元素们宽度相加大于父元素宽度时,会自动换行;

元素浮动后不自占一行,会向前占位,前方空值位置属自己所有,后方的元素换行时,不能占据;

元素浮动时,原则会盖住其后方文档流中的兄弟元素,但文字、图片等(行内元素和行内块)不会被盖住;

文字不会被盖住而是环绕浮动元素四周显示。

(2)清除浮动


       元素在父元素中浮动时,会导致父元素的高度坍塌(无高度)、元素布局错位,页面产生混乱、文字环绕,图片环绕等;清除浮动可以使块级元素横向布局,因为块级元素的默认排列是垂直方向的、而且还会变化文档流布局的方向,可以更加多样化。


       需要注意的是清除浮动并不是去除浮动,而是将浮动带来的负面效果解决掉。

image.png



       通常写完浮动之后,最好马上找到父元素做清除浮动处理  overflow: hidden;  防止布局错位。


二、定位

1. position属性

       position属性是定位属性,用于指定一个元素在文档中的定位方式,top、right、bottom、left属性值决定了该元素的距离四边的位置,可以为负值。常用取值:relative 相对定位、absolute 绝对定位、fixed  固定定位。


2. 相对定位 - position: relative

       相对定位不会脱离文档流,可使用 top、right、bottom、left 做偏移,元素相对的位置是自己本来的位置,移动不改变页面布局;相对定位属性不会影响周围的布局,但会出现新的层叠顺序。

.box img {
   position: relative;
   bottom: 130px;
   right: -150px;
}

       当四个方向值发生重合时,以top和left为优先。


3. 绝对定位 - position: absolute

       元素会脱离文档流,其他元素不为该元素预留空间,可使用 top、right、bottom、left 做偏移,绝对定位的元素可以设置外边距,且不会与其他边距合并。


       让子元素在父元素内绝对定位时,先为父元素设置相对定位属性 position: relative;,然后本身进行绝对定位 position: absolute;


eg:使用绝对定位让子元素在父元素中水平垂直居中

baba {
   width: 100%;
   height: 300px;
   position: relative;
}
.baba div {
   width: 100px;
   height: 100px;
   position: absolute;
   top: 50%;
   left: 50%;
   margin-left: -50px;
   margin-top: -50px;
}

4. 固定定位 - position: fixed; (它的父级始终是html)

       元素会脱离文档流,但不用找父级;固定定位参照的是浏览器窗口,可使用 top、right、bottom、left 做偏移。


5. z-index - 层叠顺序

       该属性必须在元素有定位属性(相对或绝对)的前提下指定,没有定位的元素指定z-index无效。

取值直接设置没有单位的整数,可以为负值,值越大层级越高。

.d1 {
  background-color: red;
  position: relative;
  z-index: 1;
}

层叠领域的准则:

值大的在上:z-index的值,在同一个层叠上下文领域,层叠水平值大的覆盖小的;

后来的在上:当元素的层叠水平一致时,在文档流中处于后面的元素会覆盖前面元素。

相关文章
|
5天前
|
前端开发 容器
CSS基础-浮动:float与清除浮动
【6月更文挑战第9天】本文介绍了CSS中的`float`属性,用于创建多列布局和图文混排,但会导致浮动塌陷和元素重叠问题。为解决这些问题,文章探讨了`clear`属性的四种清除浮动方法,包括`clear`属性、空元素、伪元素和`overflow`方法。随着Flexbox和Grid布局的兴起,它们在某些场景下替代了浮动,但理解浮动原理仍是布局基础。掌握浮动和清除浮动技巧对构建稳定布局至关重要。
|
4天前
|
前端开发 定位技术 开发者
CSS基础-定位:static, relative, absolute, fixed
【6月更文挑战第10天】本文探讨了CSS四种定位方式:static、relative、absolute和fixed,强调理解它们的差异对前端开发者的重要性。static遵循正常文档流,relative通过偏移量调整位置但不脱离文档流,absolute完全脱离文档流并依附于最近的非static祖先元素,fixed则相对于浏览器窗口固定。文章列举了常见问题及避免策略,并提供了实战代码示例以直观展示四种定位的效果。掌握这些定位技术能提升布局效率和页面设计质量。
|
8天前
|
前端开发
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
15 0
|
8天前
|
前端开发 容器
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影(一)
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影一
22 0
|
10天前
|
前端开发 UED 容器
纯CSS画浮动卡通蓝天白云草坪动画效果
【6月更文挑战第1天】网页设计中,通过创新技巧,可以使用HTML和CSS模拟云朵漂浮和草地动画效果,提升用户体验。背景实现采用线性渐变动画,使背景颜色从浅青至白平滑过渡并循环移动。云朵效果通过多个不同大小和位置的`<div>`元素,结合CSS的`position: absolute;`和`@keyframes`动画实现浮动。草的动画则是通过三角形形状及`::before`和`::after`伪元素创造,配合不同动画速度和角度模拟自然摆动。完整代码可在提供的链接中下载。
20 1
纯CSS画浮动卡通蓝天白云草坪动画效果
尚硅谷html5+css3(4)浮动
尚硅谷html5+css3(4)浮动
|
30天前
|
前端开发 开发者 容器
【专栏:CSS基础篇】CSS定位与布局:从静态到浮动、定位
【4月更文挑战第30天】本文介绍了CSS定位与布局的基础,包括静态、相对、绝对、固定定位以及浮动。静态定位遵循HTML顺序,相对定位可在正常位置基础上偏移,不占用额外空间。绝对定位基于最近已定位祖先元素定位,脱离文档流。固定定位相对于浏览器窗口定位,无视页面滚动。浮动用于文字环绕图片等,可能导致父元素高度塌陷。Flexbox布局提供更灵活的元素排列和对齐方式,适配各种复杂布局需求。理解并掌握这些布局技术能提升网页设计的灵活性和响应性。
|
30天前
|
XML 前端开发 JavaScript
CSS中动画、过渡、定位、浮动的作用
CSS中动画、过渡、定位、浮动的作用
|
11月前
|
前端开发 容器
CSS3 属性选择器 伪类选择器 盒模型 圆角 阴影 CSS定位和浮动
CSS3 属性选择器 伪类选择器 盒模型 圆角 阴影 CSS定位和浮动
|
前端开发
CSS样式更改——框模型、定位、浮动、溢出
CSS样式更改——框模型、定位、浮动、溢出
120 0
CSS样式更改——框模型、定位、浮动、溢出