css:浮动

网页的本质上就是摆放盒子,把盒子摆到相应的位置上

css提供了三种传统的布局方式:

普通流(标准流):标签按默认方式排列,最基本的布局方式

浮动

定位

实际开发中,一个网页基本包含了三种这种布局方式

浮动

按照默认的标签布局方式,div只能占一行,也就是说不能出现两个div在同一行的情况

但是我们学了行内块模式,可以把块转化为行内块

display: inline-block;

可以看见虽然在一行,但是块与块的距离没办法调整,实际开发中,我们对横向块分布的距离是要精确到像素的

使用标准流难以让我们的盒子按想要的位置摆放

但是浮动可以,浮动最典型的应用就算让多个块级元素在一行内排列显示

所以我们网页布局的第一准则:多个块级元素纵向排列用标准流,横向排列找浮动

float: left/right/none/inherit;

盒子浮动的规则是:

  • left - 元素浮动到其容器的左侧
  • right - 元素浮动在其容器的右侧
  • none - 元素不会浮动(将显示在文本中刚出现的位置)。默认值。
  • inherit - 元素继承其父级的 float 值

如果给两个图片都施加left浮动,就会黏在一起

如果对他们施加了圆角边框会这样

如果一个left一个right就会紧挨父容器的左/右

浮动最典型的特性:脱离了标准流的控制。浮动的盒子不再保留原先位置

当菠萝吹雪放在草草的上面的时候,对菠萝吹雪施加float会使菠萝吹雪上浮,菠萝吹雪有了z轴,下面的曹操就会向上移动,占据原来菠萝吹雪的位置,呈现的效果就是和菠萝吹雪叠起来了

但是当草草放在上面的时候,对菠萝吹雪施加浮动,菠萝吹雪是不会向上顶端对齐的,因为他已经脱离标准流了

也就是说并不是所有的浮动都会盖在标准流上面,当标准流还是标准流的时候,它自己独占一行,他后面的浮动不可以盖在它上面;浮动的盒子只会影响后面的标准流,不会影响前面的标准流

一般防止出现这种问题,如果一个盒子里有很多盒子,其中一个盒子浮动了,就应该让剩下的兄弟盒子一起浮动

元素顶部对齐

浮动的元素对齐都是顶端对齐:

按上沿对齐捏

浮动的元素具有行内块的特性

当我们对行内元素施加了浮动以后,这个盒子就具有行内块元素的特性

平常你对span施加宽和高是没有作用的

  .x span {margin-top: 100px;background-color: aquamarine;width: 200px;height: 100px;}

但是如果给他施加浮动:

  .x span {margin-top: 100px;background-color: aquamarine;width: 200px;height: 100px;float: left;}

有宽高了!

其他元素也是这样的,如果没有宽的值会继承父亲的宽,但是变成行内块元素以后,就是行内块元素的属性,宽就是内部文字的宽

浮动元素经常和标准流的父级搭配使用

如果我们想要这样的效果怎么做:

可以看到盒子并不像我们写的盒子一样在最左和最右对齐,也不能保证大盒子在中间对齐

但是我们可以把浮动的盒子放在标准流的盒子里,让浮动的盒子在父级内浮动,就可以出现这样的效果了:

 .xy {background-color: azure;width: 700px;/* height: 500px; */margin: 0 auto;}//把x和y包进同一个盒子里

这样就又可以在正中间,又可以保持和body边框的间距

做个小demo:

放小米官网做排版

