浅谈web布局中的“float”属性  

  对于刚学习web前端的同学,布局和排版都是一个难点。虽然我们能够通过各种调试实现我们希望得到的页面效果,但是如果不把其中的道理弄清楚的话,在下次布局的时候,也无法对整体页面有一个比较全面的掌控。只要弄清楚其中的道理,实现页面的良好布局并不是一件特别难的事情。下面,我就谈谈我学习布局的经验~初来乍到,多多指教~!

1.理解“流”

  要学会web布局,首先要理解“流”的概念和工作原理。“流”,形象一点说,就像水流一样,浏览器从html文件的开头,把元素流入页面中,块级元素独占一行,内嵌元素共享一行,按html文件中的顺序一个接一个的把它们“流”到页面上,直到将最后一个元素放到页面上,这就是我们常说的“正常文档流”。这是浏览器默认的元素放置方式。这些元素按照它们的规则和顺序被放置在同一层中。

块级元素独占一行,内嵌元素共享一行

  很简单,块级元素在文档流中前后都有换行,故独占一行。而内嵌元素呢?内嵌元素会在水平方向上一个接一个地流,从左到右直到没有足够的空间,就流到下一行。

2.“float”浮动的原理

  在我们的布局工具中,有一个叫“float”属性,意思是“浮动”。“float”属性有两个值:“left”、“right”。简单来说,“float”属性就是让一个元素尽可能的靠左或靠右。既然叫做“浮动”,那么它当然是漂浮在正常文本流之上的。因此,它脱离了正常文本流,然后再文本流之上,尽可能的浮动到左(右)边。那么,原先页面中的元素会如何放置呢?

  就像湖里的水流一样,你从中舀走一碗,旁边的水流就会填充过来,湖面还是如镜面一般平坦。当文本流中的一个元素被“float”漂浮起来时,跟在它后面的元素就会填充它原本的位置。

对于正常文档流中的元素,被“float”的元素就像不存在一样。你甚至会发现,浮动元素遮住了下面正常文本流中的块元素。注意!正常文本流中的内嵌元素可不同,当内嵌元素遇到浮动元素时,它们会包围在浮动元素边界的周围(最初“float”就是用于实现文字环绕图片的效果的)。

3.使用“float”,你还需要知道:

  “float”属性浮动的位置跟你的html文件中添加了“float”属性的元素的位置顺序有关,浮动元素只会跟在它的上一个元素(html文件中,浮动元素的上一个元素)后面进行浮动。

web学习总结之布局的更多相关文章

  1. (数据科学学习手札103)Python+Dash快速web应用开发——页面布局篇

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程Python+Dash快速web ...

  2. Web学习之css

    CSS指层叠样式表(Cascading Style Sheets),CSS 是标准的布局语言,用来控制元素的尺寸.颜色.排版.CSS 由 W3C 发明,用来取代基于表格的布局.框架以及其他非标准的表现 ...

  3. WEB学习感受

    web学习感受 1.html前端知识比较好学,各种标签只需要记住关键的就行例如:body h1,p,div,tr,td,ul,li,就行了. 2.css学习前期还好, 后期关键布局和样式知识点较多,而 ...

  4. 零基础快速入门web学习路线(含视频教程)

    下面小编专门为广大web学习爱好者汇总了一条完整的自学线路:零基础快速入门web学习路线(含视频教程)(绝对纯干货)适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利 ...

  5. WEB学习路线2019完整版(附视频教程+网盘下载地址)

    WEB学习路线2019完整版(附视频教程+网盘下载地址).适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利.高薪水的职业了.所以现在学习web前端开发的技术人员也是 ...

  6. 【Flutter学习】页面布局之基础布局组件

    一,概述 Flutter中拥有30多种预定义的布局widget,常用的有Container.Padding.Center.Flex.Row.Colum.ListView.GridView.按照< ...

  7. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  8. 【转载】Web移动端Fixed布局的解决方案

    特别声明:本文转载于EFE的<Web移动端Fixed布局的解决方案>.如需转载,烦请注明原文出处:http://efe.baidu.com/blog/mobile-fixed-layout ...

  9. 12个学习 CSS3 网站布局设计的优秀案例

    网络上有很多的 CSS 画廊站点供大家对各类网站作品进行打分和评论,每天有数以百计的优秀网站被推荐上面,这对于网页设计师来说是很好的灵感来源.今天,我们选择了15赢得 CSS 设计大奖的优秀作品,帮助 ...

随机推荐

  1. JAVA 跑马灯文字效果

    JAVA跑马灯文字效果的实现: 1. 首先创建一个继承JFrame类的HorseRaceLightTextFrame窗体类,代码如下: package com.example.horseracelig ...

  2. 与阿根廷一起学习Java Web四个发展:对于信息传输和信息传输

    发送短信和通用身份验证和用户注册系统消息提示功能模块,但是实现代码过于复杂.使用JSPGen后,深深发送消息.SMS程序包使复杂的简单非常活跃. 在短信模块:支持两种模式,它们被发送到第三方.地方平台 ...

  3. HTTP工作原理

     HTTP工作过程 HTTP协议定义Webclient怎样从Webserver请求Web页面,以及server怎样把Web页面传送给client.HTTP协议採用了请求/响应模型. client向 ...

  4. js 性能优化整理之 高频优化

    mousemove 拖拽操作 var count = 0; elem.onmousemove = function(){ count++; // 当计数器为偶数的时候不执行mousemove if( ...

  5. UVa 10012 - How Big Is It? 堆球问题 全排列+坐标模拟 数据

    题意:给出几个圆的半径,贴着底下排放在一个长方形里面,求出如何摆放能使长方形底下长度最短. 由于球的个数不会超过8, 所以用全排列一个一个计算底下的长度,然后记录最短就行了. 全排列用next_per ...

  6. Java NIO系列教程(三) Buffer(转)

    Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的. 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被包装成NIO ...

  7. Objective-C基调(4)Category

    OC它提供了一种不同的方式--Category,可以动态地添加新的行为已经存在的类(方法),这确保了较小的类的原始设计,然后逐渐加入扩展. 正在使用Category扩张的上课时间,你并不需要创建一个子 ...

  8. In Oracle 11g, how to change the order of the results of a sql without “order by”?(转)

    oracle 11g 当sql语句中不加order by的时候,好像是按rowid的顺序返回结果的.我也看过一些相关的文档,oracle的官方意思就是不加order by,就不保证输出的顺序. 那么, ...

  9. three.js 来源目光(十三)Math/Ray.js

    商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发 ...

  10. Nagios显示器MySQL一个错误:NRPE: Unable to read output具体的解决过程

    前言:nagios介面.见监测mysql服务错误,如下面: Warning:NRPE: Unable to read output 1,跟nagios显示器server上check下 1.1.运行ch ...