第六讲_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.hqwc.cn/news/336573.html

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

相关文章

将Django项目从本地上传至宝塔服务器(踩坑记录)

文章目录 写在前面配置本地文件配置宝塔面板解决遇到问题展示运行结果热门文章 自我介绍 ⭐2022年度CSDN 社区之星 Top6 ⭐2023年度CSDN 博客之星 Top16 ⭐2023年度CSDN 城市之星 Top2&#xff08;苏州&#xff09; ⭐CSDN Python领域 优质创作者 ⭐CSDN 内容合伙人 推荐热门…

Three.js如何设置旋转轴心【PIVOT】

在使用Three.js开发3D应用时&#xff0c;经常碰到的一个问题就是如何自定义模型的旋转轴心&#xff08;pivot&#xff09;。例如下面的立方体&#xff0c;假设建模时的轴心在立方体的中心&#xff0c;但是如果希望立方体绕着某个指定的点旋转&#xff08;例如图中标红的顶点&am…

结构型设计模式——适配器模式

适配器模式 这个更加好理解&#xff0c;就是做适配功能的类&#xff0c;例如&#xff0c;现在手机没有了圆形耳机接口&#xff0c;只有Type-C接口&#xff0c;因此你如果还想要使用圆形耳机的话需要买个圆形接口转Type-C的转换器&#xff08;适配器&#xff09;&#xff0c;这…

IntelliJ IDEA如何使用固定地址公网远程访问本地Mysql数据库

文章目录 1. 本地连接测试2. Windows安装Cpolar3. 配置Mysql公网地址4. IDEA远程连接Mysql小结 5. 固定连接公网地址6. 固定地址连接测试 IDEA作为Java开发最主力的工具&#xff0c;在开发过程中需要经常用到数据库&#xff0c;如Mysql数据库&#xff0c;但是在IDEA中只能连接本…

CPT203-Software Engineering 笔记

Week 1 -- Introduction failure reason professional software development*** maintain, security, efficiency, acceptability two kinds***: generic, customized software deterioration 软件退化 reduce changes/ side effects after changes software engineering …

Linux信号处理浅析

一、信号从发送到被处理经历的过程 1、常见概念 (1) 信号阻塞 阻塞&#xff0c;即被进程拉黑&#xff0c;信号被发送后&#xff0c;分为两种情况&#xff0c;一种是被阻塞了&#xff08;被拉黑了&#xff09;&#xff0c;一种是没有被阻塞。 (2) 信号未决 在信号被进程处理…

AI教我学编程之C#入门程序详解与拓展

与AI肩并肩 前言一、一个简单的C#程序补充说明对话AI 二、标识符三、关键字四、Main五、空白1. 缩进2. 代码块的间距3. 操作符的空格4. 换行5. 一致性 六、语句七、从程序输出文本主题&#xff1a;从程序中输出文本1. Write 和 WriteLine 方法2. 格式字符串3. 多重标记和值4. 格…

TinyLog iOS v3.0接入文档

1.背景 为在线教育部提供高效、安全、易用的日志组件。 2.功能介绍 2.1 日志格式化 目前输出的日志格式如下&#xff1a; 日志级别/[YYYY-MM-DD HH:MM:SS MS] TinyLog-Tag: |线程| 代码文件名:行数|函数名|日志输出内容触发flush到文件的时机&#xff1a; 每15分钟定时触发…

CVE-2023-51385 OpenSSH ProxyCommand命令注入漏洞

一、背景介绍 ProxyCommand 是 OpenSSH ssh_config 文件中的一个配置选项&#xff0c;它允许通过代理服务器建立 SSH 连接&#xff0c;从而在没有直接网络访问权限的情况下访问目标服务器。这对于需要经过跳板机、堡垒机或代理服务器才能访问的目标主机非常有用。 二、漏洞简…

面试算法108:单词演变

题目 输入两个长度相同但内容不同的单词&#xff08;beginWord和endWord&#xff09;和一个单词列表&#xff0c;求从beginWord到endWord的演变序列的最短长度&#xff0c;要求每步只能改变单词中的一个字母&#xff0c;并且演变过程中每步得到的单词都必须在给定的单词列表中…

算法通关村番外篇-LeetCode编程从0到1系列六

大家好我是苏麟 , 今天带来LeetCode编程从0到1系列六 . 链表相关的题目 , 也是面试热题 . 大纲 21. 合并两个有序链表206. 反转链表 21. 合并两个有序链表 描述 : 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 题目 : Le…

Jetson Orin AGX 64GB更新 Jetpack6.0

Jetson Orin AGX 64GB更新 Jetpack6.0 注意&#xff1a; 1&#xff0c;如果你要向我一样为AGX更新Jetpack6.0的话&#xff0c;它还要求你的ubuntu版本必须是20.04 或22.04 2&#xff0c;安装完SDKmanager后&#xff0c;然后选择对应的设备&#xff0c;根据个人选择勾选是否安装…