第六讲_css盒子模式

news2024/11/19 15:38:38

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.coloradmin.cn/o/1371280.html

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

相关文章

控制注塑机PQ比例阀放大器

控制不带电反馈的单或双比例电磁铁的博世力士乐&#xff08;Bosch Rexroth&#xff09;、伊顿威格士&#xff08;EATON Vickers&#xff09;、油研&#xff08;YUKEN&#xff09;、贺德克&#xff08;HYDAC&#xff09;、大金&#xff08;DAIKIN&#xff09;、不二越&#xff0…

API(Math类,System类,Runtime类,Object类,Objects类,BigInteger类,BigDecimal类)

文章目录 课程目标1 Math类1.1 概述1.2 常见方法1.3 算法小题(质数)1.4 算法小题(自幂数)1.5 课后练习 2 System类2.1 概述2.2 常见方法 3 Runtime3.1 概述3.2 常见方法3.3 恶搞好基友 4 Object类4.1 概述4.2 常见方法 5 Objects类5.1 概述5.2 常见方法 6 BigInteger类6.1 引入…

微信小程序的生命周期函数有哪些?

面试官&#xff1a;说说微信小程序的生命周期函数有哪些&#xff1f; 一、是什么 跟vue、react框架一样&#xff0c;微信小程序框架也存在生命周期&#xff0c;实质也是一堆会在特定时期执行的函数 小程序中&#xff0c;生命周期主要分成了三部分&#xff1a; 应用的生命周期…

用React给XXL-JOB开发一个新皮肤(二):目录规划和路由初始化

目录 一. 简述二. 目录规划三. Vite 配置 3.1. 配置路径别名3.2. 配置 less 四. 页面 4.1. 入口文件4.2. 骨架文件4.3. 普通页面 五. 路由配置六. 预览启动 一. 简述 上一篇文章我们介绍了项目初始化&#xff0c;此篇文章我们会先介绍下当前项目的目录规划&#xff0c;接着对…

学习JavaEE的日子 day11 初识面相对象

day11 1.初识面相对象 1.1 类和对象的理解 类 * 类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合 * 简单理解&#xff1a;类就是对现实事物的一种描述 类的组成 * 属性&#xff1a;指事物的特征&#xff0c;例如&#xff1a;手机事物&#xff08;品牌…

【2023】java常用HTTP客户端对比以及使用(HttpClient/OkHttp/WebClient)

&#x1f4bb;目录 1、介绍2、使用2.1、添加配置2.1.1、依赖2.1.2、工具类2.1.3、实体2.1.4、Controller接口 2.2、Apache HttpClient使用2.3 、OkHttp使用2.4、WebClient使用 1、介绍 现在java使用的http客户端主要包括以下几种 而这些中使用得最频繁的主要是&#xff1a; A…

麒麟系统安装docker、mysql、clickhouse

1、查看麒麟系统版本信息 cat /etc/os-release 麒麟系统版本V10 64位操作系统 # uname -p x86_64 # uname -p aarch64 内核版本 # uname -r 4.19.90-24.4.v2101.ky10.x86_64 本操作为麒麟系统版本V10&#xff0c;x86_64操作系统 一&#xff0c;安装docker 文件&#xff1a…

基于uniapp封装的table组件

