css3属性box-sizing:border-box 用法解析

盒子模型中box-sizing: border-box;的作用 css3 box-sizing属性 阅读详情
AI摘要

本文探讨了在响应式Web设计中,如何处理百分比布局与固定边框大小的冲突,介绍了一种利用CSS的box-sizing属性来解决边框与内边距影响布局宽度的方法。

响应式Web设计经常需要我们通过百分比设置组件宽度。如果我们不考虑边框,那么很容易就可以实现,但如果你给每一列以及总宽度都采用百分比设置,那这个时候固定的边框大小就会出来捣乱。下面我们将看到一组方法去解决这个问题,你会学到如何创建一个流式布局,而不用担心额外的边框以及内边距。
假设我们需要一个五列的布局。我们要考虑的第一件事就是外边距(margins).假设所有的列都需要4%的外边距,我们需要为所有的外边距保留20%(4%*5(5列)=20%)的占宽比;然后我们从总宽比(100%)里面减去20%,得到的就是所有列实际占的总宽比。所以每一列的占宽比即16%(80% /5)。下面是一个详细的图表:
在这里插入图片描述

相应的CSS代码如下:

.column{ 
   width:16%; 
   margin: 2% 2%;
   float: left;
   background: #03a8d2;  
} 

对应的界面是:
在这里插入图片描述
当我们给每一列添加一个2px的边框时,问题出现了,如下图,最后一列被挤到下面去了。
在这里插入图片描述
解决方案当然应该是:在之前的计算中我们应该考虑到边框(border),但是我们怎么去做呢?结论是,我们不能用百分比去设置border边框的大小,只能用一个固定的值。因为如果所有的都使用百分比设置,那么我们留给border的空间也会是一个变化的值,也就是说当页面宽度变化时,border的值也会跟着变化,这样是有问题的。这使得我们没有办法去决定我们边框的宽度!

解决方案
设置CSS的box-sizing属性值为“border-box”,这样就会把borders和padding全都包含在定义的宽高里面。这就意味着一个带有2px边框的200px的div仍然宽度是200px!!是不是很神奇呢?

.column{ 
    width: 16%; 
    margin: 2% 2%; 
    float: left; 
    background:#03a8d2; 
    border: 2px solid black; 
    box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
} 

在这里插入图片描述
即使我们加上padding,也同样可以正常显示:
在这里插入图片描述
浏览器兼容性问题:
兼容性和上面的一样,除了IE需要8以上的版本,其他浏览器均可兼容,同时这个方法不会出现上面提到的阴影问题。


CSS中box-sizing: border-box;的作用

box-sizing 属性可以被用来调整这些表现:

content-box 是默认值。如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。

border-box 告诉浏览器去理解你设置的边框和内边距的值是包含在width内的。也就是说,如果你将一个元素的width设为100px,那么这100px会包含其它的border和padding,内容区的实际宽度会是width减去border + padding的计算值。大多数情况下这使得我们更容易的去设定一个元素的宽高。

border-box width 和 height 属性包括内容,内边距和边框,但不包括外边距。这是当文档处于 Quirks模式时Internet Explorer使用的盒模型。注意,填充和边框将在盒子内 , 例如, .box {width: 350px; border: 10px solid black;} 导致在浏览器中呈现的宽度为350px的盒子。内容框不能为负,并且被分配到0,使得不可能使用border-box使元素消失。
这里的维度计算为: width = border + padding + 内容的width, height = border + padding + 内容的 height。

深入理解 `box-sizing: border-box;`:CSS 布局的利器 深入理解 `box-sizing: border-box;`:CSS 布局的利器 阅读详情

相关推荐

U盘文件变exe?3步教你用火绒+批处理脚本恢复隐藏文档(附注册表修复)

本文详细解析了U盘文件被病毒隐藏并伪装成exe文件的原理,并提供了三步解决方案:首先使用火绒安全软件进行全盘查杀清除病毒;其次通过批处理脚本批量恢复被隐藏的文件属性;最后修复被篡改的注册表设置,彻底解决文件无法显示的问题,帮助用户安全找回数据并加固系统防护。

weixin_28622215的博客 911

