float的影响

本文详细解析了CSS中浮动(float)属性对元素自身、兄弟元素及包含元素的影响。介绍了浮动元素如何变为块级元素并设置宽高,浮动元素与其前后行内元素的环绕关系,以及多个浮动元素间的并排显示与换行机制。同时,还讨论了当父元素仅包含浮动元素时可能出现的高度塌陷现象。

注:float为非none
原文

对自身的影响

  1. 行内元素将变为块级元素,可设置宽高
    题外话,input为内联块级标签,可设置宽高,并且一行排列
  2. 父级元素设置了float,则会包裹子元素,自适应宽高

对兄弟元素的影响

  1. 浮动元素后面跟非浮动元素会覆盖非浮动元素,非浮动元素的文字或者其他行内元素会环绕浮动元素
  2. 浮动元素前后的行内元素环绕浮动元素
  3. 浮动元素临近元素也是浮动元素,且方向相同,会并排显示,当宽度大于父元素宽度是会换行排列。
  4. 浮动元素之间的水平外边距不会叠加(不管有没有清除浮动)

对包含的元素的影响

  1. 当包含元素中只有浮动元素时,父元素高度会塌陷
  2. 浮动元素的父元素的非浮动兄弟元素,忽视浮动元素存在,覆盖浮动元素;
  3. 浮动元素的父元素的浮动兄弟元素,会跟随浮动元素布局,仿佛处在同一父元素中。
07-31
### 3.1 Float 数据类型的基本特性 在编程语言中,`float` 是一种用于表示浮点数的数据类型,广泛用于科学计算、工程建模和图形处理等领域。C语言中定义的 `float` 类型是单精度浮点数,在内存中占用 4 个字节(32 位),其有效数字为 7 位,数值范围为 ±3.4×10⁻³⁸ 到 ±3.4×10³⁸ [^1]。这种数据类型的精度和表示范围使其适用于大多数对精度要求不极端的应用场景。 在 Python 中,`float` 类型的实现基于 IEEE 754 标准,通常也表示双精度浮点数(64 位),尽管其名称仍为 `float`。Python 中可以通过 `float()` 函数将其他类型的数据转换为浮点数,例如 `float('123.45')` 将字符串转换为浮点数值 [^2]。 ### 3.2 Float 数据类型的存储与操作 浮点数的存储基于 IEEE 754 标准,由符号位、指数部分和尾数部分组成。在 C 语言中,可以直接通过位操作修改浮点数的指数部分,从而实现快速的数值缩放。例如,以下代码通过将 `float` 的内存表示转换为整数,再对指数部分进行加减操作,实现将浮点数乘以或除以 2ⁿ 的功能: ```c #include <stdio.h> float fltShift(float x, int n) { int ix = *(int*)&x; ix += n * 0x00800000; return *(float*)&ix; } int main() { printf("%f\n", fltShift(123.456f, -3)); printf("%f\n", fltShift(123.456f, 0)); printf("%f\n", fltShift(123.456f, 3)); return 0; } ``` 该方法利用了浮点数的二进制表示特性,通过直接修改指数字段实现快速缩放,避免了传统的乘除法运算,适用于性能敏感的数值计算场景 [^3]。 ### 3.3 Float 数据类型的使用注意事项 尽管 `float` 提供了广泛的数值表示能力,但在实际使用中需要注意其精度限制。例如,浮点数在进行加减运算时,由于舍入误差可能导致精度丢失。此外,浮点数的比较应避免使用直接的等号判断,而应使用一个小的误差范围(如 `1e-6`)来判断两个浮点数是否“接近”。 在进行浮点运算时,还应考虑平台差异和编译器优化策略对计算结果的影响。例如,某些编译器可能会对浮点运算进行重排序以提升性能,但这可能影响数值的确定性。 ### 3.4 Float 与 Double 的区别 虽然 `float` 在大多数场景中已经足够使用,但在需要更高精度的科学计算或金融计算中,通常使用 `double` 类型。`double` 在 C 语言中占用 8 个字节(64 位),有效数字为 15~16 位,数值范围为 ±5.0×10⁻³²⁴ 到 ±1.7×10³⁰⁸ [^1]。Python 中的 `float` 实际上等价于 C 语言中的 `double` [^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值