数据格式 tableData: [{elcInfo: [{tableData:[1,293021.1,293021.1,293021.1,293021.1,]}]},{elcInfo: [{tableData:[1,293021.1,293021.1,293021.1,293021.1,]}]},{elcInfo: [{tableData:[1,293021.1,293021.1,293021.1,293021.1,]}]},/* {title: "2",elcInfo: [{…

spring-mvc数据绑定和表单标签库(介绍)

spring-mvc数据绑定和表单标签库 1. WEB-INF下页面跳转2. ModelAttribute来注解非请求处理方法3. 表单标签4. 其他标签5. IDEA tomcat控制台中文乱码问题处理 1. WEB-INF下页面跳转 容器启动后&#xff0c;如何默认显示web-inf目录下的系统首页。 2. ModelAttribute来注解非…

mysql生成到当前时间的时间序列,报表按时间补0

生成本月每日的时间序列 SELECT DATE_FORMAT(date_add( CONCAT(YEAR(Date(curdate())),‘-0’,MONTH(Date(curdate())),‘-’,‘01’), INTERVAL ( cast( help_topic_id AS signed) ) DAY ) ,‘%Y-%m-%d’ ) FROM mysql.help_topic WHERE help_topic_id < DAY ( curdate( ) …

示例说明 Makefile 中的 $(@F),及其用法示例$$dir $@ $< $^ %.c

备忘一个不错的开源编辑器CudaText 下载网址&#xff1a; CudaText - Browse /release at SourceForge.net CudaText 主页&#xff1a; CudaText - Home 1&#xff0c;含义及验证 在 Makefile 中&#xff0c;$(F) 表示当前规则的目标文件名&#xff08;不包括路径部分&…

在Linux中使用Apache HTTP服务器

Apache HTTP服务器&#xff0c;也被称为Apache&#xff0c;是全球使用最广泛的Web服务器软件之一。它以其稳定性、强大的功能和灵活性而闻名&#xff0c;尤其在Linux操作系统上表现得尤为出色。以下是关于如何在Linux中使用Apache HTTP服务器的详细指南。 1. 安装Apache 首先…

AI墨墨交流群正式成立:探索科技前沿,共建智能未来

在这个充满变革的时代&#xff0c;AI技术正如涌泉般迸发&#xff0c;带来无限可能。我们深感&#xff0c;唯有汇聚智慧&#xff0c;方能更好地驾驭这股前沿科技的潮流。因此&#xff0c;我们自豪地宣布&#xff1a;AI墨墨交流群正式成立了&#xff01;这不仅是一个交流群&#…

日志系统一(elasticsearch+filebeat+logstash+kibana)

目录 一、es集群部署 安装java环境 部署es集群 安装IK分词器插件 二、filebeat安装&#xff08;docker方式&#xff09; 三、logstash部署 四、kibana部署 背景&#xff1a;因业务需求需要将nginx、java、ingress日志进行收集。 架构&#xff1a;filebeatlogstasheskib…

debug OpenBLAS library 和 应用示例

1. 构建openblas lib git clone gitgithub.com:OpenMathLib/OpenBLAS.git cd OpenBLAS/ 如果要安装在自定义文件夹中&#xff0c;可以修改 PREFIX 的定义&#xff1a; 将 PREFIX /opt/OpenBLAS 修改成 PREFIX ../local/ 然后构建&#xff1a; make -j make install 如果要…

【解决】Unity Project 面板资源显示丢失的异常问题处理

开发平台&#xff1a;Unity 2021.3.7f1c1   一、问题描述 在开发过程中&#xff0c;遭遇 Project 面板资源显示丢失、不全的问题。但 Unity Console 并未发出错误提示。   二、解决方案&#xff1a;删除 Library 目录 前往 “工程目录/Library” 删除内部所有文件并重打开该…

007-可调脉冲数触发之FPGA实现(Zynq也可驱动,带启动停止及完成中断输出)

文章目录 前言一、设计思路二、代码及仿真1.资源消耗2.具体代码3.仿真波形 总结 前言 此代码是在做显微镜高速聚焦系统中自己写的步进电机电机驱动源码&#xff0c;为了达到最快的驱动速度&#xff0c;因此选用脉冲触发方式进行驱动。在电机驱动的过程中往往需要对脉冲进行使能…

React Native 桥接原生实现 JS 调用原生方法

一、为什么需要桥接原生 为了满足在React 层无法实现的需求 复杂高性能的组件&#xff1a;复杂表格、视频播放原生层开发能力&#xff1a;传感器编程、widget平台属性&#xff1a;系统信息、设备信息对接第三方应用&#xff1a;相机、相册、地图 真实的开发过程中是不可能完…

OpenGL学习笔记-Blending

混合方程中&#xff0c;Csource是片段着色器输出的颜色向量&#xff08;the color output of the fragment shader&#xff09;&#xff0c;其权重为Fsource。Cdestination是当前存储在color buffer中的颜色向量&#xff08;the color vector that is currently stored in the …

欢乐的周末 - 华为OD统一考试

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 小华和小为是很要好的朋友&#xff0c;他们约定周末一起吃饭。 通过手机交流&#xff0c;他们在地图上选择了多个聚餐地点(由于自然地形等原因&#xff0c;部分聚餐地点不可达)。求小华和小为都能到达的聚餐地点有多…