总目录:https://blog.csdn.net/treesorshining/article/details/124725459

文章目录

  • 1.标准流
  • 2.浮动
    • 2.1 浮动概述
    • 2.2 浮动的特性
    • 2.3 浮动元素经常和标准流父级搭配使用
    • 2.4 浮动的注意点
    • 2.5 清除浮动
      • 2.5.1 清除浮动的本质
      • 2.5.2 清除浮动的方法
        • 1.额外标签法
        • 2.overflow
        • 3.after伪元素法
        • 4.双伪元素
    • 2.8 浮动总结

1.标准流

所谓的标准流,就是标签按照规定好默认方式排列

  1. 块级元素会独占一行,从上向下顺序排列。

    常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table

  2. 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。
    常用元素:span、a、i、em 等

以上都是标准流布局,前面学习的就是标准流,标准流是最基本的布局方式。

2.浮动

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

  • 浮动最典型的应用:可以让多个块级元素一行内排列显示。
  • 网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。

2.1 浮动概述

  • float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘
选择器 {float: 属性值;
}
属性值 描述
none 元素不浮动
left 元素向左浮动,如左侧无浮动框,则会位于最左边,有则紧贴左边浮动框
right 元素向右浮动,类似于left
  • 网页布局的第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动
  • 网页布局第二准则:先设置盒子大小,之后设置盒子的位置。

2.2 浮动的特性

设置了浮动(float)的元素的最重要的特性:

  1. 脱标:浮动元素会脱离标准流

    • 浮动的盒子不再保留原先的位置,即设置了浮动的元素漂浮在普通流的上面,不占位置。
  2. 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列

    • 浮动的元素是相互贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
  3. 浮动元素会具有行内块元素特性

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

    • 如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定
    • 如果行内元素有了浮动,则不需要转换块级\行内块元素就可以直接给高度和宽度
    • 浮动的盒子中间是没有缝隙的,是紧挨着一起的

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

为了约束浮动元素位置, 网页布局一般采取的策略是:

先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置

2.4 浮动的注意点

  • 先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置
  • 一个元素浮动了,理论上其余兄弟元素也要浮动
    • 一个盒子里面有多个子盒子,如果其中一个盒子浮动了,那么其他兄弟也应该浮动
  • 浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流

2.5 清除浮动

  • 为什么要清除浮动

    由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响下面的标准流盒子。
    由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响
    理想中的状态,让子盒子撑开父亲,有多少孩子,父盒子就有多高

2.5.1 清除浮动的本质

  • 清除浮动的本质是清除浮动元素造成的影响
  • 如果父盒子本身有高度,则不需要清除浮动
  • 清除浮动之后,父级就会根据浮动的子盒子自动检测高度,父级有了高度,就不会影响下面的标准流了。
选择器 {clear: 属性值;
}
属性值 描述
left 不允许左侧有浮动元素(清除左侧浮动的影响)
right 不允许右侧有浮动元素(清除右侧浮动的影响)
both 同时清除左右两侧浮动的影响
  • 实际工作中,几乎只用clear:both
  • 清除浮动的策略是:闭合浮动
  • 只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子。

2.5.2 清除浮动的方法

  1. 额外标签法也称为隔墙法,是W3C推荐的做法
  2. 父级添加 overflow 属性
  3. 父级添加 after 伪元素
  4. 父级添加双伪元素

1.额外标签法

额外标签法会在浮动元素末尾添加一个空的标签,例如:

例如<div style="clear:both"></div>,或者其他标签(如</br>等)

注意:要求这个新的空标签必须是块级元素

优点:通俗易懂,书写方便

缺点:添加许多无意义的标签,结构化较差

实际工作可能会遇到,但是不常用

2.overflow

可以给父级添加overflow属性,将其属性值设置为hidden,auto或scroll,最常见的是设置为hidden

优点:代码简洁

缺点:无法显示溢出的部分

3.after伪元素法

:after 方式是额外标签法的升级版。也就是给父元素添加

.clearfix:after {content: "";dispaly: block;height: 0;clear: both;visibility: hidden;
}.clearfix {/* IE6,7专有*/*zoom : 1;
}
  • 优点:没有增加标签,结构更简单
  • 缺点:需要照顾低版本浏览器
  • 代表网站:百度、淘宝、网易等

4.双伪元素

  • 也是给父元素添加
.clearfix:before,.clearfix:after{content:"";display:table;
}
.clearfix:after {clear:both;
}
.clearfix {*zoom:1;
}
  • 优点:代码更简洁
  • 缺点:需要照顾低版本浏览器
  • 代表网站:小米、腾讯等

2.8 浮动总结

清除浮动的原因:

①:父级没高度

②:子盒子浮动了

③:影响下面布局了,就应该清除浮动了。

