HTML与CSS基础(六)—— CSS布局(浮动float)

news2024/12/24 2:26:11

目标

能够使用 结构伪类选择器 在HTML中选择元素
能够说出 标准流 元素的布局特点
能够说出 浮动元素 的特点
能够使用浮动完成 小米模块布局案例
能够说出 清除浮动 的目的,并能够使用 清除浮动的方法

一、结构伪类选择器

目标:能够使用 结构伪类选择器 在HTML中定位元素

1. 作用与优势

1. 作用:根据元素在HTML中的 结构关系查找元素
2. 优势: 减少对于HTML中类的依赖,有利于保持代码整洁
3. 场景:常用于 查找某父级选择器中的子元素

2. 选择器

n的注意点:
1. n为:0、1、2、3、4、5、6、……
2. 通过n可以组成常见公式

3. nth-of-type结构伪类选择器

区别:
• :nth-child → 直接在所有孩子中数个数
:nth-of-type → 先通过该 类型 找到符合的一堆子元素,然后在这一堆子元素中数个数

二、伪元素

目标:能够使用 伪元素 在网页中创建内容
伪元素:一般页面中的 非主体内容可以使用伪元素
区别:
1. 元素:HTML 设置的标签
2. 伪元素: 由 CSS 模拟出的标签效果
种类:
注意点:
1. 必须设置content属性才能生效
2. 伪元素 默认是行内元素

三、标准流

目标:能够认识 标准流 的默认排布方式及其特点
标准流:又称 文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以何种方式排列元素
常见标准流排版规则:
1. 块级元素:从上往下, 垂直布局,独占一行
2. 行内元素 或 行内块元素:从左往右, 水平布局,空间不够自动折行

四、浮动

目标:能够认识使用 浮动的作用,了解 浮动的特点

1. 浮动的作用

早期的作用:图文环绕

现在的作用:网页布局

场景:让垂直布局的盒子变成水平布局,如:一个在左,一个在右

2. 浮动的代码

属性名: float
属性值:
1. 左浮动:float : left
2. 右浮动:float : right

3. 浮动的特点

1. 浮动元素会脱离标准流(简称:脱标),在标准流中不占位置
• 相当于从地面飘到了空中
2. 浮动元素比标准流高半个级别,可以 覆盖标准流中的元素
3. 浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
4. 浮动元素有特殊的显示效果
一行可以显示多个
可以设置宽高
注意点:
• 浮动的元素 不能通过text-align:center或者 margin:0 auto

4. 浮动的案例

4.1 网页布局案例

需求:使用浮动,完成设计图中布局效果

4.2 小米模块案例

需求:使用浮动,完成设计图中布局效果

4.3 网页导航案例

书写网页导航步骤:
1. 清除默认的margin和padding
2. 找到ul,去除小圆点
3. 找到li标签,设置浮动让li一行中显示
4. 找到a标签,设置宽高 → a标签默认是行内元素,默认不能设置宽高??
• 方法一:给a标签设置 display : inline-block
• 方法二:给a标签设置 display : block
• 方法三:给a设置 float : left

五、清除浮动

目标:能够认识 清除浮动的目的,并且能够使用 清除浮动的方法

1. 清除浮动的介绍

含义: 清除浮动带来的影响
• 影响:如果子元素浮动了,此时 子元素 不能撑开标准流的块级父元素
原因:
• 子元素浮动后脱标 → 不占位置
目的:
• 需要父元素有高度,从而不影响其他网页元素的布局

2. 清除浮动的方法

2.1 清除浮动的方法 — ① 直接设置父元素高度

特点:
• 优点:简单粗暴,方便
• 缺点:有些布局中不能固定父元素高度。如:新闻列表、京东推荐模块

2.2 清除浮动的方法 — ② 额外标签法

操作:
1. 在父元素内容的 最后添加一个块级元素
2. 给添加的块级元素设置 clear:both
特点:
• 缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂

2.3 清除浮动的方法 — ③ 单伪元素清除法

操作:用伪元素替代了额外标签
特点:
• 优点:项目中使用,直接给标签加类即可清除浮动

① :基本写法

.clearfix::after {
    content: '';
    display: block;
    clear: both;
}

② :补充写法

