【Web】CSS中的浮动float
CSS中的float
复习一波 简单记录 - 慕课网 - 从网页搭建入门JavaWeb
1、float浮动属性
float中的四个参数
float:left; 左浮动
float:right;右浮动
float:none;不浮动
float:inherit;继承浮动
控制元素
inherit 子元素继承父元素的浮动属性,父元素没有float ,inherit 子元素失效没有继承
例子:
左浮动 这两个 块元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
*{
margin: 0;
padding: 0;
}
.test{
width: 100px;
height: 100px;
background: red;
float: left;
}
</style>
</head>
<body>
<div class="test"></div>
<div class="test"></div>
</body>
</html>
继承父元素 子元素左浮动
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
*{
margin: 0;
padding: 0;
}
.per{
width: 300px;
height: 300px;
background: blue;
float: left;
}
.test{
width: 100px;
height: 100px;
background: red;
float: inherit;
}
</style>
</head>
<body>
<div class="per">
<div class="test"></div>
<div class="test"></div>
</div>
</body>
</html>
两个元素 右浮动 1到右边 2挨着 也就是形成了 2 1 这样的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
*{
margin: 0;
padding: 0;
}
.test{
width: 100px;
height: 100px;
background: red;
margin-right: 10px;
float: right;
}
</style>
</head>
<body>
<div class="test">1</div>
<div class="test">2</div>
</body>
</html>
改为了float:left;
结果为: 1 2
float属性定义了元素在哪个方向进行 动
在HTML中任何元素都是可以浮动的
一旦元素添加了float 脱离原来的
2、float文字环绕图片
float属性实现文本环绕效果
float设计 文字环绕着图片的
例子:实现比较简单文字环绕图片效果
img float:right 图片被文字环绕了 右环绕
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
*{
padding: 0;
margin: 0;
}
.per{
width: 500px;
height: 500px;
}
img{
float: right;
}
</style>
</head>
<body>
<div class="per"><img src="logo.png" alt="">从网页搭建入门JavaWeb导学视频
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
步骤1
网页搭建入门之HTML与CSS
Java Web入门的第一步!本步骤介绍前端的HTML、CSS基础,以及浮动和定位等内容,学会应用布局进行页面开发。
第1课 HTML入门
第2课 CSS入门
第3课 CSS浮动
第4课 CSS定位
步骤2
网页搭建入门之JavaScript与前端案例
JavaScript是前端开发中非常重要的内容!除了JavaScript语法,还安排了计算器、油画商城和轮播图等案例,最终能开发出专业美观的页面。
第1课 JavaScript入门
第2课 案例:仿计算器
第3课 前端油画商城案例
第4课 项目:JavaScript轮播图
第5课 网页搭建测试
步骤3
Java Web入门
本步骤带领大家进入Java Web的世界,掌握JSP、Servlet、Cookie、Session等内容,通过案例学会使用JSTL进行数据展示。
第1课 XML入门
第2课 Servlet入门
第3课 JSP入门
第4课 Servlet与JSP进阶
第5课 JSTL与EL表达式
第6课 Java Web基础入门测试
步骤4
Java Web进阶
本步骤介绍过滤器、监听器,以及JSON、Ajax和正则表达式等开发必备技能,并通过案例学习文件上传和验证码等功能开发。
第1课 JSON入门
第2课 jQuery与Ajax入门
第3课 Java正则表达式
第4课 过滤器
第5课 监听器
第6课 FreeMarker
第7课 项目:登录注册功能
第8课 Java Web基础进阶测试</div>
</body>
</html>
这是为什么呢?
变成块状元素
例如:内联元素不具有宽度高度 加了float之后 变成了块状元素
元素 设置了浮动属性 元素脱离正常的标准流文档流 但依然占有正常文档流的空间
(现在占的空间大小)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.test{
width: 100px;
height: 100px;
background: red;
float: left;
}
.bro{
width: 400px;
height: 300px;
border: 1px solid #cccccc;
}
</style>
</head>
<body>
<div class="bro">
<span class="test"></span>
Java Web入门的第一步!本步骤介绍前端的HTML、CSS基础,以及浮动和定位等内容,学会应用布局进行页面开发。
Java Web入门的第一步!本步骤介绍前端的HTML、CSS基础,以及浮动和定位等内容,学会应用布局进行页面开发。
Java Web入门的第一步!本步骤介绍前端的HTML、CSS基础,以及浮动和定位等内容,学会应用布局进行页面开发。
</div>
</body>
</html>
3、float浮动的真正原因以及副作用分析
CSS的定位机制
1、标准流(普通流)
2、定位
3、浮动
浮动
使得元素脱离了标准流
影响周围的元素
一旦当前的元素浮动,其他的元素受到干扰
而浮动的元素不占有原始空间 ,无法检测浮动元素(子元素)的高度,会导致父元素塌陷
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
*{
margin: 0;
padding: 0;
}
.per{
width:500px;
height: auto;
border: 1px solid #000;
}
.test{
width: 80px;
height: 30px;
background: red;
border: 1px solid #FFF;
}
.bro{
width: 100px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div class="per">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
<div class="bro"></div>
</body>
</html>
子元素<div class="test"></div>
没有设置 float: left;
结果:
设置了float属性,加上了 float: left;
结果
本来子元素4个 height: 30px; 占120px 设置float属性,变了30px父元素塌陷了,其他元素异位跟上去了。
父元素塌陷以及其他元素异位了
4、清除浮动的四种解决方法
清除浮动 -> 解决塌陷问题
浮动副作用的解决
- 手动给父元素添加高度
- 通过clear清除内部和外部浮动
- 给父元素添加overflow属性并结合zoom:1使用
- 给父元素添加浮动
手动给父元素添加高度
弊端 变化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
.per{
width: 500px;
height: 32px;
border: 1px solid #000;
}
.test{
width: 100px;
height: 30px;
background: red;
border: 1px solid #FFF;
float: left;
}
</style>
</head>
<body>
<div class="per">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
</body>
</html>
本来三个子元素 浮动高度为 30px,我父元素设置个32px就能解决塌陷问题,后面变了,多了好几个子元素,浮动高度又变了,那我父元素又得设置,麻烦。
通过clear清除内部和外部浮动
Clear属性
- clear:none
- clear:left 不允许左边有浮动的对象
- clear:right
- clear:both 不允许有浮动的对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
.per{
width: 500px;
height: auto;
border: 1px solid #000;
}
.test{
width: 100px;
height: 30px;
float: left;
background: red;
border: 1px solid #FFF;
}
.clear{
clear: both;
}
</style>
</head>
<body>
<div class="per">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="clear"></div>
</div>
</body>
</html>
受影响的元素不改变,你浮动就浮动呗。
给父元素添加overflow属性并结合zoom:1使用 解决塌陷问题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
.per{
width: 500px;
height: auto;
border: 1px solid #000;
overflow: hidden;
zoom:1;
}
.test{
width: 1000px;
height: 30px;
background: red;
border: 1px solid #FFF;
float: left;
}
</style>
</head>
<body>
<div class="per">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
</body>
</html>
overflow也可以处理溢出问题 子元素超了父元素很多 超的截取
zoom IE的专用属性
子元素的高度 放大缩小父元素的高度
两个一起解决 兼容问题
但也不好 会截断子元素
给父元素添加浮动
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
.per{
width: 500px;
height: auto;
border: 1px solid #000;
float: left;
}
.test{
width: 100px;
height: 40px;
background: red;
border: 1px solid #FFF;
float: left;
}
.bro{
width: 100px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div class="per">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
<div class="bro"></div>
</body>
</html>
以毒攻毒,子元素浮动那我父元素也来浮动,塌陷撑开
但父元素好了其他元素还是异常,比如这个<div class="bro"></div>
还是考虑之前的,那怎么办呢》
其他元素加clear
比较好的解决方法(给父元素添加浮动 ,其他元素加clear )
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
.per{
width: 500px;
height: auto;
border: 1px solid #000;
float: left;
}
.test{
width: 100px;
height: 40px;
background: red;
border: 1px solid #FFF;
float: left;
}
.bro{
width: 100px;
height: 100px;
background: blue;
clear: both;
}
</style>
</head>
<body>
<div class="per">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
<div class="bro"></div>
</body>
</html>
完美解决
那我以后就选(给父元素添加浮动 ,其他元素加clear )
5、实际应用 导航效果
实战实现慕课网的导航效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
*{
padding: 0;
margin: 0;
}
.head{
width: 100%;
height: 64px;
}
.logo{
width: 160px;
height: 40px;
float: left;
}
.nav{
width: 320px;
height: 64px;
float: left;
}
.nav-li{
width: 80px;
height: 64px;
text-align: center;
line-height: 64px;
color: #333;
float: left;
}
.icons{
width: 320px;
height: 64px;
float: right;
}
.i01{
width: 64px;
height: 64px;
float: left;
background: url("001.png") center center no-repeat;
}
.i02{
width: 64px;
height: 64px;
float: left;
background: url("002.png") center center no-repeat;
}
.i03{
width: 64px;
height: 64px;
float: left;
background: url("003.png") center center no-repeat;
}
.i04{
width: 64px;
height: 64px;
float: left;
background: url("004.png") center center no-repeat;
}
.i05{
width: 64px;
height: 64px;
float: left;
background: url("005.png") center center no-repeat;
}
</style>
</head>
<body>
<div class="head">
<div class="logo">
<img src="logo.png" width="160" height="40" alt="">
</div>
<div class="nav">
<div class="nav-li">实战</div>
<div class="nav-li">路径</div>
<div class="nav-li">猿问</div>
<div class="nav-li">手记</div>
</div>
<div class="icons">
<div class="i01"></div>
<div class="i02"></div>
<div class="i03"></div>
<div class="i04"></div>
<div class="i05"></div>
</div>
</div>
</body>
</html>
好了 float浮动
【Web】CSS中的浮动float的更多相关文章
- 如何理解CSS中的浮动 :其实他就像乘坐扶梯一样
只要你用过自动扶梯,你就能很快的理解CSS中的浮动(Float). 你肯定遇到过这样的情况: 做好了,你想用CSS浮动来调整元素间的位置关系. 在写完代码之后,你发现浮动元素没出现在你设想 ...
- CSS 中,用 float 和 position 的区别是什么?
CSS 中,用 float 和 position 的区别是什么? 呃,其实这个命题有误,只有position才是定位,float不能说是定位,不过你可以说这两种布局方式有什么不同.float和posi ...
- CSS中的浮动和定位
在了解CSS中的浮动和定位之前有必要先了解清楚标准流和脱离标准流的特性 标准流的默认特性 1.分行.块级元素,并且能够dispay转换. 2.块级元素(block):默认独占一行,不能并列显示,能够设 ...
- css中的浮动以及清除浮动
对于css中的浮动问题,曾经有一段时间我是懵懵懂懂的感觉,对于float这个属性一直是似懂非懂的赶脚,对于这种让我们一直懵懵懂懂的知识点,我们就需要找个时间点,仔仔细细的去将它搞懂,从这个过程中我们也 ...
- 【转】CSS中的浮动和清除浮动
以下转自<CSS中的浮动和清除浮动,梳理一下!> 浮动到底是什么? 浮动核心就一句话:浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素.请默念3次! 浮动最初设计的目 ...
- 详细解读css中的浮动以及清除浮动的方法
对于前端初学者来说,css浮动部分的知识是一块比较难以理解的部分,下面我将把我学习过程中的心得分享给大家. 导读: 1.css块级元素讲解 2.css中浮动是如何产生的 3.出现浮动后,如何清除浮 ...
- css3-9 css中的浮动怎么使用
css3-9 css中的浮动怎么使用 一.总结 一句话总结:用来做一般的行效果,比如说手机左右分布的头部导航栏.浮动的东西放到一个div中去,里面的内容根据需求左浮动或者右浮动,然后记得加上清除浮动. ...
- CSS学习系列4 -- 再说CSS中的浮动运用及clear:left/right实际用法
在 CSS学习系列2 -- CSS中的清除浮动 中,我们详细说了CSS中清除浮动的方法及使用 后来我自己在项目开发一个需要使用浮动的网页时,进行了实际运用,加上后来看到一篇好文章.所以就在这里再次写篇 ...
- css 中的浮动
css中 浮动的作用: 使元素脱离正常的文档流并使其移动到其父元素的“最左边”或“最右边”. css中 浮动的特点: 1)改变元素类型,使元素支持宽高: 2)半脱离文档流: 3)文本环绕: 4)顶对齐 ...
随机推荐
- easyui textbox validatebox 默认显示tip提示
easyui验证是不显示tip提示的,验证不通过时只将输入框变红,要触发一个mouse(鼠标放上去)的事件才会显示tip. 现在想要验证不通过时直接显示提示,给用户更加直观的错误提示. 找到源代码中验 ...
- 恕我直言,你可能连 GitHub 搜索都不会用 - 如何精准搜索的神仙技巧
大家好,我是你们的 前端章鱼猫,一个不喜欢喵.又不喜欢吃鱼的超级猫 ~ 今天给大家带来的是 在 GitHub 上如何精准搜索的神仙技巧. [前端GitHub:https://github.com/bi ...
- SpringBoot + Mybatis-Plus 实现多数据源简单示例
1. 简介 在单体项目中,经常出现想要访问多个数据源的情况,或者因为某些性能瓶颈,将大数据量的业务表分离到另一个库等情况. 实现多数据源的方案有很多,Mybatis-Plus提供了非常简单的实 ...
- 安装VisualStudioCode
下载VisualStudioCode https://code.visualstudio.com/ 安装插件
- 07-flask-使用sqlalchemy
代码 from flask import Flask, render_template from sqlalchemy import create_engine from sqlalchemy.ext ...
- PHP简单的计算位数的函数
一个简单的PHP计算位数的函数: 1 <?php 2 //一个简单的计算字符串有长度的函数 3 #开始定义函数 4 function count_digit($number){ 5 $count ...
- 关于新创公司所需的icp,网文,软著和备案的申请
刚从一个集团离职来到了创业团队,前期是什么都没有,甚至是公司名字都不知道,哈哈.所以就有了后面的坑踩了一遍又一遍.刚开始是在霍尔果斯注册,结果办icp费了半年的时间,东找西找还没下证.又碰上新疆严查不 ...
- MVC 微信网页授权 获取 OpenId
最近开发微信公众平台,做下记录,以前也开发过,这次开发又给忘了,搞了半天,还是做个笔记为好. 注意框架为MVC 开发微信公众平台.场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页 ...
- frp杀毒软件报毒?
原文地址:https://wuter.cn/1909.html/ 部分用户下载frp之后,windows defender可能会报毒,并且自动删除内网穿透主程序,导致无法穿透. 首先看一下报毒的原理是 ...
- 远程调用get和post请求 将返回结果转换成实体类
package org.springblade.desk.utils; import org.apache.http.client.ResponseHandler; import org.apache ...