css --- [读书笔记] 浮动(float) 与 清除浮动

说明

  • 源代码
  • 学习

1. 浮动

1.1 CSS布局的三种机制

网页布局的核心 — 利用 CSS 来摆放盒子

CSS提供了3种机制来设置盒子的摆放位置: 标准流、浮动和定位.

  1. 标准流:
    • 块级元素(div、hr、p、h1~h6、ul、ol、dl、form、table)会独占一行,从上向下顺序排列
    • 行内元素(span、a、i、em)按照顺序从左到右排列,遇到父元素边缘自动换行
  2. 浮动:
    • 让多个盒子一行显示
  3. 定位:
    • 将盒子定在浏览器的某一个位置

1.2 浮动

1.2.1 让多个盒子在同一行显示

div{float: left;
}
  • 元素的浮动式值: 设置了浮动属性的元素会: 脱离普通标准流、移动到指定位置.

1.3 什么是浮动(float)

  • 浮动: 会改变float属性的display属性(会变为类似于inline-block)
div{width: 200px;height: 200px;background-color: pink;
}
  • 注意: 浮动的元素互相贴靠一起的,但是如果父级宽度装不下这些盒子,多出的盒子会另起一行对齐

1.4 浮动的目的(float)

我们使用浮动的核心目的 — 让多个块级盒子在同一行显示.

1.5 浮动的应用

浮动和标准流的父盒子搭配

我们直到,浮动式脱标的,会影响下面的标准流元素,此时,我们需要给浮动的元素添加一个标准流的父亲,这样,最大化的减小了对其他标准流的影响.

一个完整的网页,是 标准流 + 浮动 + 定位

1.6 浮动的扩展

1) 浮动元素与父盒子的关系

  • 子盒子的浮动参照父盒子对齐
  • 不会与父盒子的边框重叠,也不会超过父盒子的内边距

2) 浮动元素与兄弟盒子的关系

在一个父级盒子种,如果前一个兄弟盒子是:

- 浮动的,那么当前盒子会与前一个盒子的顶部对齐
- 普通流,那么当前盒子会显示在前一个兄弟盒子的下方

浮动只会影响当前的或者后面的标准流盒子,不会影响前面的标准流

建议:如果一个盒子里面有多个盒子,如果其中一个盒子浮动了,其他兄弟也应该浮动


2. 为什么要清除浮动

2.1 为什么要清除浮动

因为父级盒子很多情况下,不方便给高度,但是盒子浮动就不占有位置,最后父级盒子高度为0,就影响了下面的标准流盒子.

  • 总结:
    • 由于浮动元素不再占用文档里的位置,所以它会对后面的元素排版产生影响
    • 准确地说,并不是清除浮动,而是清除浮动后造成的影响

2.2 清除浮动的本质

清除浮动主要是为了解决父级元素因为子级元素浮动引起内部高度为0的问题

2.3 清除浮动的方法

清除浮动只会,父级就会根据盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

  • 语法:
选择器{clear: both;}
属性值描述
left不允许左侧有浮动元素
right不允许右侧有浮动元素
both同时清除左右两侧浮动的影响

但是我们实际工作做那个,几乎只用 clear: both

1) 额外标签法(隔墙法)

W3C推荐的做法是通过在浮动元素末尾添加一个空的标签<div style="clear: both">,或其他标签br等亦可
  • 优点: 通俗易懂,书写方便
  • 缺点: 添加许多无意义的标签,结构化较差

2) 父级元素添加overflow属性方法

可以给父级添加: overflow为 hidden| auto | scroll 都可以实现
  • 优点: 代码简洁
  • 缺点: 内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素

3) 使用after伪元素清除浮动

:after方式为空元素额外标签法的升级版,好处是不再单独加标签了

使用方法:

.clearfix:after{content: "";display: block;height: 0;clear:both;visibility: hidden;
}
.claerfix {*zoom: 1;			/* ie6,7清除浮动的样式 */
}
  • 优点: 符合闭合浮动思想,结构语义化明确
  • 缺点: ie6~7不支持after

