当前位置: 首页 > news >正文

第六讲_css盒子模式

css盒子模型

  • 1. 长度单位
  • 2. 盒子模型的组成
    • 2.1 盒子模型内容
    • 2.2 盒子模型内边距
    • 2.3 盒子模型边框
    • 2.4 盒子模型外边距

1. 长度单位

  • px:像素
  • em:相对于当前元素或父元素的 font-size 的倍数
<style>.parent {height: 500px;width: 500px;background-color: red;}.child {/* font-size=100px,1em = 100px */font-size: 100px;height: 1em;width: 1em;background-color: blueviolet;}
</style><div class="parent"><div class="child"></div>
</div>
  • rem:相对于根元素的 font-size 的倍数
<style>.parent {height: 500px;width: 500px;background-color: red;}.child {/* 根元素的默认font-size = 16px,所以默认1rem = 16px */height: 1rem;width: 1rem;background-color: blueviolet;}
</style><div class="parent"><div class="child"></div>
</div>
  • %:相对父元素计算百分比
<style>.parent {height: 500px;width: 500px;background-color: red;}.child {height: 50%;width: 50%;background-color: blueviolet;}
</style><div class="parent"><div class="child"></div>
</div>
  • vw:视口宽度的百分比(例如:10vw,视口宽度的 10%)
<style>.parent {height: 50vw;width: 50vw;background-color: red;}
</style><div class="parent">
</div>

在浏览器中运行上述代码,调整浏览器的宽度,div的宽和高始终保持是浏览器宽度的一半

  • vh:视口高度的百分比(例如:10vh,视口高度的 10%)
<style>.parent {height: 50vh;width: 50vh;background-color: red;}
</style><div class="parent">
</div>

在浏览器中运行上述代码,调整浏览器的高度,div的宽和高始终保持是浏览器高度的一半

2. 盒子模型的组成

盒子模型
盒子模型由4部分组成:

  • margin区:盒子与盒子间的距离。
  • border区:盒子的边框。
  • padding区:盒子边框与内容之间的距离。
  • content区:盒子的内容。

2.1 盒子模型内容

盒子模型内容的宽、高通过widthheight 设置。

<style>.container {/* 设置内容区的高 */height: 50px;/* 设置内容区的宽*/width: 50px;background-color: red;}
</style><div class="container"></div>

2.2 盒子模型内边距

  • 盒子模型内边距分为padding-toppadding-rightpadding-bottompadding-right
  • 复合属性padding设置,例如:padding: 100px,等价于上、右、下、左内边距都为100px
  • 复合属性padding设置,例如:padding: 100px 50px,等价于上、下内边距为100px,左、右内边距为50px
  • 复合属性padding设置,例如:padding: 10px 20px 30px 40px,等价于上内边距为10px,右内边距为20px,下内边距为30px,左内边距为40px
<style>div {background-color: red;}span {padding-top: 100px;padding-right: 100px;padding-bottom: 100px;padding-left: 100px;}
</style><div><span>hello world<span>
</div>

ps:行内元素的左右内边距没问题, 上下内边距无效

2.3 盒子模型边框

  • 盒子模型边框通过复合属性border设置
  • 盒子模型边框也可以通过border-topborder-rightborder-bottomborder-left,分别设置。
<style>.container {height: 100px;width: 100px;background-color: red;/* 边框宽5px,边框颜色黑色,边框线条实线 */border: 5px black solid;}
</style><div class="container"></div>

2.4 盒子模型外边距

  • 盒子模型外边距分为margin-topmargin-rightmargin-bottommargin-left,分别设置。
  • 复合属性margin,使用方式类似`padding。
<style>.parent {height: 200px;width: 200px;background-color: red;}.child {height: 100px;width: 100px;background-color: blue;margin: 10px;}
</style><div class="parent"><div class="child"></div>
</div>

运行上面代码,你会发现子元素的上margin作用到了父元素的上margin,这个称为margin塌陷。

margin塌陷:第一个子元素的上margin 和最后一个子元素的下margin,会作用在父元素上margin,下margin

margin塌陷问题的解决方案:

  • 解决一:给父元素设置不为 0 的 padding
  • 解决二:给父元素设置不为 0 的 border
  • 解决三:给父元素设置 css 样式 overflow: hidden

ps:行内元素的左右外边距没问题,上下外边距设置无效

http://www.lryc.cn/news/276989.html

相关文章:

  • 【WSL】Win10 使用 WSL2 进行 Linux GPU 开发
  • 什么是博若莱新酒节?
  • Centos7下升级gcc/g++版本(简单 + 避坑)
  • PyTorch项目源码学习(1)
  • adb 使用的出现 adb server is out of date. killing
  • 数据结构之二叉搜索树(Binary Search Tree)
  • Spring Boot自定义启动Banner在线生成工具
  • Android Studio导入项目 下载gradle很慢或连接超时,提示:Read timed out---解决方法建议收藏!
  • 汽车标定技术(十五)--FETK如何帮助Aurix实现快速原型、标定测量功能(1)
  • linux项目部署(jdk,tomcat,mysql,nginx,redis)
  • Unity | 渡鸦避难所-6 | 有限状态机控制角色行为逻辑
  • 数据库参数 PGA_AGGREGATE_LIMIT 限制进程大小
  • 208.【2023年华为OD机试真题(C卷)】停车场车辆统计(贪心算法实现-JavaPythonC++JS实现)
  • JS 作用域和预解析
  • 各种锁的概述
  • 【docker笔记】Docker容器数据卷
  • 大前端nestjs入门教程系列(四):如何nestjs整合mysql数据库
  • Android studio环境配置
  • 017、使用包、单元包及模块来管理日渐复杂的项目
  • Git提交规范详解
  • 线程与UI操作
  • ELK企业级日志系统分析系统
  • 11.23 校招 实习 内推 面经
  • Python战机
  • 外包做了5个月,技术退步一大半了。。。
  • 设计模式的艺术P1基础—2.2 类与类的UML图示
  • PCB 的正片、负片那些事儿
  • QT应用篇:QT解析与生成XML文件的四种方式
  • Android 正圆
  • C#,入门教程(13)——字符(char)及字符串(string)的基础知识