清除浮动方式 优点 缺点
额外标签法(隔墙法) 通俗易懂,书写方便 添加许多无意义的标签,结构化较差
父级overflow: hidden; 书写简单 溢出隐藏
父级after伪元素 结构语义化正确 由于IE6-7不支持:after,兼容性问题
父级双伪元素 结构语义化正确 由于IE6-7不支持:after,兼容性问题

Web前端入门(十九)传统网页布局式之标准流、浮动相关推荐

  1. web前端入门到实战:网页设计十大流行趋势

    1.个性化排版设计 最近看到越来越多的网络设计尝试个性化的风格,其中比较突出的一点是个性化字体的增多:用自己独特设计的字体代替标准印刷体,让设计更加独特.让字体在体现个性的同时保留专业印刷风格. 2. ...

  2. web前端入门到实战:网页开发中字体,字号与尺寸对应表

    了解字体的一样常识,不管做一份文档编辑还是网页开发,都是很有必要的.整齐划一,井然有序才终是大家之道. 1.字体 在文档编辑中,我们常用的是宋体,小四号字,新罗马字体,字母和数字用的是Arial字体, ...

  3. 【web前端(三十九)】javascript_jquery操作样式

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>操作样 ...

  4. 前端学习笔记之CSS网页布局

    CSS网页布局 阅读目录 一 网页布局方式 二 标准流 三 浮动流 四 定位流 一 网页布局方式 #1.什么是网页布局方式 布局可以理解为排版,我们所熟知的文本编辑类工具都有自己的排版方式,比如wor ...

  5. web前端入门学习 css(6)(定位position)(元素的显示与隐藏display、可见性visibility、溢出overflow)(案例:土豆播放页)

    文章目录 什么是定位? 定位组成(定位模式+边偏移) 定位模式static relative absolute fixed 边偏移 定位模式--静态定位static(平时用不到)就是标准流 定位模式- ...

  6. Web前端入门的学习路线总结

    想要学习web前端,前期一定要做好学习路线,下面是小编整理的Web前端入门的学习路线总结,希望正在从事Web前端工作的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助. Web前端入门的学 ...

  7. web前端大三实训网页设计:餐饮网站设计——烧烤美食山庄(7个页面) HTML+CSS+JavaScript

    web前端大三实训网页设计:餐饮网站设计--烧烤美食山庄(7个页面) HTML+CSS+JavaScript 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...

  8. 2020年Web 前端怎样入门?最新Web前端入门的学习路线

    2022年最新Web前端入门的自学路线 > 新手入门前端,需要学习的基础内容有很多,如下. 一.HTML.CSS基础.JavaScript语法基础.学完基础后,可以仿照电商网站(例如京东.小米) ...

  9. 黑马pink老师Web前端入门笔记(二)

    Web前端入门 二.HTML标签 (一) 学习目标 (二)HTML语法规范 (三) HTML基本结构标签 (四) 开发工具 (五) HTML常用标签 1.语义标签: 2.标题标签(重要): 3.段落和 ...

最新文章

  1. 微软语音AI技术与微软听听文档小程序实践 | AI ProCon 2019
  2. 机器学习算法学习---模型融合和提升的算法(五)
  3. 字符集 ISO-8859-1(1)
  4. SVN 提交子文件夹问题
  5. 目标跟踪:CamShift算法
  6. C#中的集合、哈希表、泛型集合、字典
  7. java filedialog 打开文件_java 用文件对话框打开文件
  8. 超简单的json转xml,xml转json
  9. 基于51单片机220V交流电流检测系统过流阈值报警方案原理图
  10. leetcode4568
  11. ftp服务器匿名账号,登陆ftp服务器的匿名账号
  12. 360能删除mysql吗_如何把Mysql卸载干净(亲测有效)
  13. 数学建模竞赛常用软件培训1
  14. Javascript特效:五彩小球
  15. 2020cvpr显著性目标检测
  16. windows防火墙开启后,设置准入端口
  17. 数据库--循环语句:for循环
  18. kettle 教程(四):自定义 Java 代码
  19. 工作中及时沟通很重要
  20. 谈谈java代理模式的认识二——动态代理(JDK)

热门文章

  1. 用RecyclerView实现动态添加本地图片
  2. ABAP字符串系列操作
  3. 关于TensorFlow中的多图(Multiple Graphs)
  4. 打开网络显示连接的服务器在哪里找,电视网络与服务器连接设置在哪里找
  5. 超强布线规则经验大全
  6. Web时代,电脑用户的求生之路
  7. Java完全自学教程
  8. 【Duilib自定义控件】水平布局的滚动扩展布局,实现菜单的可滑动效果
  9. MySQL 汉字提取首字母、姓名首字母全拼、姓名转拼音
  10. EVC实现WIN CE下截屏