.clearfix::after {
    content: '';
    display: block;
    clear: both;
    /* 补充代码:在网页看不到伪元素 */
    height: 0;
    visibility: heidden;
}

2.4 清除浮动的方法 — ④ 双伪元素清除法

特点:
• 优点:项目中使用,直接给标签加类即可清除浮动
.clearfix::before,
.clearfix::after {
    content: '';
    display: table;
    clear: both;
}
.clearfix::after {
    clear: both;
}

2.5 清除浮动的方法 — ⑤ 给父元素设置overflow : hidden

操作:
1. 直接给 父元素设置 overflow : hidden
特点:
• 优点:方便

3. BFC的介绍

➢ 块格式化上下文(Block Formatting Context):BFC
• 是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。
➢ 创建BFC方法:
1. html标签是BFC盒子
2. 浮动元素是BFC盒子
3. 行内块元素是BFC盒子
4. overflow属性取值不为visible。如:auto、hidden…
5. ……
➢ BFC盒子常见特点:
1. BFC盒子会默认包裹住内部子元素(标准流、浮动)→ 应用:清除浮动
2. BFC盒子本身与子元素之间不存在margin的塌陷现象 → 应用:解决margin的塌陷
3. ……

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

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

相关文章

MemPrompt: Memory-assisted Prompt Editing with User Feedback

Paper name MemPrompt: Memory-assisted Prompt Editing with User Feedback Paper Reading Note URL: https://arxiv.org/pdf/2201.06009.pdf TL;DR ACL 2022 Workshop CSRR 文章,MemPrompt 将用户对模型预测错误的反馈保存下来,之后遇到类似的问题…

CesiumLab安装、CesiumLab账号注册以及不同授权类型的说明 CesiumLab系列教程

下载软件并安装 官方下载地址:http://cesiumlab.com/#/update 双击 exe 安装。 CesiumLab安装包 CesiumLab安装过程 CesiumLab需要的依赖环境 安装过程会提示 本程序依赖 VC2019 实时运行库,如本机已安装了 VC2019 实时运行库,可以点击【取…

【STM32笔记】HAL库Flash读写配置

【STM32笔记】HAL库Flash读写配置 在keil里面的默认工程配置中 Flash分配地址 程序部分为0x0800 0000到0x0810 0000 总共是0x0010 0000的大小 也就是1048576Byte 1024KB 1MB 而实际上程序部分大小应该要看硬件手册来确定 可以通过配置keil工程中size的大小 来确定程序地址的范…

实验二十七 IPSec配置

实验二十七 IPSec配置实验目的: 某公司由总部和分支机构构成,通过IPsec实验网络安全,保证总部和分支机构的局域 网安全通信。网络拓扑图:IPSec(IP Security)是IETF定义的一组协议,用于增强IP网络的安全性 。 IPsec的功…

【深度学习】李宏毅2021/2022春深度学习课程笔记 - Anomaly Detection(异常侦测)

文章目录一、Problem Formulation二、What is Anomaly?三、Applications四、Binary Classification?五、Categories六、Case 1:With Classifier七、Case 2:Without Labels八、Use Auto-Encoder九、More一、Problem Formulation 假…

Java之反射机制

反射机制 引出反射 我们的猫类 传统的方式 就是new 然后通过对象调用呗 用properties做的话,首先肯定是获取信息 读取配置文件的信息 然后我们需要创建对象是吧 但是这个时候 new classfullpath是不行的,因为我们实际上需要的是 类名 而不是字符串&…

2023年1月7日:fastadmin导出数据为excel格式

