前端快速入门学习4——CSS盒子模型、浮动、定位

一、盒子模型

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。

盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
在这里插入图片描述
不同部分的说明:
Margin(外边距) - 清除边框外的区域,外边距是透明的。
Border(边框) - 围绕在内边距和内容外的边框。
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
Content(内容) - 盒子的内容,显示文本和图像。

div {width: 300px;border: 25px solid green;padding: 25px;margin: 25px;
}

最终元素的总宽度计算公式是这样的:
总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

元素的总高度最终计算公式是这样的:
总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距
300px (宽)+ 50px (左 + 右填充)+ 50px (左 + 右边框)+ 50px (左 + 右边距)= 450px

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.inline-block{display: block;padding: 15px;margin: 50px;border: 20px solid rgb(255, 0, 81);}</style>
</head>
<body><span>这是行内块元素演示</span><img class="inline-block" src="example.jpg" alt="示例图片" width="200" height="200">    
</body>
</html>

在这里插入图片描述

二、浮动

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子:

<head><style>body {width: 90%;max-width: 900px;margin: 0 auto;font:0.9em/1.2 Arial,Helvetica,sans-serif;}.box {width: 150px;height: 100px;border-radius: 5px;background-color: rgb(207, 232, 220);padding: 1em;}</style>
</head>
<body><h1>Simple float example</h1><div class="box">Float</div><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquamdolor, eu lacinia lorem placerat vulputate. </p><p>Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit ametorci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornareex malesuada et. In vitae convallis lacus. </p><p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuadaultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sedest. Nam id risus quis ante semper consectetur eget aliquam lorem. </p>        
</body>

在这里插入图片描述
使盒子浮动起来:

.box {float: left;margin-right: 15px;width: 150px;height: 100px;border-radius: 5px;background-color: rgb(207, 232, 220);padding: 1em;
}

在这里插入图片描述
清除浮动

