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.浮动主要用来干什么 ...
随机推荐
- MySQL优化与实践
一.MySQL优化概括 二.SQL优化 实践: 1.查看是否开启了慢查询日志 show variables like 'slow_query_log' 没有开启 2.查看是否开启了未使用索引SQL记录 ...
- tf.split
tf.split(dimension, num_split, input):dimension的意思就是输入张量的哪一个维度,如果是0就表示对第0维度进行切割.num_split就是切割的数量,如果是 ...
- 服务器端 SOCKET 编程
使用 Socket 的程序在使用 Socket 之前必须调用 WSAStartup() 函数, 此函数在应用程序中用来初始化 Windows Socket DLL, 只有此函数调用成功后,应用程序才可 ...
- thinkphp5底层基类封装、内部类函数
记录下thinkphp5自定义底层基类.内部类函数使用笔记 大部分笔记来自tp手册. 底层常用代码的封装 在控制器中基类的起着至关重要的作用,整个项目的代码安全,复杂程度,易读性都要看你项目的基类架构 ...
- JSON:JSON对象和JSON数组混排的复杂字符串
在java中的一个好用的JSON工具包:net.sf.json.JSONObject 和 net.sf.json.JSONArray 一 解析JSON对象和JSON数组类型混排的复杂字符串 举个例子: ...
- Java Stream函数式编程案例图文详解
导读 作者计划把Java Stream写成一个系列的文章,本文只是其中一节.更多内容期待您关注我的号! 一.什么是Java Stream? Java Stream函数式编程接口最初是在Java 8中引 ...
- [BZOJ2724] 蒲公英
题目背景 亲爱的哥哥: 你在那个城市里面过得好吗? 我在家里面最近很开心呢.昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了.我觉得把那么可怕 ...
- [CODEVS3366] 矿石
题目描述 Description 经历了千辛万苦,小J找到了N块矿石.这些矿石都有毒性,但只要将两块矿石放在一起,再分开即可解毒.但任一两块矿石都可以互相吸引.为了降低吸引力,小J将他们放入一个直径仅 ...
- Halcon一日一练:图像分割之阈值分割1
先了解什么是阈值,度娘告诉我的是:一个领域或一个系统的界限称为阈,其数值称为阈值.在图像中,我们把图像看成一个由像素灰度值组成的数集,那么阈,就是这个图像中,根据目标与背景灰度值的差异,选取的一个合适 ...
- MyBatis 开发手册
这一遍看Mybatis的原因是怀念一下去年的 10月24号我写自己第一个项目时使用全配置文件版本的MyBatis,那时我们三个人刚刚大二,说实话,当时还是觉得MyBatis挺难玩的,但是今年再看最新版 ...