妈呀真是de死我了死bug

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}li {list-style: none;}.box {width: 1226px;height: 644px;background-color: beige;margin: 0px auto;overflow: hidden;}.box .left {width: 234px;height: 460px;background-color: rgba(105, 101, 101, .6);float: left;}.box .right {width: 992px;height: 460px;background-color: blueviolet;float: left;text-align: center;}.box .right .png1 {width: 992px;height: 460px;display: block;}.box .bottom {margin-top: 474px;background-color: cadetblue;width: 1226px;height: 170px;/* float: right */}.box .bottom .bottom-l {width: 234px;height: 170px;background-color: blue;float: left;}.box .bottom .bottom-r>div {width: 316px;height: 170px;background-color: gold;float: right;display: block;margin: 0px 10px 0px 0px;}.box .bottom .bottom-r>div img {width: 316px;height: 170px;}.box .bottom .bottom-r .last {margin-right: 0px;}</style>
</head><body><div class="box"><div class="left"></div><div class="right"><img src="027dedf7486746ca8b768923c28b76c5.png" alt="" class="png1"></div><div class="bottom"><div class="bottom-l"> </div><div class="bottom-r"><div class="last"><img src="1ac77590368ff636d0b4f6a988133f55.png" alt="耳机"></div><div><img src="8dede2520f8dfff9c9b690af498cafe8.jpg" alt="电视"></div><div><img src="6b67117bc92924fb2ff0e7ad2be86084.png" alt="手机"></div></div></div></div>
</body></html>

妹写完,就是做了个分区,和浮动的练习

常见网页布局格式

使用标准流父级

对大盒子细分:

做的更细就是这种:

我们尝试布局一下,大概就是:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;.top {height: 50px;background-color: grey;text-align: center;}.banner {width: 980px;height: 150px;background-color: grey;margin: 15px auto;text-align: center;}.box {width: 980px;height: 300px;margin: 0px auto;background-color: deeppink;}.box li {width: 233.75px;height: 300px;background-color: grey;float: left;margin-right: 15px;text-align: center;}.box .last {margin-right: 0px;}.footer {height: 200px;background-color: grey;margin-top: 15px;text-align: center;}</style>
</head>
<section></section><body><div class="top">top</div><div class="banner">banner</div><div class="box"><ul><li></li><li></li><li></li><li class="last"></li></ul></div><div class="footer">fooer</div>
</body></html>

清除浮动

有时候你的页面的父盒子的大小其实不是固定的:在网页里打开不同的文章,盒子的长度和文章的长度相搭配

所以这种情况下我们是不能给父盒子高度的

但是如果不给父盒子高度,又想让子盒子在同一行,就要加浮动

而加了浮动会导致父盒子的高度变为0,下面的标准流再接上来,会影响布局

这时候我们就需要清除浮动

清除浮动的本质是清除浮动元素造成的影响,适用于没给具体高度的父盒子;清除浮动以后,父级会根据浮动的盒子自动检测高度,父级有了高度,就不会影响下面的标准流了

如何清除浮动:

额外标签法也称隔墙法,是w3c推荐的做法

父级添加overflow属性

父级添加after属性

父级添加双伪元素

第一种:额外标签法

在最后一个浮动的元素后面加一个额外的标签(一定要是块级元素,因为行内元素没有高),对这个标签施加clear:both;来控制父盒子的高度既能被撑开,也不会影响下面的标准流

 .extern {clear: both;}

添加新的子盒子,父盒子也会被自动加长:

优点:通俗易懂,书写方便

缺点:添加了许多无意义的标签,结构化差

第二种:给父元素添加overflow

.box {overflow: hidden;width: 980px;/* height: 300px; */margin: 0px auto;background-color: deeppink;}

效果也是一样的

之前我们用这个代码解决了父子元素的塌陷问题

缺点是无法显示溢出父盒子的部分

第三种:after伪元素法

给父盒子起一个类名clearfix,然后施加这个声明

.clearfix::after {content: "";display: block;height: 0;clear: both;visibility: hidden;}.clearfix {zoom: 1;}

大意是用css施加了一个元素堵在最后面,也是一个额外标签的作用

算是额外标签法的升级版,因为是用css写的,不是用结构写的,所以优于额外标签法

缺点:下面那段代码是需要照顾低版本浏览器的

双伪元素清除浮动

  .clearfix::before,.clearfix::after {content: "";display: table;}.clearfix:after {clear: both;}.clearfix {*zoom: 1;}

和上面是一个作用,区别是在前面也堵了一个标签,更符合闭合浮动的概念

总结:为什么清除浮动?

父级没有高度

子盒子浮动

影响下面的标准流布局

