CSS(6)---通俗讲解浮动(float)
CSS(6)---通俗讲解浮动(float)
CSS有三模块:盒子模型、浮动 、定位。上篇博客有讲到 盒子模型地址:CSS(5)---通俗讲解盒子模型
一、理解浮动
1、概念
概念 浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次。
如果是第一次听说肯定还是还是一脸懵,下面我一步一步通过例子来解释这句话。
举例说明
我们知道div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的标准流。
如下图

可以看出,因为div是块级元素,所以即使div2的宽度很小,页面中一行可以容下div2和div3,div3也不会排在div2后边,因为div元素是独占一行的。
那么我们再看下浮动的作用,这里我将div2浮动(对div2添加float:left;左浮动属性)
刷新页面

通过上下两张图片对比,我们可以直观感觉到,div2有种浮起来的感觉,从之前的平面到立体的感觉。也因为div2浮起来了,那么它之前所占的位置也就空出来了,
那么div3和div4就可以占据之前div2的位置,所以它们都往上移动了。这样我们最终看到的效果就是div2和div3,div4有重叠,而且div2是在最上层。
那如果这是我在把div3也设置左浮动呢 (对div3添加float:left;左浮动属性)
再次刷新页面

同样我们可以很直观的看到,因为div2和div3目前都是左浮动,所以它们的位置都空出来了,这个时候div4就可以往上移动,所以div2和div3都把div4部分给覆盖了。
通过上面示例,我们应该可以理解什么是浮动。这里附上上面示例的代码,可以自行再研究下
<!DOCTYPE html>
<html>
<head>
<title>css浮动</title>
<style type="text/css">
div {
text-align: center;
}
.one {
background-color: gray;
width: 300px;
height: 50px;
}
.two {
background-color: yellow;
width: 100px;
height: 120px;
/*float:left;*/
}
.three {
background-color: red;
width: 150px;
height: 50px;
/*float:left;*/
}
.four {
background-color: green;
width: 300px;
height: 50px;
}
</style>
</head>
<body>
<div class="one"> div1</div>
<div class="two"> div2</div>
<div class="three">div3 </div>
<div class="four"> div4</div>
</body>
</html>
通过上面也可以得出一些结论:
1、假如某个div元素A是浮动的,如果A元素上一个元素也是浮动的,那么A元素会跟随在上一个元素的后边(如果一行放不下这两个元素,那么A元素会被挤到下一行);
2、如果A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变,也就是说A的顶部总是和上一个元素的底部对齐。
2、浮动的作用
浮动它主要有两个作用:1、实现文本围绕效果。2、实现块级元素在一行显示布局。
1)实现文本围绕效果
示例
<!DOCTYPE html>
<html>
<head>
<title>css浮动</title>
<style type="text/css">
.father {
border: 3px solid #005588;
padding: 1px;
width: 300px;
}
img {
width: 150px;
height: 150px;
float:left;
}
</style>
</head>
<body>
<div class = "father">
<img src="1.jpeg"/>
这件衣服价值百万,奢侈品牌是指服务于奢侈品的品牌。它是品牌等级分类中的最高等级品牌。在生活当中,奢侈品牌享有很特殊的市场和很高的社会地位。在商品分类里,与奢侈品相对应的是大众商品。奢侈品不仅是提供使用价值的商品,更是提供高附加值的商品。
</div>
</body>
</html>
运行结果

2)实现块级元素在一行显示布局
现在很多时候会通过浮动,让多个div实现一行显示。当然当我们没有了解浮动之前我们可以通过将块级元素转换为行内块级元素来实现(display: inline-block)。
如图

这样确实可以将多个div实现在同一行显示。但这里会有两个小问题
1、我们可以看到div之前会有小缝隙,很难去除。
2、如果我想让其中一个div显示在最右边,实现起来会比较麻烦。
而上面两个问题可以通过浮动很轻易的解决。
示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>cssdiv元素局一行</title>
<style>
div {
display: inline-block;
width: 120px;
height: 80px;
/*float: left;*/
}
.one {
background-color: pink;
}
.two {
background-color: purple;
}
.three {
background-color: red;
/*float: right;*/
}
</style>
</head>
<body>
<div class="one">div1</div>
<div class="two">div2</div>
<div class="three">div3</div>
</body>
</html>
运行结果

很明显已经解决。
二、浮动语法
1、浮动的语法
在 CSS 中,我们通过 float 属性实现元素的浮动。float 属性定义元素在哪个方向浮动。
基本语法格式
选择器 {float:属性值;}
属性值

2、浮动特性
浮动脱离标准流,不占位置,会影响标准流。浮动只有左右浮动。
注意 浮动的元素总是找理它最近的父级元素对齐。但是不会超出内边距的范围。
如图

