网页布局之浮动

一,传统网页布局的三种方式

普通流(标准流)、浮动、定位。

二,标准流(普通流/文档流)

即为标签按照规定好的默认方式排列

1.块级元素会独占一行,从上向下顺序排列。

        常用元素:div、hr、p、h1~h6、ul、table等

2.行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。

        常用元素:span、a、i、em等

三,为什么需要浮动

有很多布局,标准流没有办法完成,此时就可以利用浮动完成布局。

因为浮动可以改变元素标签默认的排列方式。

 网页布局第一准则:多个块状元素纵向排列找标准流,多个块级元素横向排列找浮动。

 四,什么是浮动

float属性用户创建浮动框,将其移动到一边,知道左边缘或右边缘触及包含块或另一个浮动框的边缘。

语法:

选择器  {float: 属性值;}

none (元素不浮动);left(元素向左浮动);right(元素向右浮动);

五,浮动的特性

1.浮动元素会脱离标准流(脱标)

1.1脱标:脱离标准普通流的控制(浮)移动到指定位置(动)

注:如下图,红色盒子设置了浮动,绿色盒子没有设置,则绿色盒子会直接顶替红色的位置形成重叠的效果。

1.2浮动的盒子不再保留原先的位置

2.浮动的元素会一行内显示并且元素顶部对齐

如果多个盒子都设置了浮动,它们会按照属性值一行内显示并且顶端对齐排列。

注:浮动的元素是互相贴靠在一起的(没有缝隙),如果父级宽度装不下这些浮动的盒子。多出的盒子会另起一行对齐。

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

任何元素都可以浮动。不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性

如果行内元素有了浮动,则不需要转换块级/行内块元素就可以直接给高度和宽度。

3.1如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容决定

3.2浮动的盒子中间是没有缝隙的,紧挨着

3.3行内元素同理。

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

为了约束浮动元素位置,网页布局一般采取的策略是:

先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置,符合网页布局第一准则。

七,常见的网络布局

 

 

八,浮动布局的注意点

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

 先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置

2.一个元素浮动了,理论上其他兄弟元素也要浮动

一个盒子里面有多个子盒子,如果其中的一个盒子浮动了,那么其他兄弟也应该浮动,以防止引起问题。

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

 九,清除浮动

9.1 为什么清除浮动

由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为零,就会影响下面的标准流盒子。

(由于浮动元素不再占有原文档流的位置,所以它会对后面的元素排版产生影响)

 9.2清除浮动的本质

1.清除浮动的本质是清除浮动元素脱离标准流造成的影响

2.如果父盒子本身有高度,则不需要清除浮动。

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

语法:

选择器 { clear :属性值;}

清除浮动的策略是:闭合浮动

 9.3清除浮动的方法

1.额外标签法也称隔墙法,是W3C推荐的做法

额外标签法就是在浮动元素末尾添加一个空的标签。

注:要求这个新的空标签必须是块级元素

2.父级添加overflow属性

将其属性值设置为hiddenautoscroll

注意:是给父元素添加代码

缺点:无法显示溢出部分

3.父级添加after伪元素

(相当于后门加上一个盒子,闭合出口了)

 

4.父级添加双伪元素

(相当于前后都加入一个盒子形成闭合)

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3ds Max视频怎么渲染 3ds Max云渲染操作

在3ds Max软件中制作视频动画本质上是逐帧生成画面,并将这些连续帧串联起来创造出动态连贯的视觉效果。常见的视频帧率包括25 FPS(每秒帧数)、60 FPS、以及120 FPS等,帧率的提升可以使视频动画更加流畅。在实质上,视频渲染就是动画渲染&#…

大厂的数据质量中心系统设计

日常工作中,数据开发上线完一个任务后并不是就可以高枕无忧,时常因上游链路数据异常或者自身处理逻辑的 BUG 导致产出的数据结果不可信。而问题发现可经历较长周期(尤其离线场景),往往是业务方通过上层数据报表发现数据…

[计算机网络]---UDP协议

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、端口号…

[职场] 质量管理涉及哪些方面 #职场发展#笔记#经验分享

质量管理涉及哪些方面 质量管理是一种管理方法和理念,旨在确保产品、服务或流程符合预期的质量标准和要求。它涉及制定质量政策和目标、制定质量计划、执行质量控制措施、进行质量评估和持续改进等活动。 质量管理员是负责管理和维护质量管理体系的专业人员。他们负…

Spring6学习技术|IoC+基于xml管理bean

学习材料 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解) IoC 控制反转。是一种设计思想。 1.获取bean对象的方法 通过id,通过class,和双重方式。 ApplicationContext context new Cla…

被列入黑名单发送邮件失败

现在的虚拟主机产品,基本上都提供域名的企业邮箱服务,用户使用企业邮箱也比较普遍,在使用过程中,如果一旦发生发件人IP被列入黑名单,将严重影响您发邮件。 上周有一个使用Hostease的虚拟主机的客户,联系hos…

C语言easyx飞机大战源码+素材(大屏版)

在上一期的博客中给大家分享了小屏版的飞机大战的源码和素材 往期回顾: C语言easyx飞机大战源码+素材 (点击这里进入) 今天给大家带来一个更高级的飞机大战版本 废话不多说,直接看效果 看着不错吧 接下来给大家看看部分源码 #include "stdafx.h" #include &…

