1.盒模型及其应用(溢出、外边距塌陷)

一、盒模型

 盒模型详解-CSDN博客

CSS学习笔记3:CSS三大特性、盒子模型-CSDN博客

1.盒模型组成

(1)padding

padding和border都会撑大盒子,margin不会.

如果没有指定盒子的width/height,那么padding不会撑大盒子。

(2) border

2.标准盒模型-怪异盒模型

标准盒子模型和怪异盒子模型(详解)_怪异盒子模型和标准盒子模型-CSDN博客

2.0 尺寸计算

解决方案:

2.1标准盒模型,W3C标准盒模型

标准盒模型又称W3C标准盒模型,标准盒模型的 width 或 height 决定 content 的宽或高。

计算盒子宽:width(content) + padding + border

计算盒子高:heigth(content) + padding + border 

样式设置:box-sizing: content-box;

box1:设置的 width 和 height 决定了 content 的大小,设置 padding 和 border 会把盒子撑大,margin 不会。

所以计算实际宽高要加上padding和border

2.2怪异盒模型,IE盒模型

怪异盒模型又称IE盒子模型,怪异盒子模型的 width 或 height 等于 content + padding + border 的宽或高。

计算盒子宽:width(content + padding + border)

计算盒子高:heigth(content + padding + border)

样式设置:box-sizing: border-box;

box2:设置的 width 和 height 决定了盒子的大小,设置 border 和 padding 只会压缩 content ,所以怪异盒子模型的模型两个字会被挤出去(容纳不下了)。

所以实际宽高就是设置的宽高,不用加上其他的。

 小结:怪异盒子模型的宽高是定死的,设置 padding 或 border 不会影响页面布局。

二.盒子模型应用

2.1版心居中

设置margin:0 auto;前提是盒子一定要有宽度! 

2.2内容溢出overflow属性

2.3文本溢出省略号显示

 单行文本:

        /* 超出部分隐藏 */overflow: hidden;/* 强制1行显示 */white-space: nowrap;/* 超出部分省略号显示 clip裁剪掉 */text-overflow: ellipsis;

多行文本:

        /* 超出部分隐藏 */overflow: hidden;/* 超出部分省略号显示 */text-overflow: ellipsis;/* 弹性伸缩盒子模型展示 */display: -webkit-box;/* 限制显示行数 */-webkit-line-clamp: 2;/* 设置子元素排列方式:垂直排列vertical 默认horizontal横向 inherit继承父元素 */-webkit-box-orient: vertical;

伪元素实现;(如果有英文就使用word-break:break-all,使单词换行能够拆分)

.box{width: 200px;/* */height: 100px;background-color: pink;overflow: hidden;/* 溢出隐藏 */line-height: 20px;/* 设置行高与容器高度成倍数关系,这样避免文本溢出时,文字显示一半 */text-align: justify;/* 设置文本对齐方式为两端对齐,这样在伪元素内容遮盖末尾文字时才能对齐*/position: relative;/* 子绝父相,这里是为了给伪元素设置定位*/}/* 因为省略号是放在文本最后面的,所以使用伪元素after */.box::after{content: "...";/* 省略号是放在文本最后面的 */width: 1em;/* 设置伪元素的宽度为1em,是为了遮盖的时候正好遮盖中原来的一个字的大小*/background-color: pink;/* 设置与父元素相同的背景颜色,同理,也是为了和原来的内容样式保持一致*/position: absolute;/*设置定位,其位置就是文本的右下角 */right: 0;bottom: 0;

对比display:-webkit-box和伪元素

-webkit-box:兼容webkit内核的浏览器,移动端常用

伪元素;兼容性比较好,响应式截断,根据不同宽度做出调整

 2.4外边距塌陷问题解决

(1)取消子级margin 添加父级padding

            /* 方法一 */padding-top: 30px;box-sizing: border-box;

(2)父盒子添加overflow:hidden

            /* 方法二 *//* 其实是让浏览器找到了父盒子的正确边缘 */overflow: hidden;

 (3)父盒子添加border-top

            /* 方法三 *//* 其实也是让浏览器找到了父盒子的正确边缘 */border-top: 1px solid #000;

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

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

相关文章

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:公路智能巡检解决方案

项目背景 中国公路网络庞大,总里程超过535万公里,高速公路里程位居世界前列。面对基础设施存量的不断增长,公路养护管理已迈入“建管养并重”的新时代。随着养护支出的逐年攀升,如何提升养护效率、降低管理成本,成为亟…

YOLOv10:实时端到端目标检测的新突破

目标检测作为计算机视觉领域的一个核心问题,其关键在于能够在图像中准确识别并定位对象。随着深度学习技术的发展,基于深度神经网络的目标检测方法不断涌现,其中YOLO(You Only Look Once)系列算法以其优异的实时性和准…

推荐几个开源的c#的工作流引擎组件

以下是一个.NET Core领域可以推荐使用的流程引擎的表格: 名称 生产厂家 下载地址 支持二开 独立部署 ccflow 济南驰骋信息技术有限公司 https://gitee.com/opencc 是 是 Elsa Elsa Workflows GitHub - elsa-workflows/elsa-core: A .NET workflows li…

C++类和对象下篇

🐇 🔥博客主页: 云曦 📋系列专栏:[C] 💨路漫漫其修远兮 吾将而求索 💛 感谢大家👍点赞 😋关注📝评论 文章目录 📔1、再谈构造函数📰…

使用 el-autocomplete 实现远程搜索功能

在现代Web应用中,提供高效且用户友好的搜索体验至关重要。Element UI(一个为Vue.js设计的桌面端UI框架)中的el-autocomplete组件正是为了满足这一需求而设计的,它能够实现自动补全与异步搜索功能。本文将通过一个示例来介绍如何使…

【C++】类和对象——构造和析构函数

目录 前言类的六个默认构造函数构造函数1.构造函数的概念2.构造函数的特性 初始化列表1.构造函数整体赋值2.初始化列表 析构函数1.析构函数的概念2.析构函数的特性 前言 类和对象相关博客:【C】类和对象   我们前面一个内容已经讲了关于类好对象的初步的一些知识&…

Python量化交易学习——Part5:通过相关系数选择对收益率影响比重大的因子(1)

上一节中我们学习了如何通过单因子策略进行股票交易,在实际的股市中,因子(也就是指标)数量往往非常之多,比如市盈率/市净率/净资产收益率等,在使用这些因子的过程中,我们会发现有的因子与收益率为正相关,有的因子为负相关,而有些因子几乎完全无关。 所以我们可以通过计…

k8s笔记——kubernetes中的三种IP

kubernetes概念 Master:集群控制节点,每个集群需要至少一个master节点负责集群的管控 Node:工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行 Pod:kubernetes的…

JS-10-es6常用知识-对象扩展

目录 1 Object.assign:实现拷贝继承 2 扩展运算符(...) 1)介绍 2)数组中的扩展运算符 3)对象中的扩展运算符 1 Object.assign:实现拷贝继承 1)目的:Object.assign()方法在 JavaScript 中被…