4) 使用双伪元素清除浮动

使用方法:

.clearfix:before, .clearfix:after {content:"";display: table;
}
.clearfix:after {clear: both;
}
.clearfix {*zoom: 1;
}
  • 优点: 代码更简洁
  • 缺点: 由于IE6~IE7不支持:after, 使用zoom:1触发hasLayout.

2.4 清除浮动总结

  1. 父级没高度
  2. 子盒子浮动
  3. 影响兄弟元素布局
清除浮动的方式优点缺点
额外标签法(隔墙法)通俗易懂,书写方便添加许多无意义的标签,结构化较差
父级overflow: hidden书写简单溢出隐藏
父级伪元素结构语义化正确兼容性问题(ie6~ie7)
父级伪元素结构语义化正确兼容性问题(ie6~ie7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shiro身份认证---转

目录1.Shro的概念2.Shiro的简单身份认证实现3.Shiro与spring对身份认证的实现前言&#xff1a; Shiro 可以非常容易的开发出足够好的应用&#xff0c;其不仅可以用在 JavaSE 环境&#xff0c;也可以用在 JavaEE 环境。Shiro 可以帮助我们完成&#xff1a;认证、授权、加密、会话…

模板 Trie树

模板 Trie树 code&#xff1a; #include <iostream> #include <cstdio>using namespace std;const int wx20017;inline int read(){int sum0,f1; char chgetchar();while(ch<0||ch>9){if(ch-)f-1; chgetchar();}while(ch>0&&ch<9){sum(sum<…

css --- [练手小项目]样式小结(字体、颜色的语义 清除浮动的使用)

说明 源代码 1.1 CSS属性书写顺序(重点) 建议遵循以下顺序: 1.布局定位属性: display / position / float / clear / visibility / overflow (建议display第一个写, 毕竟关系到模式) 2.自身属性: width / height / margin / padding / border / background 3.文本属性: co…

《Hive编程指南》14.3 投影变换的实践出错原因分析

自己在学习14.3节投影变换执行SQL语句hive (default)> SELECT TRANSFORM(col1, col2) USING /bin/cut -f1 AS newA, newB FROM a;时出现了这个错误 Ended Job job_local1231989520_0004 with errors Error during job, obtaining debugging information... FAILED: Executi…

链式前向星(转)

转自大佬博客https://blog.csdn.net/ACdreamers/article/details/16902023 我们首先来看一下什么是前向星. 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序, 并记录下以某个点为起点的所有边在数组中的起始位…

javascript --- [FormData的使用] 表单元素转换成表单 对象二进制文件上传

1. FormData的作用 1.1 将Form表单元素,转换成表单对象 在使用Ajax进行表单提交的时候,采用原生的js获取dom,然后添加属性.当表单项很多的时候,代码会很多.不利于后期阅读、维护. 这时,可以使用FormData对象,将HTML中的表单元素转换成表单对象,如下: <!-- 表单对象 -->…

android studio gradle 国内代理

使用阿里云的国内镜像仓库地址&#xff0c;就可以快速的下载需要的文件 修改项目根目录下的文件 build.gradle &#xff1a; buildscript { repositories { maven{ url http://maven.aliyun.com/nexus/content/groups/public/} } } allprojects { …

爬虫—01-爬虫原理与数据抓取

爬虫的更多用途 12306抢票 网站上的头票 短信轰炸关于Python网络爬虫&#xff0c;我们需要学习的有&#xff1a; Python基础语法学习&#xff08;基础知识&#xff09;对HTML页面的内容抓取&#xff08;数据抓取&#xff09;对HTML页面的数据提取&#xff08;数据提取&#xff…

javascript --- [FormData的使用] 文件上传进度条展示 文件上传图片即使预览

1. 准备工作 因为要发送Ajax请求,而Ajax技术的运行需要网站环境,因此其中一个解决方案是,将页面作为网站的静态资源暴露出来,然后通过浏览器进行访问. 1.1 静态资源 使用express将public下面的资源暴露出来在根目录下面新建一个public文件夹和一个app.js文件 // app.js con…

2018年春阅读计划---阅读笔记4

uml图的几大特点&#xff1a;容易掌握 2.面向对象 3.可视化&#xff0c;表达能力强大 4.容易掌握使用 5.与编程语言的关系。用c&#xff0c;java等编程语言可以实现一个系统&#xff0c;支持uml 的一些工具&#xff0c;可以根据uml所建立的系统模型自动产生代码框架。 uml的5类…

TP5之安全机制

防止sql注入 1、查询条件尽量使用数组方式&#xff0c;具体如下&#xff1a; 1 $wheres array(); 2 3 $wheres[account] $account; 4 5 $wheres[password] $password; 6 7 $User->where($wheres)->find(); 2、如果必须使用字符串&#xff0c;建议使用预处理机制&am…

javascript --- [jsonp] script标签的妙用(绕过同源限制)

1. 同源 1.1 什么是同源 协议、域名、端口号相同 1.2 为什么有同源政策 同源政策是为了保护用户信息的安全,放置恶意的网站窃取数据。最初的同源政策是指A网站再客户端设置的Cookie,B网站是不能访问的. 随着互联网的发展,同源政策也越来越严格,在不同源的情况下,其中有一项…

SQL登录报错

在安装完SQL后&#xff0c;发现报出了error40和53的错误&#xff0c;作为小白的我也是一脸懵逼&#xff0c;明明一切都是按照默认加下一步安装的&#xff0c;为什么到了连接数据库的时候就出现了问题呢&#xff1f; 后来经过调查&#xff0c;发现需要将sql配置管理的ip中的一项…

复活

此刻--复活转载于:https://www.cnblogs.com/lyqlyq/p/9881646.html

javascript --- 瀑布流的实现

说明 源代码 1. 瀑布流 出现问题: 设计给的图片不是同一个尺寸大小,因此不能规则的放入到给定的DOM结构中.此时,需要使用瀑布流技术来解决这个问题 解决的思路: 让图片等宽、不等高 核心: 用到了定位 img {position: absolute;left: 最小的索引 * 图片的宽度;top: 最小的图…

不同权限访问详细细节

1 package com.package1;2 3 /**4 * 程序执行入口和调用方法在不同类但在同一个包中&#xff0c;除了private方法&#xff0c;其他任何权限的方法都可以都可相互调用5 * author Administrator6 *7 */8 public class Source {9 public static void main(String[] args) …

洛谷P2822组合数问题

传送门啦 15分暴力&#xff0c;但看题解说暴力分有30分。 就是找到公式&#xff0c;然后套公式。。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std;long long read(){char ch;bool f false;wh…

基于Docker的GoldenGate部署

前言Docker最近几年异常火爆&#xff0c;主要是因为其方便、快捷、轻量&#xff0c;相对于VM&#xff0c;它不需要占用太多资源&#xff0c;随时可以创建、删除&#xff0c;或在已有image上添加一些软件&#xff0c;再制作成另一个模板image供日后使用。Docker提供的Hub或priva…

javascript --- 防抖与节流

说明 源码 1. 防抖与节流 1.1 防抖 防抖: 触发事件后,在n秒内函数只执行一次 记忆: 你手比较抖,不小心按了按钮2下…你只希望它只执行一次.且按第二次结束时间算…这就用到了防抖技术 1.2 节流 节流: 连续发生的事件,在n秒内只执行一次函数 1.3 防抖与节流的区别 在一段…

bugku_本地包含

先上payload: 1、?hello);show_source(%27flag.php%27);// 2、?hello);include $_POST[zzz];// POST传参:zzzphp://filter/readconvert.base64-encode/resourceflag.php 3、?hellofile(%27flag.php%27) 4、?helloshow_source(flag.php) 首先我们来看源码&#xff1a; <?…