Linux编辑器——Vim详解

目录 ⭐前言 ⭐vim的基本概念 ⭐vim的基本操作 ⭐vim命令模式命令集 ⭐vim末行模式命令集 ⭐简单vim配置 ⭐配置文件的位置 ⭐常用配置选项 ⭐前言 vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容…

JZ65 不用加减乘除做加法(,^)

一&#xff1a;题目 二&#xff1a;思路 三&#xff1a;代码 int Add(int num1, int num2 ) {//ab (a ^ b)(a&b<<1)//num2 0 时表示没有进位了while(num2){int tmp num1;//得到不进位的数据num1 num2 ^ tmp;//得到进位的数据num2 (tmp&num2)<<1;}ret…

【MySQL】如何处理DB读写分离数据不一致问题?

文章内容 1、前言读写库数据不一致问题我们如何解决&#xff1f;方案一&#xff1a;利用数据库自身特性方案二&#xff1a;不解决方案三&#xff1a;客户端保存法方案四&#xff1a;缓存标记法方案五&#xff1a;本地缓存标记 那DB读写分离情况下&#xff0c;如何解决缓存和数据…

Open CASCADE学习|为什么由Edge生成Wire不成功?

Wire 是一种复合形状&#xff0c;不是由几何形状构建的&#xff0c;而是由边缘的装配构建的。BRepBuilderAPI_MakeWire类可以从一个或多个Edge构建Wire&#xff0c;或将新Edge连接到现有Wire。 BRepBuilderAPI_MakeWire 类将Edge连接到Wire。添加新Edge时&#xff0c;如果其顶点…

云呐智能运维硬件包括哪些?智能运维体系包括哪些?

智能运维体系时&#xff0c;能够详细了解该体系包含的各个组成部分。具体来说&#xff0c;我们应该知道智能运维体系中涉及的软件组件有哪些&#xff0c;以及这些组件是如何相互协作以实现高效运维的。此外&#xff0c;智能运维体系中使用的硬件设备感兴趣。列举了智能运维硬件…

《Go 简易速速上手小册》第4章:接口与抽象(2024 最新版)

文章目录 4.1 接口的定义与实现 - Go 语言的多面手4.1.1 基础知识讲解4.1.2 重点案例&#xff1a;动物乐队功能描述实现代码 4.1.3 拓展案例 1&#xff1a;通用支付系统拓展案例 1&#xff1a;通用支付系统功能描述实现代码 4.1.4 拓展案例 2&#xff1a;动物园管理器拓展案例 …

Vuex状态管理

Vuex状态管理 一、[Vuex](https://vuex.vuejs.org/zh/) 概述二、需求: 多组件共享数据三、vuex 的使用 - 创建仓库四、核心概念 - state 状态五、通过辅助函数 - mapState获取 state中的数据六、开启严格模式及Vuex的单项数据流七、核心概念-mutations八、带参数的 mutations九…

探秘OpenAI的神奇之作:Sora技术揭秘

探秘OpenAI的神奇之作&#xff1a;Sora技术揭秘 1. 引言 在当今科技快速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;正日益成为各个领域的关键技术。而在人工智能领域中&#xff0c;OpenAI公司一直以来都扮演着重要的角色。他们的最新创新——Sora技术&#x…

Linux:docker的Portainer部署

官网 Portainer: Container Management Software for Kubernetes and Dockerhttps://www.portainer.io/ 1.下载 portainer也是一个docker的镜像直接下载即可 docker pull portainer/portainer 2.运行 直接运行镜像即可直接使用 docker run -d -p 8000:8000 -p 9000:9000 -…

2.20学习总结

1.【模板】单源最短路径&#xff08;弱化版&#xff09; 2.【模板】单源最短路径&#xff08;标准版&#xff09; 3.无线通讯网 4.子串简写 5.整数删除 6.拆地毯 【模板】单源最短路径&#xff08;标准版&#xff09;https://www.luogu.com.cn/problem/P4779 题目描述 给定一个…

社区店选址的黄金法则:选择最佳位置的关键因素

对于计划开设实体店或创业的人来说&#xff0c;选址是至关重要的一步。 作为一名5年的鲜奶吧创业者&#xff0c;我将以专业的角度&#xff0c;详细阐述社区店选址的黄金法则&#xff0c;帮助你找到最理想的店铺位置。 1、市场需求与目标客户&#xff1a; 在选址之前&#xf…

Vue 使用 v-bind 动态绑定 CSS 样式

在 Vue3 中&#xff0c;可以通过 v-bind 动态绑定 CSS 样式。 语法格式&#xff1a; color: v-bind(数据); 基础使用&#xff1a; <template><h3 class"title">我是父组件</h3><button click"state !state">按钮</button&…

MyBatis数据库查询

文章目录 什么是MyBatisMyBatis程序的创建MyBatis实现数据库查询传参查询插入实现添加操作获取自增ID删除实现修改实现#{}和${}SQL注入 like查询 resultMap和resultType多表查询 对于普遍的后端开发而言&#xff0c;其程序主要包含了后端主程序和数据库两个部分&#xff0c;用户…