CSS浮动使用技巧

这次给大家带来CSS浮动使用技巧,CSS浮动使用的注意事项有哪些,下面就是实战案例,一起来看一下。

浮动具有以下特性:

盖不住的文本

浮动元素后面不是块级元素,后面的元素将会和它并排(除非设置了元素的宽度,并且屏幕放不下时将会换行)

浮动元素的上一个元素如果没有浮动,浮动只在当前行浮动;当浮动遇到浮动,它们将在一行排序,除非没有位置了

当元素设置定位值为absolute、fixed时,浮动将被忽略

float引起父元素高度塌陷

浮动元素会被后一个元素的margin-top影响

盖不住的文本

        body,p{            margin:0;            padding:0;        }       p{           width:100px;           height:100px;       }        .item1{            float:left;            background-color: pink;        }        .item2{            background-color: #58d3e2;        }    

item1

item2

CSS浮动使用技巧

可以看到,item2的p除了文本,其他的内容都看不见了,因为它跑到item1下面了。为什么文字不会被浮动的元素盖住呢?因为浮动的本质就是用来实现文字环绕的。

从上面也可以得出:浮动元素后面的块级元素会占据浮动元素的位置,并且浮动元素总是在标准流元素上面。

浮动元素后面不是块级元素,后面的元素将会和它并排(除非设置了元素的宽度,并且屏幕放不下时将不会换行)

        body,p{            margin:0;            padding:0;        }       p{           width:100px;           height:100px;       }        .item1{            float:left;            background-color: pink;        }        .item2{            display: inline-block;            background-color: #58d3e2;        }    

item1

item2

CSS浮动使用技巧

浮动元素的上一个元素如果没有浮动,浮动只在当前行浮动;当浮动遇到浮动,它们将在一行排序,除非没有位置了

        body,p{            margin:0;            padding:0;        }       p{           width:100px;           height:100px;       }        .item1{            background-color: pink;        }        .item2{            float:left;            background-color: #58d3e2;        }    

item1

item2

item3

CSS浮动使用技巧

         body,p{            margin:0;            padding:0;        }       p{           width:400px;           height:100px;           float: left;       }        .item1{            background-color: pink;        }        .item2{            background-color: #58d3e2;        }        .item3{            background-color: #61dafb;        }        .item4{            background-color: #e9203d;        }    

item1

item2

item3

item4

CSS浮动使用技巧

可以设置width为百分比来实现自适应

 p{           width:25%;           height:100px;           float: left;       }

CSS浮动使用技巧

当元素设置定位值为absolute、fixed时,浮动将被忽略

        body,p{            margin:0;            padding:0;        }       p{           position: absolute;           float: left;           width:100px;           height:100px;           border: 1px solid red;       }     

浮动遇上定位

CSS浮动使用技巧

行内元素使用浮动以后生成一个块框,因此它就可以使用width,height,margin,padding等属性了

         body,p{            margin:0;            padding:0;        }       [class^='item']{           float: left;           width:100px;           height:100px;           line-height: 100px;           text-align: center;       }        .item1{            float: left;            background-color: pink;        }        .item2{            display: inline-block;            background-color: #58d3e2;        }    item1

item2

CSS浮动使用技巧

float引起父元素高度塌陷

在网页设计中,很常见的一种情况是给内容一个p作为包裹容器,而这个包裹容器不设置高度,而是让里面的内容撑开包裹容器的高度。如果不给子元素设置浮动的话,并不会出现什么问题,而一旦给子元素设置了浮动,父元素会无法自适应浮动元素的高度,会出现父元素高度为0,从而背景色什么的都不能展示了。原因是:

因为没有预先设置p高度,所以p高度由其包含的子元素高度决定。而浮动脱离文档流,所以子元素并不会被计算高度。此时的p中,相当于p中子元素高度为0,所以发生了父元素高度塌陷现象。

           body,p{            margin:0;            padding:0;        }        .item{            float: left;            width:100px;            height:100px;            background-color: pink;        }       

CSS浮动使用技巧

解决办法,

1.给父元素增加“overflow:hidden”

当然也可以是”overflow:auto”。但为了兼容IE最好用overflow:hidden。

.box{  overflow:hidden;}

那么为什么“overflow:hidden”会解决这个问题呢?

是因为“overflow:hidden”会触发BFC,BFC反过来决定了”height:auto”是如何计算的

,即计算BFC的高度时,浮动元素也参与计算,因此此时父元素会自适应浮动元素的高度。

所以呢,也可以设置”display:inline-block”、”position:absolute”、”float:left”来解决父元素高度坍塌的问题。因为凡是能创建一个BFC,就能达到包裹浮动子元素的效果。因此网上都说成“BFC能包裹浮动元素”.

2.在父元素内容的后面或者前面增加伪元素+清除浮动

可以给父元素的内容添加一个伪元素,可以用::before或者::after,然后内容为空,这样就不会占据位置,最后为伪元素加上“clear:both”来清除浮动。

         body,p{            margin:0;            padding:0;        }        .box::after{            content: '';            display: block;            clear:both;        }        .item{            float:left;            width:100px;            height: 100px;            background-color: deeppink;        }    

CSS浮动使用技巧

为什么这样可以呢?

弄清原因需要知道两点:一是伪元素的实际作用,二是css的清除浮动(clear)只能影响使用清除的元素本身,不能影响其他元素,并且清除浮动可以理解为打破横向排列。

首先需要搞清除::after和::before起的作用,它们不是在一个元素的后面或者前面插入一个伪元素,而是会在元素内容后面或者前面插入一个伪元素(是在元素里面),之前我一直以为:before和:after伪元素 插入的内容会被注入到目标元素的前或后注入,其实注入的内容将是有关联的目标元素的子元素,但它会被置于这个元素的任何内容的“前”或“后”。我们来举个例子,可以看到.box的高度为300px,说明两个伪元素已经插入到.box内容里了。

        body,p{            margin:0;            padding:0;        }        .box::before{            content: 'before';            height: 100px;            width: 100px;            display: block;            clear:both;            background-color: #61dafb;        }        .box::after{            content: 'after';            width:100px;            height:100px;            display: block;            clear:both;            background-color: aquamarine;        }        .item{            float:left;            width:100px;            height: 100px;            background-color: deeppink;        }    

CSS浮动使用技巧

综上,所以我们常用下列方式来清除浮动

.box::after{  content:'';  display:block;  clear:both;}或者.box::before{  content:'';  display:block;  clear:both;}或者.box::before,.box::after{  content:'';  display:block;  clear:both;}//::before和::after必须配合content属性来使用,content用来定义插入的内容,content必须有值,至少是空。默认情况下,伪类元素的display是默认值inline,可以通过设置display:block来改变其显示。

在父元素的内容前后插入一个伪元素,content为空可以保证不占据位置(高度为0)。”clear:both”可以清除父元素左右的浮动,导致.box::before和.box::after遇到浮动元素会换行,从而会撑开高度,父元素会自适应这个高度从而不会出现高度坍陷。

其他解决高度坍塌的方法都是基于这两个思想的,一个是触发BFC,一个是添加元素+清除浮动(clear)。

浮动元素会被后一个元素的margin-top影响

        body,p{            margin:0;            padding:0;        }        p{            width:100px;            height:100px;        }        p:nth-of-type(1){            float: left;            background-color: #61dafb;        }        p:nth-of-type(2){            margin-top: 100px;            background-color: #58d3e2;        }    

p1

p2

CSS浮动使用技巧

可以看到第一个p也跟着下来了,解决办法是给后一个元素设置clear,此时后一个元素的margin-top将无效

        body,p{            margin:0;            padding:0;        }        p{            width:100px;            height:100px;        }        p:nth-of-type(1){            float: left;            background-color: #61dafb;        }        p:nth-of-type(2){            clear:both;            margin-top: 100px;            background-color: #58d3e2;        }    

p1

p2

CSS浮动使用技巧

相信看了本文案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

推荐阅读:

CSS层叠机制使用详解

立即学习“前端免费学习笔记(深入)”;

CSS实战项目中书写规范与顺序

以上就是CSS浮动使用技巧的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:16:47
下一篇 2025年12月24日 01:17:02

相关推荐

  • css的新属性display:box使用方法

    这次给大家带来css的新属性display:box使用方法,css的新属性display:box使用注意事项有哪些,下面就是实战案例,一起来看一下。 一、display:box;   在元素上设置该属性,可使其子代排列在同一水平上,类似display:inline-block;。 二、可在其子代设置…

    好文分享 2025年12月24日
    000
  • 关于CSS中基代码base.css的内容

    base.css顾名思义就是基代码的含义,主要就是重置浏览器默认样式的一个集合吧,在进行css布局时把它加进去将会提高书写效率,感兴趣的朋友可以参考下 代码如下: /***** css set*****/ body, p, dl, dt, dd,ul,ol,li,h1,h2,h3,h4,h5,h6,…

    好文分享 2025年12月24日
    000
  • 关于css多行文本溢出时出现省略号的内容

    这篇文章主要介绍了css多行文本溢出时出现省略号的示例的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 多行文本溢出时出现省略号 本文推荐2种方法。 1. css tip:只兼容chrome内核的浏览器。ff不支持。 立即学习“前端免费学习笔记(深入)”; .box { overflow…

    好文分享 2025年12月24日
    000
  • 用icon fonts来辅助CSS处理图片

    这篇文章主要介绍了使用icon fonts来辅助css处理图片,在移动端网页的设计中使用较多,需要的朋友可以参考下 由于移动端设备拥有不同分辨率,PPI 等引起的问题, 常常需要针对不同屏幕分辨率来调整优化,如使用 @2x 图片, max-width 限制等。采用 css @font-face 用来…

    好文分享 2025年12月24日
    000
  • CSS编写代码时的高性能总结

    这篇文章主要介绍了css编写时的性能优化以及高维护性优化建议总结,包括雪碧图和尺寸设定等热门的讨论点,需要的朋友可以参考下 性能,这个词如今被炒的很热,也是每个开发者,由“知道”、“会做”之后必经的一个“怎样做好”的阶段。性能关乎用户在不同设备和不同网络状态下的体验。也被多方面因素所影响。此文说说c…

    好文分享 2025年12月24日
    000
  • CSS中@规则的用法

    这篇文章主要介绍了css中一些@规则的用法小结,是css入门学习中的基础知识,需要的朋友可以参考下 at-rule是一个声明,为CSS提供执行或怎么表现的指令。每个声明以@开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,用于表示CSS该做什么。这是一个通用的语法,尽管每个at-rule有其它…

    好文分享 2025年12月24日
    000
  • 关于CSS Normalize的文件配置

    这篇文章主要介绍了css normalize文件配置示例,对全局项目进行设置,需要的朋友可以参考下 作为前端工程师,很多人都有自己的一套CSS Normalize文件,这样能省掉开发过程中的不少麻烦,提高工作效率。在前人的基础上,我总结了自己的CSS Normalize文件,目前基本上每个项目都有在…

    好文分享 2025年12月24日
    000
  • 在CSS中对RGB颜色的使用分析

    这篇文章主要介绍了CSS中对RGB颜色的使用详解,是CSS入门学习中的基础知识,需要的朋友可以参考下 RGB颜色模型解释 RGB颜色模型就是一种描述某个颜色里面有多少红、绿、蓝三原色的量的方法,就像把水彩颜料或油彩颜料混合起来得到某种我们想要的真实色彩一样。 想象下如果你要配出一个纯蓝色,为了实现这…

    好文分享 2025年12月24日
    000
  • CSS中的inherit使用分析

    这篇文章主要介绍了css中的inherit使用技巧小结,css中的继承关键字的使用是css入门学习中的基础知识,需要的朋友可以参考下 稍不留意便会忽略掉级联样式表的特点。大多数开发者都知道inherit关键字,但有几个新的CSS3继承特性你可能不知道… property: inherit;   in…

    好文分享 2025年12月24日
    000
  • 利用css实现一款仿ios7的switches开关按钮

    这篇文章主要为大家介绍了纯css实现的一款仿ios7的switches开关按钮,无需引js代码。在实现中给出了两种颜色,三种不同大小的demo,需要的朋友可以参考下   今天给大家介绍一款仿ios7的switches开关按钮。这款按钮也是纯css实现的。无需引js代码。在实现中给出了两种颜色,三种不…

    2025年12月24日
    000
  • css+transition做出显隐动画

    这次给大家带来css+transition做出显隐动画,的注意事项有哪些,下面就是实战案例,一起来看一下。 我们先来看效果图 像这样的一个带过渡效果的小部件在我们实际开发中的应用几率还是比较大的,但是在开发微信小程序的过程中可能有的小伙伴发现transition这个属性它不好使(下面说明)所以我们这…

    2025年12月24日
    000
  • 前端实战项目中20条CSS代码使用注意事项

    这次给大家带来前端实战项目中20条CSS代码使用注意事项,下面就是实战案例,一起来看一下。 01、谨慎使用外边距属性 与其它的属性不同,垂直方向上的外边距相遇时将会发生折叠。这意味着如果一个元素的下边距遇到了另一个元素的上边距,那么二者中较大的一个将被留下。下面是一个简单的例子。 .square {…

    2025年12月24日
    000
  • CSS实战项目中书写规范与顺序

    这次给大家带来CSS实战项目中书写规范与顺序,CSS实战项目中书写规范与顺序的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS书写顺序  1.位置属性(position, top, right, z-index, display, float等) 2.大小(width, height, pa…

    2025年12月24日
    000
  • CSS层叠机制使用详解

    这次给大家带来CSS层叠机制使用详解,CSS层叠机制使用的注意事项有哪些,下面就是实战案例,一起来看一下。 css中为什么要有层叠机制 因为在css中可能会有多个样式同时影响同一个元素的某个属性,层叠机制可以解决作者(写代码的人),用户(浏览页面的人)和用户代理(一般指浏览器)的样式冲突。 在层叠中…

    好文分享 2025年12月24日
    000
  • 关于CSS的图像拼合技术

    这篇文章主要介绍了关于CSS的图像拼合技术 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下    图像拼合就是单个图像的集合。    有许多图像的网页可能需要很长事件来加载和生成多个服务器的请求。    使用图像拼合会降低服务器的请求数量,并节省带宽。 图像拼合–创建一个…

    好文分享 2025年12月24日
    000
  • CSS的positon属性的分析

    这篇文章主要介绍了关于CSS的positon属性的分析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 position是CSS中非常重要的一个属性,通过position属性,我们可以让元素相对于其正常位置,父元素或者浏览器窗口进行偏移。postion也是初学者容易搞不清楚状况的一个属…

    2025年12月24日 好文分享
    000
  • CSS样式的覆盖规则

    下面为大家带来一篇css样式覆盖规则全面了解。内容挺不错的,现在就分享给大家,也给大家做个参考。 大家都知道CSS的全称叫做“层叠样式表”,但估计很多人都不知道“层叠”二字的含义。其实,“层叠”指的就是样式的覆盖,当一个元素被运用上多种样式,并且出现重名的样式属性时,浏览器必须从中选择一个属性值,这…

    好文分享 2025年12月24日
    000
  • 提高css性能的方法

    这篇文章主要介绍了css性能优化提高css性能的方法,不规范的css会导致很多性能问题,所以学习掌握css性能优化技巧是非常必要的,对css性能优化知识感兴趣的朋友一起学习吧 不规范的css会导致很多性能问题,这些问题可能在一些小的项目中不够明显,但是在大型项目中就会显现出来。 css匹配原理 在优…

    好文分享 2025年12月24日
    000
  • 利用CSS自定义绿色复选框按钮的样式

    这篇文章主要介绍了关于CSS自定义绿色复选框按钮的样式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 HTML自带的复选框或者单选框按钮样式都是比较简单的一种. 而有时候这些表单控制, 可能需要配合自己的主题样式. 需要去美化他们. 以前可能需要借助JS的实现. 现在CSS也可以完全…

    2025年12月24日
    000
  • 如何使用css transition属性实现带动画显隐的微信小程序部件

    这篇文章主要介绍了使用css transition属性实现一个带动画显隐的微信小程序部件的相关资料,需要的朋友可以参考下 我们先来看效果图 像这样的一个带过渡效果的小部件在我们实际开发中的应用几率还是比较大的,但是在开发微信小程序的过程中可能有的小伙伴发现transition这个属性它不好使(下面说…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信