浮动特性
1、浮动脱离标准流,不占位置,会影响标准流。浮动只有左右浮动。
2、加了浮动的元素盒子是浮起来的,漂浮在其他的标准流盒子上面。
3、加了浮动的盒子,不占位置的,它浮起来了,它原来的位置会给后面标准流的盒子。
4、一个父盒子里面的子盒子,如果其中一个子级有浮动的,则其他子级都需要浮动。这样才能一行对齐显示。
5、元素添加浮动后,元素会具有行内块元素的特性。元素的大小完全取决于定义的大小或者默认的内容多少浮动根据元素书写的位置来显示相应的浮动。
6、假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。
总结 浮动的目更多的是为了让多个块级元素同一行上显示。
参考
3、CSS 浮动
4、CSS浮动详解
```
你如果愿意有所作为,就必须有始有终。(8)
```
CSS(6)---通俗讲解浮动(float)的更多相关文章
- CSS(7)--- 通俗讲解清除浮动
CSS(7)--- 通俗讲解清除浮动 上一篇讲了CSS浮动 博客地址:CSS(6)---通俗讲解浮动(float) 一.理解清除浮动 1.为什么要清除浮动 我们前面说过,浮动本质是用来做一些文字混排效 ...
- CSS(8)---通俗讲解定位(position)
CSS(8)---通俗讲解定位(position) CSS有三种基本的定位机制: 普通流.浮动.定位.前面两个之前已经讲过,详见博客: 1.CSS(5)---通俗讲解盒子模型 2.CSS(6)---通 ...
- web前端css定位position和浮动float
最近做了几个项目:配资公司,ecmal商城等,客户对前台要求都很高.所以,今天来谈谈css的基础,以及核心,定位问题. div.h1或p元素常常被称为块级元素.这意味着这些元素显示为一块内容,即“块框 ...
- CSS定位机制:浮动 float及清除浮动的常用方法
CSS的定位机制 1.普通流(标准流) 默认状态,元素自动从左往右,从上往下排列 块元素的特征: 独占一行 可以设置宽高 如果不设置宽度,宽度默认为容器的100% 常见的块元素:div p h1-h6 ...
- 【CSS】 布局之浮动float和绝对定位absolute的选择
浮动float: 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样.(W3C) 绝对定位 ...
- 精简高效CSS系列之二——浮动float
一.浮动基础知识 假如一个页面上有3个div块,如下排列: 图1:不使用浮动 图2:向右浮动 图2说明了框1脱离了文档流向右移动,直到它的右边缘碰到包含框的右边缘为止. 图3:向左浮动 图3说明了框1 ...
- CSS(5)---通俗讲解盒子模型
CSS(5)---盒子模型 盒子模型四个关键字:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属性. 一.概念 1. 概念 盒子 ...
- CSS盒子模型(boeder)+浮动(float)+定位(position)
盒子的上下层:margin--background-color--background-image--padding--content--border(最外层) 计算一个盒子宽 = 内容的宽(wid ...
- CSS学习笔记——CSS中定位的浮动float
昨天在解决了盒模型的问题之后又出现了新的知识模糊点:浮动和绝对定位?今天先解决浮动相关的问题,首先列举出想要解决的问题: 1.浮动到底是怎么样的? 2.浮动对元素的影响有什么? 3.浮动主要用来干什么 ...
随机推荐
- javascript生成规定范围的随机整数
Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布. 我 ...
- TensorFlow2.0(7):激活函数
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 就个人银行账户管理程序谈谈C++和Java的异同
4_9 同: Java和C++都是面向对象的语言.都有数据成员,方法,访问权限的概念. 异: 访问权限上,非private时Java的默认访问权限是包.而C++的默认访问权限是private.Java ...
- WCE-hash注入工具使用
wce的使用说明如下 参数解释:-l 列出登录的会话和NTLM凭据(默认值)-s 修改当前登录会话的NTLM凭据 参数:<用户名>:<域 ...
- ThinkPHP架构(一)-TP原理及路径问题及后台实现实例
一直用CSDN的博客,由于域名当时注册写的不合适,现在想来博客园写博客,以后要坚持写啦,记录自己的技术学习路程 本人两个月前,刚完成基于PHP的研会门户网站,虽然实现了基本功能,但感觉技术有些单薄,便 ...
- webpack——简单入门
1.介绍 Webpack 是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步 ...
- Java代码性能优化的 39个细节
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. 1:在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提 ...
- SpringBoot 开发案例之参数传递的正确姿势
前言 开发这么多年,肯定还有不少小伙伴搞不清各种类型的参数是如何传递的,很多同学都是拿来即用,复制粘贴一把撸,遇到问题还是一脸懵逼. 姿势 学习参数传递的正确姿势,先说怎么做,再说为什么,本质上还是复 ...
- task一个任务结束后执行另一个操作
//创建一个任务 Task<int> task = new Task<int>(() => { ; //显示进度条遮照层, this.ShowPrograssBar(); ...
- python3.8安装flask出现错误“ModuleNotFoundError: No module named '_ctypes'”
本想在CentOS下配置flask+nginx+uwsgi环境,结果安装最基础的flask包都出了问题...以下是我的环境: 服务器:阿里云ECS CentOS7 python版本:3.8.0 问题描 ...