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++类和对象下篇

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

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

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

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

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

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

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

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

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

Python的文件管理

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

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

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

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

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

UE5.1_常用快捷键

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

2.3Docker部署java工程

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

Adversarial Nibbler挑战:与多元社区持续开展开放红队测试

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

RPG Maker MV角色战斗动画记录

角色战斗动画记录 角色战斗状态判断的语句赋值 战斗管理战斗精灵创建精灵进行角色的更新 角色战斗状态 角色的战斗状态是由 Game_Battler 类中的 _actionState 属性的字符串决定的,它有哪些值呢? undecided 未确定或者说是操作状态inputting 输入waiti…

QA 未能打开位于 D:/Computer999/Computer999.vbox 的虚拟电脑

前言 未能打开位于 xxx/Computer999.vbox 的虚拟电脑,并提示E_INVALIDARG (0X80070057),是最常见的一个错误,下面是解决办法。 内容 1、提示下面的错误,注册Computer999失败: 未能打开位于 D:/Computer999/Compute…

K210视觉识别模块学习笔记1:第一个串口程序_程序烧录与开机启动

今日开始学习K210视觉识别模块:简单的认识与串口程序 亚博智能的K210视觉识别模块...... 固件库版本: canmv_yahboom_v2.1.1.bin 既然K210作为一个视觉识别外设模块来使用,我认为第一个程序 就没必要学点灯之类的了,直接学习串口如何配置开始为妥&…

ctfshow-web入门-爆破(web21-web24)

目录 1、web21 2、web22 3、web23 4、web24 1、web21 爆破什么的,都是基操 需要认证才能访问 随便输一个用户名和密码抓包看看: 多出来一个认证的头 Authorization: Basic YWRtaW46MTIzNDU2 base64 解码看看: 就是我们刚才输入的用于测…

C语言 | Leetcode C语言题解之第127题单词接龙

题目&#xff1a; 题解&#xff1a; struct Trie {int ch[27];int val; } trie[50001];int size, nodeNum;void insert(char* s, int num) {int sSize strlen(s), add 0;for (int i 0; i < sSize; i) {int x s[i] - ;if (trie[add].ch[x] 0) {trie[add].ch[x] size;m…

计算机系统结构之FORK和JOIN

程序语言中用FORK语句派生并行任务&#xff0c;用JOIN语句对多个并发任务汇合。 FORK语句的形式为FORK m&#xff0c;其中m为新领程开始的标号。 JOIN语句的形式为JOIN n&#xff0c;其中n为并发进程的个数。 例1&#xff1a;给定算术表达式ZEA*B*C/DF经并行编译得到如下程序…

刘强东的简历很拉风!

正式宣布&#xff1a;GPT 4o 在国内直接使用 ~ 来看一下江湖人称“东哥”刘强东的简历&#xff0c;大佬确实很拉风&#xff1a; 刘强东&#xff0c;京东的创始人&#xff0c;是中国互联网行业的传奇人物。他的故事充满了奋斗和创新&#xff0c;以下是我对他简历的一些看法&…