Box-Sizing

来自:http://www.w3cplus.com/content/css3-box-sizing box-sizing是CSS3的box属性之一。一说到CSS的盒模型(Box model)我想很多人都会比较烦,特别是对于新手,然而这个Box model又是我们CSS运用中比较重要的一个属性。那么CSS3的Box-sizing跟盒模型有什么关系呢?第一句话就说了,Box-sizing是CSS

精彩人生 2432

IEEE Access 上岸指南,附含泪整理的 cover letter 、沟通邮件、终版文档等资料包

终于上岸了! 我是一个小硕,本科期间发表过两篇水文,奈何学校有更高的毕业要求,只能硬着头皮尝试一下 SCI。 想投 IEEE Access 的朋友都应该知道 小木虫论坛 对这个期刊的讨论,褒贬不一,有的人说是大水刊,有的人说有难度。 比如: @wow_: 不可否认,灌水期刊。只要之前中过一篇,再投基本没有不录用的!我们实验室其他老师说过一区除外的收费期刊都应该禁止灌水。 @pssp: 审稿人还...

kurryluo的博客 1万+

box-sizing:border-box的理解和作用

box-sizing:border-box的理解和作用。CSS中代码background:url(图片) no-repeat right center的意思

qq_51066068的博客 2万+

立创EDA开源足轮机器人:基于STM32F407与ESP32的LQR自平衡与FOC驱动设计全解析

本文详细解析了基于立创EDA平台的开源足轮机器人项目。该项目采用STM32F407作为主控,ESP32负责无线通信,并应用LQR自平衡算法与FOC驱动技术,实现了机器人的稳定站立、移动转向及复杂地形适应能力。文章深入剖析了其硬件架构、软件设计及调试经验,为机器人运动控制学习提供了宝贵参考。

weixin_42608299的博客 232

170、电机控制中的温升测试

本文以一次IGBT炸管事故为切入点,深入剖析电机控制中温升测试的实质:不仅是温度测量,更是对铜损、铁损、散热效率等热管理问题的系统验证。作者强调测试前热电偶布置、环境记录、预运行的重要性,提出实时监控电流谐波、绕组电阻、散热梯度等关键参数,并通过损耗分离与冷却系统实测,揭示真实热源。结合温升曲线异常分析与经验建议,强调留余量、仿真结合实测、关注瞬态工况等实践要点,警示温升测试是保障可靠性与安全性的核心环节。

2401_88858637的博客 47

css3属性box-sizing:border-box 用法解析及经常使用的场景

响应式Web设计经常需要我们通过百分比设置组件宽度。如果我们不考虑边框,那么很容易就可以实现,但如果你给每一列以及总宽度都采用百分比设置,那这个时候固定的边框大小就会出来捣乱。下面我们将看到一组方法去解决这个问题,你会学到如何创建一个流式布局,而不用担心额外的边框以及内边距。 假设我们需要一个五列的布局。我们要考虑的第一件事就是外边距(margins).假设所有的列都需要4%的外边距,我们需要为...

luxu1990的博客 1万+

高渗透率光伏接入配电网的电压越限与谐波治理:基于VSG构网型控制与SVG+APF联合补偿的Simulink仿真研究

本文针对高渗透率光伏接入配电网引发的电压越限和谐波畸变问题,提出了一种分层递进的综合治理方案。通过建立IEEE 33节点配电网的Simulink仿真模型,首先验证了传统跟网型控制下光伏渗透率提高导致的电压越上限(最高达1.08 p.u.)和系统谐波畸变严重(THD达8.72%)问题。进而提出:1)将部分光伏逆变器改造为构网型VSG控制,利用其无功调压能力与虚拟阻抗技术实现本地治理;2)在关键节点加装SVG+APF联合补偿装置进行全局动态无功补偿与谐波滤除。仿真结果表明,该方案能将节点电压控制在0.94-1.

huanghm88的专栏 576

css3属性box-sizing:border-box 用法解析 击败边框:带border的百分比布局