rz命令我恨你

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Essential Cell Biology--Fifth Edition--Chapter one (6)

1.1.4.4 Internal Membranes Create Intracellular Compartments with Different Functions [细胞膜形成具有不同功能的细胞内隔室] 细胞核、线粒体和叶绿体并不是真核细胞中唯一的膜包围细胞器。细胞质中含有大量的[ a profusion of]其他细胞器&#xff0c;这些细胞器被单层膜…

量子奇异值阈值算法

特征值分解只适用于方阵&#xff0c;如何扩展到任意形状的矩阵呢&#xff1f;奇异值分解能够解决此问题。量子奇异值阈值算法在奇异值分解的基础上将小的特征值设置为0&#xff0c;从而将小的特征值及其对应的特征向量去掉&#xff0c;进而降低矩阵的秩&#xff0c;达到降维的目…

Python_爬虫3_Requests库网络爬虫实战(5个实例)

目录 实例1&#xff1a;京东商品页面的爬取 实例2&#xff1a;亚马逊商品页面的爬取 实例3&#xff1a;百度360搜索关键词提交 实例4&#xff1a;网络图片的爬取和存储 实例5&#xff1a;IP地址归地的自动查询 实例1&#xff1a;京东商品页面的爬取 import requests url …

黑马微项目

目录 1 飞机票 2 生成一个五位数验证码 3 数字加密 4 数字解密 5 抢红包 6 双色球系统 7 用户登录 8 金额转换 9 手机号屏蔽 10 罗马数字转换 11 调整字符串 12 初级学生管理系统&#xff08;学生数据的管理&#xff09; 13 学生管理系统&#xff08;用户的相关操…

基于lighthouse搭建私有网盘Cloudreve【开源应用实践】

基于lighthouse搭建私有网盘Cloudreve【超高性价比】 今天给大家分享一款私人网盘神器&#xff0c;既能存放你的文件文档&#xff0c;也能替你保存那不可告人的秘密~ 香菇今天将手把手教给大家如何在腾讯云轻量应用服务器上搭建个人专属网盘 1. 既爱又恨的网盘存储 很多小伙伴…

博物馆实景复刻:开启沉浸式文化体验的新篇章

随着数字化技术的飞速发展&#xff0c;博物馆的展览形式正在经历一场前所未有的变革。3数字博物馆和3D线上展览&#xff0c;这种创新的展览方式不仅打破了时间和空间的限制&#xff0c;更让文化遗产的保护与传承迈上了一个新的台阶。 本文将深入探讨博物馆实景复刻虚拟展厅的兴…

java中设计模式的使用(持续更新中)

概述 设计模式的目的&#xff1a;编写软件过程中&#xff0c;程序员面临着来自耦合性&#xff0c;内聚性以及可维护性&#xff0c;可扩展性&#xff0c;重用性&#xff0c;灵活性等多方面的挑战&#xff0c;设计模式是为了让程序&#xff08;软件&#xff09;&#xff0c;具有…

linux基础io重定向

文章目录 目录 文章目录 前言 一、函数的认识 1、认识close函数和dup2函数 1、close函数&#xff1a; ​编辑 2、write、read函数 1、write函数 2、read函数 二、重定向 1.引入函数dup2 ​编辑 2、输出重定向 3.输出重定向 三、myshell重定向 总结 前言 接上一篇&#xff0c;…

[STM32] 定时器应用之输出比较 (五)

文章目录 1.输出比较2.PWM 介绍3.配置PWM 1.输出比较 OC: 输出比较。 输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0或翻转的操作&#xff0c;用于输出一定频率和占空比的PWM波形。每个高级定时器和通用定时器都拥有4个输出比较通道高级定…

【计算机毕设】无查重 基于python豆瓣电影评论舆情数据可视化系统(完整系统源码+数据库+开发笔记+详细部署教程)✅

目录 【计算机毕设】无查重 基于python豆瓣电影数据可视化系统&#xff08;完整系统源码数据库开发笔记详细部署教程&#xff09;✅ 一、项目背景 二、项目目标 三、项目功能 四、开发技术介绍 五、数据库设计 六、项目展示 七、开发笔记 八、启动步骤文档 九、权威教…