Java线程中sleep()和wait()有什么区别

在Java线程中,sleep()和wait()是两个经常被提及但功能和使用场景完全不同的方法。以下是它们之间的主要区别: 所属类和用途: sleep() 是 Thread 类的一个静态方法,它用于使当前线程(即调用 sleep() 的线程&#xff0…

C++访问越界

常见场景 访问数组元素越界vector容器访问等 vector<int>;vec<2>&#xff1b;字符串访问越界string str;str[2];array数组访问越界字符串处理&#xff0c;没有添加’\0’字符&#xff0c;导致访问字符串的时候越界了&#xff1b;使用类型强转&#xff0c;让一个大…

Flutter开发效率提升1000%,Flutter Quick教程之定义构造参数和State成员变量

一个Flutter页面&#xff0c;可以定义页面构造参数和State成员变量。所谓页面构造参数&#xff0c;就是当前页面构造函数里面的参数。 比如下面代码&#xff0c;a就是构造参数&#xff0c;a1就是State成员变量。 class Testpage extends StatefulWidget {String a;const Test…

docker学习--docker容器镜像常用命令大全(简)

文章目录 一、镜像命令二、容器管理命令 一、镜像命令 docker search #搜索镜像 docker pull/push #下载/上传镜像 docker images #查看所有本地主机上的镜像可以使用docker image ls代替 docker tag #源镜像名 新镜像名 docker rmi #删除镜像 docker image prune #移除没有标签…

Python的文件管理

读取文件 首先我们可以先创建一个工程项目&#xff0c;如图所示&#xff1a; 打开我们名为1.读取文件.py的python文件&#xff0c;然后我们可以写下读取Python文件的代码&#xff0c;代码如下&#xff1a; f open("1.txt", "r") print(f.read()) f.clos…

【PB案例学习笔记】-14使用次数和日期限制

写在前面 这是PB案例学习笔记系列文章的第14篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

基于OLED菜单显示

菜单一般需要四个按键&#xff0c;上下移动光标&#xff0c;进入菜单&#xff0c;退出菜单 1.按键部分 按键头文件 #ifndef __KEYdriver_H #define __KEYdriver_H #include "sys.h" #include "stdbool.h" /*用户定义的宏开始*/ #define CursorUp PCi…

边缘计算、云计算、雾计算在物联网中的作用

边缘计算和雾计算不像云那样广为人知&#xff0c;但可以为企业和物联网公司提供很多帮助。这些网络解决了物联网云计算服务无法解决的许多问题&#xff0c;并使分散的数据存储适应特定的需求。让我们分别研究一下边缘计算、雾计算和云计算的优势。 雾计算的好处 低延迟。雾网络…

【工具】探索 ARPU:平均每用户收入

缘分让我们相遇乱世以外 命运却要我们危难中相爱 也许未来遥远在光年之外 我愿守候未知里为你等待 我没想到为了你我能疯狂到 山崩海啸没有你根本不想逃 我的大脑为了你已经疯狂到 脉搏心跳没有你根本不重要 &#x1f3b5; 邓紫棋《光年之外》 什么是 ARP…

UE5.1_常用快捷键

UE5.1_常用快捷键 shift1&#xff0c;&#xff0c;模式选择 shift2&#xff0c;&#xff0c;模式选择 shift3&#xff0c;&#xff0c;模式选择 shift4&#xff0c;&#xff0c;模式选择 shift5&#xff0c;&#xff0c;模式选择 shift6&#xff0c;&#xff0c;模式选择 …

2.3Docker部署java工程

2.3Docker部署java工程 1.导入jar包 2.在Docker部署jdk&#xff08;容器名为myjdk17&#xff09; 3.修改jar包名 mv 原包名 新包名4. 配置启动脚本 Dockerfile是一个文本文件&#xff0c;其中包含了构建 Docker 镜像所需的一系列步骤和指令。通过编写 Dockerfile 文件&…