响应式Web设计经常需要我们通过百分比设置组件宽度。如果我们不考虑边框,那么很容易就可以实现,但如果你给每一列以及总宽度都采用百分比设置,那这个时候固定的边框大小就会出来捣乱。下面我们将看到一组方法去解决这个问题,你会学到如何创建一个流式布局,而不用担心额外的边框以及内边距。 假设我们需要一个五列的布局。我们要考虑的第一件事就是外边距(margins).假设所有的列都需要4%的外边距,我们需要为所...

xllfy123的博客 659

Dify 实战:使用 Firecrawl 插件高效爬取微信公众号文章

本文介绍了如何利用Dify平台和Firecrawl插件构建微信公众号文章自动化采集系统。Dify作为开源LLM应用开发平台,结合Firecrawl的智能网页爬取能力,可轻松实现文章爬取、清洗和结构化存储。文章详细讲解了环境部署、插件安装以及工作流创建过程,通过可视化节点操作即可完成从URL输入到Markdown格式输出的全流程。该方案无需复杂代码,能有效解决反爬、动态渲染等问题,适用于知识库构建、模型训练等场景,显著提升开发效率。

SmartSi 1820

Python 爬虫实战:爬取知乎问答与评论数据并分析

摘要:本文以Python为核心工具,系统讲解知乎问答与评论数据爬取的技术方案。通过分析知乎API接口结构,详细阐述Requests库结合正则表达式的数据获取方法,涵盖请求头构造、鉴权参数处理等关键技术。文章对比了HTML解析、API调用和Selenium模拟三种爬取方案的优劣,提供完整的代码实现,包括问题信息获取、回答列表爬取和评论数据提取。同时介绍了数据存储(JSON/Excel)和基础文本分析(词云生成)方法,并给出合规使用建议和技术优化方向,为开发者提供了一套可落地的知乎数据爬取与分析解决方案。

2503_91057718的博客 1818

css3属性box-sizing:border-box

css3属性box-sizing:border-box 用法解析 响应式Web设计经常需要我们通过百分比设置组件宽度。如果我们不考虑边框,那么很容易就可以实现,但如果你给每一列以及总宽度都采用百分比设置,那这个时候固定的边框大小就会出来捣乱。下面我们将看到一组方法去解决这个问题,你会学到如何创建一个流式布局,而不用担心额外的边框以及内边距。 假设我们需要一个五列的布局。我们要考虑的第一件事就是...

qq_42681787的博客 495

100天精通Python(可视化篇)——第89天:Bokeh库绘图可视化基础入门(参数说明+案例实战)

专栏导读 一、Bokeh是什么? 二、安装与导入 三、Bokeh接口介绍 四、创建图表 五、添加自定义渲染器 切换主题 添加图例 图例位置 图例方向 图例背景和边界 图例文本的外观 行列布局 网格布局

努力让自己发光,对的人才能迎着光而来 1万+

CSS 盒子模型全解析:组成、用法与实例

CSS 盒子模型是网页布局的基石,包含 CSS2 基础框架、CSS3 扩展特性及盒子大小计算模式三大核心。 CSS2 定义盒子由外边距、边框、内边距和内容区四层构成,通过边框三要素(宽度、样式、颜色)、内外边距简写规则调控布局,需解决垂直外边距合并与塌陷问题,块级盒子水平居中需固定宽高且左右外边距设为 auto。 盒子大小由 box-sizing 控制:默认 content-box 宽高仅含内容区,推荐的 border-box 则包含内边距与边框。 CSS3 新增特性仅优化视觉表现不影响布局,需结合基础合理

Shabbt的博客 1065

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CSS解读之box-sizing属性

box-sizing属性是CSS3中引入的,有人解释为它可以指定用width属性与height属性分别指定的宽度值与高度值是否包含元素内部的补白区域,以及边框的宽度与高度。这句话有点绕,我理解为它是一种容器高宽的计算方法,具体是怎样的一种计算方法,和传统的计算方法又有什么区别,通过下面的例子我们可以很直观的了解到。        如图1-1所示,两个div均统一设置属性,然后针对第二个div

zhanglir333的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CSS box-sizing: border-box:现代 Web 布局的基石

