[CSS]浮动(上)

简介: [CSS]浮动(上)

前言

  • 系列文章目录:
  • 根据视频和PPT整理
  • 视频及对应资料:
  • HTML CSS

1. 传统网页布局的三种方式

网页布局的本质就是使用 CSS 来摆放盒子,把盒子摆放到相应位置。

CSS 提供了三种布局方式(就是盒子如何进行排列摆放):

  • 普通流(标准流)
  • 浮动
  • 定位

CSS 提供的三种布局方式都是用来摆放盒子的。

2. 标准流(普通流/文档流)

所谓的标准流就是标签按照规定好默认方式排列。标准流是最基本的布局方式。

块级元素会独占一行,从上向下顺序排列。常用块级元素:div、hr、p、h1~h6、ul、ol、dl、form、table。行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。常用行内元素:span、a、i、em 等。

3. 浮动

有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。 因为浮动可以改变元素标签默认的排列方式。

浮动最典型的应用:可以让多个块级元素一行内排列显示。

网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。

3.1 语法

需要实现浮动,使用 float 属性,float 属性用于创建浮动框,将其移动到父元素的左边缘或右边缘触,如果当前浮动框前有另一个浮动框,则移动到上一个浮动框的边缘。

浮动的盒子中间是没有缝隙的,是紧挨着一起的.

语法:

选择器 { float: 属性值; }

3.2 浮动实现

<style>
  div {
    width: 100px;
    height: 100px;
    /* 两个盒子左浮动 */
    float: left;
  }
  .left {
    background-color: coral;
  }
  .right {
    background-color: brown;
  }
</style>
<body>
  <div class="left"></div>
  <div class="right"></div>
</body>

left 盒子先进行左浮动,由于前面没有其他左浮动元素,所以 left 盒子放在父元素的左边缘;right 盒子进行左浮动,由于前面已经有 left 盒子左浮动,所以 right 盒子放在 left 盒子的右边。

<style>
  div {
    width: 100px;
    height: 100px;
    /* 两个盒子右浮动 */
    float: right;
  }
  .left {
    background-color: coral;
  }
  .right {
    background-color: brown;
  }
</style>
<body>
  <div class="left"></div>
  <div class="right"></div>
</body>

left 盒子先进行右浮动,由于前面没有其他右浮动元素,所以 left 盒子放在父元素的右边缘;right 盒子进行右浮动,由于前面已经有 left 盒子右浮动,所以 right 盒子放在 left 盒子的左边。

<style>
  div {
    width: 100px;
    height: 100px;
    /* float: right; */
  }
  .left {
    background-color: coral;
    float: left;
  }
  .right {
    background-color: brown;
    float: right;
  }
</style>
<body>
  <div class="left"></div>
  <div class="right"></div>
</body>

left 盒子先进行左浮动,由于前面没有其他左浮动元素,所以 left 盒子放在父元素的左边缘;right 盒子进行右浮动,由于前面没有其他盒子右浮动,所以 right 盒子放在父元素的右边缘。

3.3 浮动元素的特性

加了浮动之后的元素的特性:

  1. 浮动元素会脱离标准流(脱标)
  2. 浮动的元素会一行内显示并且元素顶部对齐
  3. 浮动的元素会具有行内块元素的特性.

3.3.1 脱标

设置了浮动(float)的元素会脱离标准普通流的控制(浮)移动到指定位置(动),俗称脱标,且浮动的盒子不再保留原先的位置。

<style>
  .left {
    width: 100px;
    height: 100px;
    background-color: coral;
    float: left;
  }
  .right {
    width: 200px;
    height: 200px;
    background-color: brown;
  }
</style>
<body>
  <div class="left"></div>
  <div class="right"></div>
</body>

3.3.2 浮动的元素会在一行内显示并且顶端对齐排列

如果多个盒子都设置了浮动,则它们会按照属性值,在一行内显示并且顶端对齐排列。 且浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子, 多出的盒子会另起一行对齐。

