热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

对于float与流体布局的一点认识

在学完css中浮动的效果后还是有一点蒙,为了更好的认识及使用浮动,现在整理一下思路。浮动,最初是用来实现文字环绕图片的效果,所以如果将某一个元素打上浮动标签,其后面紧跟的一个元素就会紧跟浮动

在学完css中浮动的效果后还是有一点蒙,为了更好的认识及使用浮动,现在整理一下思路。
浮动,最初是用来实现文字环绕图片的效果,所以如果将某一个元素打上浮动标签,其后面紧跟的一个元素就会紧跟浮动形成环绕效果。为了实现这种效果,就使得浮动具有两个特性:包裹与破坏。包裹是指不论元素以前具有什么属性,在float化之后,元素会具有block属性,即其具有了块状元素的特点,可以不受外部元素的影响,并自成一行。但又因为其具有破坏性,使得父元素高度塌陷,随之而来的就是后一个标签不论是什么属性的元素都会环绕其表现。如下代码:

<div class="left">div>
<div class="right">在学完css中浮动的效果后还是有一点蒙,为了更好的认识及使用浮动,现在整理一下思路。
浮动,最初是用来实现文字环绕图片的效果,所以如果将某一个元素打上浮动标签,其后面紧跟的一个元素就会紧跟浮动形成环绕效果。为了实现这种效果,就使得浮动具有两个特性:包裹与破坏。包裹是指不论元素以前具有什么属性,在float化之后,元素会具有block属性,即其具有了块状元素的特点,可以不受外部元素的影响,并自成一行。但又因为其具有破坏性,使得父元素高度塌陷,随之而来的就是后一个标签不论是什么属性的元素都会环绕其表现。
div>
<style> .left{width:200px;height:10px;background:#0033FF;float:left;} .right{background:#CCCCCC;} style>

这样实现的效果为
这里写图片描述

可以看到,当下一个标签中的内容多于前一个时,会自动环绕在其四周。这样就带来新的问题:如何清除浮动带来的影响。
在清除其下一级的环绕效果时,可采用clear实现,如上例,前一级是左浮,则可用clear:left,当然也可以用clear:both。

.right{background:#CCCCCC;clear:left;}

效果为:
这里写图片描述
但是,当浮动外还有一层div时,并且其内元素均为浮动时,clear就不能发挥作用了。如果在上面例子中加一个外标签将left和right包裹起来,再设置border我们会发现其仍有高度:
这里写图片描述

<div id="wrap">
        <div class="left">div>
        <div class="right">在学完css中浮动的效果后还是有一点蒙,为了更好的认识及使用浮动,现在整理一下思路。
浮动,最初是用来实现文字环绕图片的效果,所以如果将某一个元素打上浮动标签,其后面紧跟的一个元素就会紧跟浮动形成环绕效果。为了实现这种效果,就使得浮动具有两个特性:包裹与破坏。包裹是指不论元素以前具有什么属性,在float化之后,元素会具有block属性,即其具有了块状元素的特点,可以不受外部元素的影响,并自成一行。但又因为其具有破坏性,使得父元素高度塌陷,随之而来的就是后一个标签不论是什么属性的元素都会环绕其表现。
        div>
    div>
#wrap{border:4px solid #33FF66;}

这是因为right部分并没有设置浮动,其文字具有的高度撑开了父元素的高度,现在将right也设置为浮动。

<style> #wrap{border:4px solid #33FF66;clear:both;} .left{float:left;width:200px;height:10px;background:#0033FF;} .right{background:#CCCCCC;float:left;width:1300px;} style>

(浮动元素最好设置宽度,像上例,没有设置 宽度时,不会产生浮动效果,具体原因我也还没发现)设置宽度和浮动,再设置父层clear:both后效果为
这里写图片描述

可以发现父元素并没有被撑开,我所常用的一种方法是:设置父层overflow:hidden

#wrap{border:4px solid #33FF66;overflow:hidden;}

这里写图片描述
可以看见父元素高度塌陷问题解决。但由于浏览器的不同,overflow:hidden不一定能在所有浏览器上起作用,可以配合zoom:1使用。
浮动还会忽略margin值,主要原因在于float脱离了标准文档流但又没有absolute脱离的彻底,当元素浮动后,其后的内容会环绕其显示,但margin值并不是从浮动元素的边缘开始计算的,而是根据上一级标签的范围边界开始算的,就导致写了margin值还是紧贴浮动元素,只要设置margin值够大,比如等于浮动元素宽度加一小段距离就能显示了。比较方便的是,浮动对padding值敏感,可用padding代替margin。
对于浮动实现两列三列布局,可将块中分成两到三个块,分别浮动,padding设距离,注意浮动设置宽度,父元素overflow。
但由于浮动在ie6,ie7中会带来一些奇怪的问题,比如在7中会出现clear的包裹范围问题,最后两个浮动元素的垂直间距问题,阶梯问题还有右浮不会在同一行显示问题,所以浮动要慎用,一旦排版发生变化,很可能出现错位现象。


推荐阅读
  • CSS3 animation动画属性详解及用法
    本文详细介绍了CSS3 animation动画的各种属性及用法,包括关键帧动画、动画名称、动画时间、动画曲线、动画延迟、动画播放次数、动画状态和动画前后的状态等。通过本文的学习,读者可以深入了解CSS3 animation动画的使用方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文介绍了在HTML中实现表格的页眉页脚布局的解决方案。通过基本的HTML/CSS技术,避免使用内联样式和固定定位,实现了一个标准的页眉页脚布局。提供了一个替代的解决方案,为读者提供了参考。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • 1.RoIPoolingRoIPooling顾名思义对Roi进行Pooling操作,主要用于目标检测任务。RoI(Regionofinterest&# ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 本文介绍了图像识别服务的计费方式,采用阶梯计费,根据识别总量来确定单价。同时给出了价目表,根据不同的识别总量和场景,给出了相应的单价。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
author-avatar
100斤的重口味_866
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有