CSS盒模型最佳实践:全局使用box-sizing: border-box CSS盒模型是网页布局的基础概念,其中box-sizing属性决定了元素尺寸的计算方式。默认的content-box模式下,元素的width仅包含内容区,添加padding和border会导致元素实际占用空间超出预期。而border-box模式将padding和border包含在设定的width内,使布局更可控。 采用border-box具有显著优势:更符合设计直觉、避免布局溢出、简化响应式设计并提升组件复用性。

小李同学的博客 2261

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

CSS box-sizing 两种属性 border-box,content-box

box-sizing 是什么? css的盒子模型box model 不会将padding与border计算到容器(如div)的宽高中的, 这就导致你所设定的容器宽度未必是最终宽度(需要加上padding与border). 因此有了box-sizing:border-box的设定,其效果就是将padding和border纳入容器宽高 如何应用box-sizing 多用与所有css选择...

卷尾巴 2368

box-sizing属性解析

实际上div等或者display属性设置为block的块级元素默认的都是box-sizing:content-boxboxsizing的值列表 content-box 是块级元素默认的。 padding-box 因为兼容性不好,只有fireFox支持,chrome和IE浏览器不支持,而且WC上也并没有列举出来,所以不做讨论。 border-box 所有浏览器都兼容。 inherit 继承它父元素的

zzzzz周绍辉的博客 1138

CSS3 的 box-sizing 属性

其实 box-sizing 这个属性网上各种教程中有很多但是不是那么的简单明了,都是一些书面语,看起来很繁琐,在这里记录一下这个属性,方便以后回来查看。 1、定义:CSS3中的box-sizing属性定义了user agent应该如何计算一个元素的总宽度和总高度。 2、语法:box-sizing:content-box | border-box | inherit;(默认值:content-box...

单枪匹码 536

Turing Smart Screen Python 上手指南:让 USB-C 智能显示屏变成桌面系统监控屏

Turing Smart Screen Python 是一个开源的 Python 系统监控屏项目,专门驱动 Turing Smart Screen、XuanFang 等小型 IPS USB-C 智能显示屏。它把一块巴掌大的小屏变成实时的 CPU、GPU、内存、网络和天气仪表盘,适合想在桌面摆一块状态屏的硬件玩家,也适合想在 Python 项目里直接控制小屏显示的开发者。 ## 这块小屏能显示什么

gitblog_00118的博客 338

box-sizing属性的用法

box-sizing属性用来设置或检索对象的盒模型组成模式 起因是因为盒子模型分为标准盒子模型和IE盒子模型。 这意味着,如果我们设置一个宽度为200px,而实际呈现的盒子的宽度可能会大于200px(除非没有左右边框和左右补白)。这可能看起来比较怪,CSS设置的宽度仅仅是内容区的宽度,而非盒子的宽度。 这导致的直接结果是当我们希望页面呈现的盒子的宽度是200px的时候,我们需要减去它的左右边框和...

yangyang的专栏 731

CSS盒模型详解:content、padding、border、margin四层原理与box-sizing实战

CSS盒模型是网页布局的底层空间计算体系,定义了HTML元素如何通过content(内容区)、padding(内边距)、border(边框)和margin(外边距)四层结构占据页面空间。其核心原理在于不同box-sizing取值(content-box与border-box)直接决定width/height的计算基准,进而影响响应式布局稳定性与开发者心智模型。技术价值体现在消除尺寸错位、统一跨浏览器渲染、提升Flex/Grid协同效率;典型应用场景包括卡片组件构建、margin塌陷治理、移动端间距适配及Re

weixin_30628077的博客 315

CSS中的box-sizing属性

目录 零、码仙励志 一、box-sizing 1.语法 2.案例 1.属性为content-box 2.属性为border-box 零、码仙励志 许多时候,我们不快乐,并非因为寂寞,而是太多的无能为力,太多的不愿割舍。 一、box-sizing 1.语法 box-sizing: content-box|border-box|inherit; 2.案例 1.属性...

秦哥的博客 580
上一篇: Unable to preventDefault inside passive event listener due to target being treated as passive.
下一篇: mssql sqlserver 分组排序函数row_number、rank、dense_rank用法简介及说明
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值