<style>
    div {
      float: left;
    }
    .one {
      width: 400px;
      height: 400px;
      background-color: aquamarine;
    }
    .two {
      width: 300px;
      height: 300px;
      background-color: rgb(21, 209, 146);
    }
    .three {
      width: 200px;
      height: 200px;
      background-color: coral;
    }
    .four {
      width: 100px;
      height: 100px;
      background-color: brown;
    }
  </style>
  <body>
    <div class="two"></div>
    <div class="one"></div>
    <div class="three"></div>
    <div class="four"></div>
  </body>

3.3.3 浮动元素会具有行内块元素特性

任何元素都可以浮动。不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性

行内元素有了浮动,不需要转换为块级或行内块元素就可以直接设置高度和宽度。

行内元素设置高度和宽度无效。

<style>
    span {
      width: 100px;
      height: 100px;
      background-color: brown;
      float: left;
    }
  </style>
  <body>
    <span>123</span>
  </body>

如果块级盒子,没有设置宽度默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定

<style>
    div {
      height: 100px;
      background-color: brown;
      float: left;
    }
  </style>
  <body>
    <div>123</div>
  </body>

3.4 浮动元素经常和标准流父级搭配使用

为了约束浮动元素位置, 我们网页布局一般采取的策略是,先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。

3.5 浮动布局练习

网页布局第二准则:先设置盒子大小,再设置盒子位置

3.5.1 练习1

<style>
  .box {
    width: 1200px;
    height: 460px;
    background-color: darkorange;
    /* 水平居中 */
    margin: 0 auto;
  }
  .left {
    /* 左浮动 */
    float: left;
    width: 230px;
    height: 460px;
    background-color: burlywood;
  }
  .right {
    /* 右浮动 */
    float: right;
    width: 970px;
    height: 460px;
    background-color: cadetblue;
  }
</style>
<body>
  <div class="box">
    <div class="left">left</div>
    <div class="right">right</div>
  </div>
</body>

相关文章
|
6月前
|
前端开发
【前端|CSS系列第3篇】CSS盒模型、浮动及定位
【前端|CSS系列第3篇】CSS盒模型、浮动及定位
106 1
|
4月前
|
前端开发
5.CSS学习(浮动)
【7月更文挑战第29天】
37 4
|
5月前
|
前端开发 容器
CSS基础-浮动:float与清除浮动
【6月更文挑战第9天】本文介绍了CSS中的`float`属性,用于创建多列布局和图文混排,但会导致浮动塌陷和元素重叠问题。为解决这些问题,文章探讨了`clear`属性的四种清除浮动方法,包括`clear`属性、空元素、伪元素和`overflow`方法。随着Flexbox和Grid布局的兴起,它们在某些场景下替代了浮动,但理解浮动原理仍是布局基础。掌握浮动和清除浮动技巧对构建稳定布局至关重要。
65 5
|
2月前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`&lt;div&gt;`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。
|
3月前
|
前端开发 容器
前端面试热门问题--浮动和清除浮动(CSS)
前端面试热门问题--浮动和清除浮动(CSS)
|
5月前
|
前端开发 UED 容器
纯CSS画浮动卡通蓝天白云草坪动画效果
【6月更文挑战第1天】网页设计中,通过创新技巧,可以使用HTML和CSS模拟云朵漂浮和草地动画效果,提升用户体验。背景实现采用线性渐变动画,使背景颜色从浅青至白平滑过渡并循环移动。云朵效果通过多个不同大小和位置的`<div>`元素,结合CSS的`position: absolute;`和`@keyframes`动画实现浮动。草的动画则是通过三角形形状及`::before`和`::after`伪元素创造,配合不同动画速度和角度模拟自然摆动。完整代码可在提供的链接中下载。
93 1
纯CSS画浮动卡通蓝天白云草坪动画效果
|
4月前
|
前端开发
CSS:浮动
CSS:浮动
|
5月前
|
前端开发 容器
CSS浮动(如果想知道CSS有关浮动的知识点,那么只看这一篇就足够了!)
CSS浮动(如果想知道CSS有关浮动的知识点,那么只看这一篇就足够了!)
|
6月前
|
人工智能 前端开发 容器
CSS 浮动
CSS 浮动
59 1
|
5月前
|
前端开发
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
47 0