后台管理系统窗体程序:个人中心

目录 个人中心的功能介绍&#xff1a; 1、进入页面 2、页面内的各种功能设计 &#xff08;1&#xff09;修改按钮 &#xff08;2&#xff09;页面的进入退出操作 一、网页设计 二、html代码 三、css代码 四、js代码 本次项目为后台管理系统&#xff0c;在本系统内的第七…

PLC如何支持GEM300标准?SECS/GEM通讯协议

1. 提供技术服务&#xff0c;保证户使用没问题 2. 支持市场所有的常规PLC 3. 支持常规组态软件&#xff0c;如wincc、组态王、组态屏等 4. 支持各类传感器&#xff0c;私有协议、modbus、web等 5. 无需二次开发&#xff0c;只需配置映射到已有的PLC地址 GEM300协议是为了满…

用 Google Sheets 表格增强 Tableau 数据分析的 3 种玩法

轻松实现文本翻译、网页数据抓取&#xff0c;甚至创建高级日期表来增强 Tableau 可视化效果&#xff01; 作为一款强大的数据可视化工具&#xff0c;Tableau 的可视化能力毋庸置疑。然而&#xff0c;对于跟表格打交道的用户来说&#xff0c;它没有“创建表格”的功能&#xff0…

计算机网络 (3)计算机网络的性能

一、计算机网络性能指标 速率&#xff1a; 速率是计算机网络中最重要的性能指标之一&#xff0c;它指的是数据的传送速率&#xff0c;也称为数据率&#xff08;Data Rate&#xff09;或比特率&#xff08;Bit Rate&#xff09;。速率的单位是比特/秒&#xff08;bit/s&#xff…

CAP与BASE分布式理论

CAP理论 C&#xff1a;Consistency 一致性&#xff1a;指强一致性&#xff0c;分布式系统中的所有节点在同一时刻具有同样的值、都是最新的数据副本&#xff0c;一致性保证了不管向哪台服务器写入数据&#xff0c;其他的服务器能实时同步数据 强一致性&#xff1a;写入数据的时…

【Java基础知识系列】之Java类的初始化顺序

前言 类的初始化顺序 简单场景 代码示例 public class Person {private String name initName();private String initName() {System.out.println("【父类】初始化实例变量name");return "【父类】史蒂夫";}private int age;private static int staticVa…

探索大规模语言模型(LLM)在心理健康护理领域中的应用与潜力

概述 心理健康是公共卫生最重要的领域之一。根据美国国家精神卫生研究所&#xff08;NIMH&#xff09;的数据&#xff0c;到 2021 年&#xff0c;22.8% 的美国成年人将患上某种形式的精神疾病。在全球范围内&#xff0c;精神疾病占非致命性疾病负担的 30%&#xff0c;并被世界…

解决 idea windows 设置maven离线模式之后,maven继续请求远程仓库

在内网开发的时候经常遇到没有办法来链接远程仓库的情况&#xff0c;这个时候需要设置maven的离线模式。 idea windows 设置maven离线模式之后&#xff0c;maven继续请求远程仓库 当设置完离线模式之后&#xff0c;有的时候执行maven的命令会报错&#xff0c;提示请求远程失败…

卷积神经网络 (CNN)

代码功能 网络结构&#xff1a; 卷积层&#xff1a; 两个卷积层&#xff0c;每个卷积层后接 ReLU 激活函数。 最大池化层用于降低维度。 全连接层&#xff1a; 使用一个隐藏层&#xff08;128 个神经元&#xff09;和一个输出层&#xff08;10 类分类任务&#xff09;。 数据集…

等保二级需要哪些安全设备?

在信息化高速发展的今天&#xff0c;服务器的安全性成为了企业乃至国家信息安全的重要基石。等保二级&#xff0c;作为信息安全等级保护制度中的一个关键环节&#xff0c;对服务器的安全防护提出了明确要求。本文将详细阐述服务器等保二级所需的各种安全设备&#xff0c;旨在为…