需求图: 实现方法: 第一种方法:fastadmin自带导出数据,直接点击下载即可 效果图第二种方法:自定义导出按钮,需要编写方法 效果图: 效果图代码实现 首先:前端按钮代码(可直接拿来用…

【HCIA-openEuler】实验手册—01【openEuler操作系统安装】

文章目录一、实验介绍1、关于本实验2、实验目的3、实验所需材料二、配置虚拟化环境步骤1:硬件准备步骤2:软件准备三、安装openEuler操作系统1、创建虚拟机步骤1:新建虚拟机步骤2:向导选择典型(推荐)步骤3:选择镜像文件…

MonoScene: Monocular 3D Semantic Scene Completion

Paper name MonoScene: Monocular 3D Semantic Scene Completion Paper Reading Note URL: https://arxiv.org/pdf/2112.00726.pdf TL;DR 2022 cvpr 论文,提出一种能在室内与室外场景均可使用的单目 SSC 方案,与特斯拉的 Occupancy Network 非常相似…

【Java基础】day12

一、Redis 的缓存穿透、缓存击穿、缓存雪崩是什么? 缓存穿透 请求不存在【 DB 和 Redis 中都不存在】的数据,导致请求直接打到持久层数据库中,导致数据库负载过高,甚至导致宕机。这样的请求几乎可以导致请求次次到达 DB &#xff…

Cesium中tif转经纬度投影或墨卡托地图瓦片 CesiumLab系列教程

Cesium 目前支持的影像切片规范有两种形式的: 1.经纬度直拉切片方式 (GeographicTilingScheme ), 2.web 墨卡托切片方式 (WebMercatorTilingScheme)。 根据常规传统,瓦片大小都是 256&#x…

数字验证学习笔记——SystemVerilog芯片验证22 ——功能覆盖率策略覆盖组

一、功能覆盖率策略 1.1 收集信息而非数据 对于一些设计,你需要关心的是合法的寄存器地址和非法的寄存器地址,可写的寄存器域和非法的寄存器域,而不是具体的寄存器地址数值。一旦关注的地方着眼于感兴趣的状态,而不是具体数值&a…

2022年中职网络安全竞赛SSH弱口令渗透测试解析(详细)

B-7 SSH弱口令渗透测试 任务环境说明: 服务器场景:Server18(关闭链接)服务器场景操作系统:Linux(版本不详)在本地PC渗透测试平台Kali中使用zenmap工具扫描服务器场景Server18-2所在网段(例如:172.16.101.0/24)范围内存活的主机IP地址和指定开放的21、22、23端口。并将…

【NI Multisim 14.0原理图环境设置——标题栏】

目录 序言 一、标题栏 🍍1.添加标题块 🍍 2.修改标题块 (1)直接修改 (2)标题块编辑器 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表…

【C++】命名空间 以及 如何理解using namespace std;

目录 命名空间 1.由来 2.概念 3.使用 方法一 方法二 方法三 4.嵌套使用 命名空间 很多人在学习C的时候,第一个代码想必是如下样子的。和C语言相比,库函数换了,同时多了一个 using namespace std; 但是,你真的了…

Allegro174版本新功能介绍之高阶Contour模式使用

Allegro174版本新功能介绍之高阶Contour模式使用 在Allegro低版本166以及172版本中,有Contour命令,但是只有沿着routekeepin和Connect Line功能,如下图 当升级到了174版本的时候,Allegro支持沿着任意目标走线,甚至是过孔和铜皮,如下图 具体操作介绍如下 以沿着这块铜皮轮…

一元三次方程求解 -- 二分查找

[NOIP2001 提高组] 一元三次方题目描述思路codetag:数学,二分查找 题目链接:洛谷P1024: [NOIP2001 提高组] 一元三次方 题目描述 思路 先对三次函数求导得到二次函数 3ax22bxc03ax^2 2bx c 03ax22bxc0 然后利用求根公式计算出两个极值点 …

Vue--》Vue3自定义组件以及新组件的使用讲解

目录 customRef Vue3提供的新组件 Fragment Teleport Suspense Vue3中全局API的改变 customRef 创建一个自定义的ref&#xff0c;并对其依赖项跟踪和更新触发进行显示控制。 <template><input type"text" v-model"keyword"><h3>…

谷粒学苑项目-第一章公共模块下的Swagger配置类-1.4

一、在common子模块下创建Swagger配置类 1. guli_parent->common子模块->service_base子模块->SwaggerConfig配置类 common子模块是pom类型 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId>…

【Java寒假打卡】Java基础-集合Collection

【Java寒假打卡】Java基础-集合Collection集合与数组之间的区别集合体系结构Collection常用的方法集合-迭代器迭代器原理分析迭代器删除方法的注意事项增强for循环集合与数组之间的区别 数组的长度是不可变的&#xff0c;集合的长度是可变的数组可以存基本数据类型和引用数据类…