.cleared {clear: left;
}
    <style>body {width: 90%;max-width: 900px;margin: 0 auto;font:0.9em/1.2 Arial,Helvetica,sans-serif;}.box {float: left;margin-right: 15px;width: 150px;height: 100px;border-radius: 5px;background-color: rgb(207, 232, 220);padding: 1em;}        .special {background-color: rgb(79, 185, 227);padding: 10px;color: #fff;}.cleared {clear: left;}</style>
</head>
<body><h1>Simple float example</h1><div class="box">Float</div><p class="special">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquamdolor, eu lacinia lorem placerat vulputate. Sed auctor cursus massa at porta.</p><p class="cleared">Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit ametorci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornareex malesuada et. In vitae convallis lacus. </p><p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuadaultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sedest. Nam id risus quis ante semper consectetur eget aliquam lorem. </p>        
</body>

在这里插入图片描述

三、定位

在这里插入图片描述
1.相对定位

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box1{height: 350px;background-color: aqua;            }.box-normal{width: 100px;height: 100px;background-color: red;margin: 10px;}.box-relative{width: 100px;height: 100px;background-color: blue;margin: 10px;position: relative; /* 相对定位 */top: 20px; /* 向下移动20px */left: 20px; /* 向右移动20px *//* 这两个属性可以让元素相对于它原来的位置进行移动,而不是相对于父元素或视口。 *//* 这意味着它仍然占据原来的空间。 *//* 这就是相对定位的特点。 *//* 你可以通过调整top、left、right和bottom属性来控制元素的位置。 *//* 你也可以使用负值来向上或向左移动元素。 *//* 这会让元素看起来像是从原来的位置移动了,但是它仍然占据原来的空间。 */}</style>  
</head>
<body><h1>相对定位</h1><div class="box1"><div class="box-normal"></div><div class="box-relative"></div><div class="box-normal"></div></div>      
</body>

在这里插入图片描述
2.绝对定位

  <style>.box2{height: 350px;background-color: rgb(251, 255, 0);   margin-bottom: 300px;         }.box-absolute{width: 100px;height: 100px;background-color: green;margin: 10px;position: absolute; /* 绝对定位 *//*top: 20px; /* 向下移动20px */left: 20px; /* 向右移动20px *//* 这两个属性可以让元素相对于它的最近的定位祖先元素进行移动。 *//* 如果没有定位祖先元素,它就相对于视口进行移动。 *//* 这意味着它不再占据原来的空间。 *//* 这就是绝对定位的特点。 *//* 你可以通过调整top、left、right和bottom属性来控制元素的位置。 */}</style><body><h1>绝对定位</h1><div class="box2"><div class="box-normal"></div><div class="box-absolute"></div><div class="box-normal"></div></div>
</body>

在这里插入图片描述

相对定位和绝对定位的区别

相对定位是相对于元素原来的位置进行移动,而绝对定位是相对于最近的定位祖先元素进行移动。

相对定位仍然占据原来的空间,而绝对定位不再占据原来的空间。

相对定位可以使用top、left、right和bottom属性来控制元素的位置,而绝对定位也可以使用这些属性来控制元素的位置。

相对定位可以使用负值来向上或向左移动元素,而绝对定位也可以使用负值来向上或向左移动元素。

相对定位可以让元素在文档流中保持原来的位置,而绝对定位会让元素脱离文档流。

3.固定定位

<style>
.box-fixed{width: 100px;height: 100px;background-color: purple;position: fixed; /* 固定定位 */top: 1000px; /* 距离视口顶部0px */right: 15px; /* 距离视口左侧0px *//* 这两个属性可以让元素相对于视口进行移动。 *//* 这意味着它会固定在视口的某个位置,而不是相对于父元素或最近的定位祖先元素。 *//* 这就是固定定位的特点。 *//* 你可以通过调整top、left、right和bottom属性来控制元素的位置。 */      /* 你也可以使用负值来向上或向左移动元素。 */}
</style>
<body><h1>固定定位</h1><div class="box-fixed"></div>
</body>

在这里插入图片描述

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

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

相关文章

瑞数信息发布《BOTS自动化威胁报告》,揭示AI时代网络安全新挑战

近日&#xff0c;瑞数信息正式发布《BOTS自动化威胁报告》&#xff0c;力求通过全景式观察和安全威胁的深度分析&#xff0c;为企业在AI时代下抵御自动化攻击提供安全防护策略&#xff0c;从而降低网络安全事件带来的影响&#xff0c;进一步增强业务韧性和可持续性。 威胁一&am…

Docker设置代理

目录 前言创建代理文件重载守护进程并重启Docker检查代理验证 前言 拉取flowable/flowable-ui失败&#xff0c;用DaoCloud源也没拉下来&#xff0c;不知道是不是没同步。索性想用代理拉镜像。在此记录一下。 创建代理文件 创建docker代理配置 sudo mkdir -p /etc/systemd/s…

Debezium嵌入式连接postgresql封装服务

文章目录 1.项目结构&#xff1a;2.依赖&#xff1a;3.application.properties4.DebeziumConnectorConfig类5.TableEnum类6.TableHandler接口&#xff08;表处理抽象&#xff09;7.DefaultTableHandler默认实现类8.UserTableHandler处理类9.TableHandlerFactory工厂10.Debezium…

ER-图,详情和画法

一、E-R图的核心元素 1.实体 表示现实中对象或概念&#xff0c;用矩形表示 示例&#xff1a;用户、老师、学生 2.属性 描述实体的特征&#xff0c;用椭圆表示。 分为主键&#xff08;用户id&#xff09; 和非主键&#xff08;用户昵称&#xff09; 3.关系 表示实体间的…

Windows Flip PDF Plus Corporate PDF翻页工具

软件介绍 Flip PDF Plus Corporate是一款功能强大的PDF翻页工具&#xff0c;也被称为名编辑电子杂志大师。这款软件能够迅速将PDF文件转换为具有翻页动画效果的电子书&#xff0c;同时保留原始的超链接和书签。无论是相册、视频、音频&#xff0c;还是Flash、视频和链接&#…

Linux文件系统中的Page Cache和内存管理中的Page之间的关系

Linux文件系统中的Page Cache和内存管理中的Page之间有密切的关联&#xff0c;两者在底层机制上紧密结合&#xff0c;共同实现高效的内存和文件系统管理。以下是它们的关系和关键点&#xff1a; 核心关系 Page Cache的底层是内存Page Page Cache是由内存管理中的物理内存页&…

每日一个小病毒(C++)EnumChildWindows+shellcode

这里写目录标题 1. `EnumChildWindows` 的基本用法2. 如何利用 `EnumChildWindows` 执行 Shellcode?关键点:完整 Shellcode 执行示例3. 为什么 `EnumChildWindows` 能执行 Shellcode?4. 防御方法5. 总结EnumChildWindows 是 Windows API 中的一个函数,通常用于枚举所有子窗…

AI爬虫?爬!

1.你是否还在为大模型的key而感到忧伤和囊中羞涩&#xff0c;openrouter.ai&#xff0c;目前可免费白嫖多个大模型&#xff0c;代码如下 from openai import OpenAIclient OpenAI(base_url"https://openrouter.ai/api/v1",api_key"", )completion clien…

洛谷题单3-P5720 【深基4.例4】一尺之棰-python-流程图重构

题目描述 《庄子》中说到&#xff0c;“一尺之棰&#xff0c;日取其半&#xff0c;万世不竭”。第一天有一根长度为 a a a 的木棍&#xff0c;从第二天开始&#xff0c;每天都要将这根木棍锯掉一半&#xff08;每次除 2 2 2&#xff0c;向下取整&#xff09;。第几天的时候木…

c++中的auto关键字

在 C 中&#xff0c;auto 是一个类型推断关键字&#xff08;C11 引入&#xff09;&#xff0c;允许编译器根据变量的初始化表达式自动推导其类型。它极大地简化了代码编写&#xff0c;尤其在涉及复杂类型或模板的场景中。以下是 auto 的详细说明&#xff1a; 1. 基本用法 1.1 …

开发指南111-关闭所有打开的子窗口

门户系统是通过window.open通过单点登录的模式打开子系统的&#xff0c;这就要求门户系统退出时&#xff0c;关闭所有打开的子系统。 平台处理这一问题的核心原理如下&#xff1a; 主窗口定义&#xff1a; allChildWindows:[], //所有子窗口 pushChildWindow(childWindow){ …

Kotlin语言进阶:协程、Flow、Channel详解(二)

Kotlin语言进阶:协程、Flow、Channel详解(二) 一、Flow基础 1.1 什么是Flow Flow是Kotlin提供的用于处理异步数据流的解决方案,它建立在协程之上,具有以下特点: 冷流特性:只有在收集时才会开始发射数据背压处理:自动处理生产者和消费者速度不匹配的问题组合操作:提…

mysql中my.cnf权限不能过大。否则无法生效

mysql 报错 World-writable config file ‘/etc/my.cnf‘ is ignored. /etc/my.cnf 配置文件, 或着docker 挂载的配置文件(宿主机中的配置文件),权限过大 如是二进制启动 chmod 644 /etc/my.cnf 如是docker启动 chmod 644 /opt/docker-data/mysql/conf/my.cnf 重启服务,就可…

Spring 中的 @Autowired 和 @Resource

&#x1f9e9; 一、Autowired 和 Resource 的基本作用 注解来源作用AutowiredSpring 提供&#xff08;org.springframework.beans.factory.annotation.Autowired&#xff09;按类型 自动注入ResourceJDK 提供&#xff08;javax.annotation.Resource&#xff09;默认按名称 注入…

anomalib—2—输入图像大小调整

三个地方 第一&#xff1a;在定义model时&#xff0c;要在pre_processor里面去定义一个前处理&#xff0c;前处理就一个功能&#xff0c;定义图像的大小 pre_processor0 Patchcore.configure_pre_processor( image_size (128, 128)) model Patchcore( backbone"wide_r…

JSX、支持HTML标签、Ref的使用、虚拟DOM的使用

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

JVM 学习计划表(2025 版)

JVM 学习计划表&#xff08;2025 版&#xff09; &#x1f4da; 基础阶段&#xff08;2 周&#xff09; 1. JVM 核心概念 ​JVM 作用与体系结构 理解 JVM 在 Java 跨平台运行中的核心作用&#xff0c;掌握类加载子系统、运行时数据区、执行引擎的交互流程​内存结构与数据存…

进程内存分布--之理论知识

一个由C/C编译的程序占用的内存分为以下几个部分 &#xff1a; 1、栈区&#xff08;stack&#xff09;&#xff1a;由编译器自动分配释放 &#xff0c;存放函数调用函数的参数值&#xff0c;局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区&#xff08;heap&#xf…

WEB安全--内网渗透--LMNTLM基础

一、前言 LM Hash和NTLM Hash是Windows系统中的两种加密算法&#xff0c;不过LM Hash加密算法存在缺陷&#xff0c;在Windows Vista 和 Windows Server 2008开始&#xff0c;默认情况下只存储NTLM Hash&#xff0c;LM Hash将不再存在。所以我们会着重分析NTLM Hash。 在我们内…

时尚优雅奢华品牌包装徽标设计衬线英文字体安装包 Kagea – Luxury Women Ligature Font

Kagea 是一种复杂的衬线字体&#xff0c;有常规和压缩两种样式&#xff0c;具有 50 连字和替代字体&#xff0c;并支持多种语言。其精致的比例和别致的字体使其成为高端品牌、编辑布局、高档包装、时尚品牌和奢侈品设计的理想选择。 包含内容&#xff1a; TTF、OTF 和 WOFF 格…