升级打怪-精读css权威指南(第十章)

2 篇文章 0 订阅

10 浮动及其形状

10.1 浮动

属性值取值初始值适用于计算值继承性动画性
floatleft | right | nonenone所有元素指定的值

10.1.1 浮动的元素

  • 浮动元素脱离了常规的文档流
  • 元素浮动后,对行内元素有影响,对块级元素无影响
  • 浮动元素周围的外边距不折叠
  • 如果浮动是非置换元素,要为元素设定宽度.否则,根据CSS规范,元素的宽度趋近与零.(经过自己验证,未出现这种现象)
  • 浮动后的元素都是块级框

10.1.2 浮动规则

  • 1.浮动元素的左(或右)外边界不能超过容纳块的左(或右)内边界.
  • 2.前面的元素向左浮动,那后面的浮动元素的左外边界必定在前一个元素右外边界的右侧,除非后一个元素的顶边在前一个元素的底边以下.
  • 3.左浮动元素的右外边界不能在右浮动元素的左外边界的右侧.右浮动元素的左外边界不能再左浮动元素的右外边界的左侧.
  • 4.浮动元素的顶边不能比父元素的内顶边高.
  • 5.浮动元素的顶边不能比前方任何一个浮动元素或块级元素的顶边高.
  • 6.浮动元素的顶边不能高于之前浮动元素所在的行框的顶边
  • 7.左浮动元素的左边如果还有一个向左浮动的元素,那么他的右外边界不能在容纳块右边界的右侧.
  • 8.浮动元素必须放在尽可能高的位置上.
  • 9.左浮动元素必须尽量向左移动,右浮动元素必须尽量向右移动.

10.1.3 具体行为

  • 浮动元素比父元素高,会导致浮动元素从父元素的底部冒出来了
  • 负外边距将导致浮动元素移到父元素的外面
  • 浮动元素比父元素宽时,浮动元素会超出父元素的左右内边界.

10.1.4 浮动元素与内容重叠

  • 行内框与浮动元素重叠时,其边框,背景和内容都在浮动元素"之上"渲染
  • 块级框与浮动元素重叠时,其边框和背景在浮动背景"背后"渲染,而内容在浮动元素"之上"渲染

代码示例:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      body,
      p {
        margin: 0;
        padding: 0;
      }
      .foo {
        background-color: cadetblue;
      }
      i {
        background-color: crimson;
      }
    </style>
  </head>
  <body>
    <div class="foo">
      <img
        src="./logo.png"
        width="50"
        height="50"
        style="float: left; margin: 10px -15px 10px 10px"
      />
      <p>
        <i>谁我是谁我是谁我是</i
        >谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁我是谁
      </p>
      <div style="height: 50px; background-color: cyan">aaaaaa</div>
    </div>
  </body>
</html>

10.2 清除浮动

属性值取值初始值适用于计算值继承性动画性
clearleft | right | both |nonenone块级元素指定的值

如果把文档划分为多个区域,可能就不希望浮动元素从一个区域探出,进入另一个区域.此时,要禁止每个区域的第一个元素出现在浮动元素旁.倘若第一个元素在浮动元素旁,他的位置会下降到浮动元素下方.可以采用在第一个元素上添加clear属性的方法.

10.3 浮动形状

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值