news 2026/4/23 9:46:45

为什么你应该停止使用“传统“的margin和padding来设置CSS样式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么你应该停止使用“传统“的margin和padding来设置CSS样式

随着使用网络的人比以往任何时候都多,确保网络体验对所有用户都可访问的需求变得更加迫切。这包括从从不同方向/角度((从右到左,从上到下等)。

当添加传统的marginpadding时,你明确地定义了来自各个方向(上、下、左和右)的边距和填充。这可能会在你的区域设置中创建一个看起来不错的布局,但当使用不同区域设置的用户以与你设计的方式不同的 方向/角度 和查看内容时,可能会感到困惑。

每个现代开发者都应该使用margin-inline/margin-blockpadding-inline/padding-block

我们来分析这些CSS属性是如何工作的,以及为什么我们要使用它们。

margin-inlinepadding-inline控制左右 margin/padding。我们不是明确定义与这些特定方向对应的边距,而是将它们定义为startend边距。虽然一个区域可能从左开始到右结束,但其他区域可能不是,所以以这种方式定义它们将确保无论区域设置如何,margin 和 padding 都会按预期显示。

同样,margin-blockpadding-block控制上下 margin/padding,使用相同的startend模式,而不是明确定义topbottom

要同时为多个方向定义 margin 或 padding,你可以使用:

  • margin-inline: [start值] [end值];用于左右边距
  • margin-block: [start值] [end值];用于上下边距
  • padding-inline: [start值] [end值];用于左右填充
  • padding-block: [start值] [end值];用于上下填充

要仅为一个方向定义边距或填充,你可以使用:

  • margin-inline-start(而不是margin-left
  • margin-inline-end(而不是margin-right
  • margin-block-start(而不是margin-top
  • margin-block-end(而不是margin-bottom
  • padding-inline-start(而不是padding-left
  • padding-inline-end(而不是padding-right
  • padding-block-start(而不是padding-top
  • padding-block-end(而不是padding-bottom

我们看一些例子:

// 传统 margin-left: 1.2em; // 等效 margin-inline-start: 1.2em; // 传统 padding-top: 5px; // 等效 padding-block-start: 5px;

或者当为多个方向定义填充时:

// 传统 padding: 5px 10px 20px 15px; // 等效 padding-block: 5px 20px; padding-inline: 15px 10px;

当与使用flexbox进行内容对齐而不是float结合使用时,这些现代margin/padding模式更加强大。Flexbox是一个与方向无关的布局模型。它不是明确地将元素对齐到leftrighttopbottom,而是允许将内容对齐到其父元素的垂直和水平startend

例如:

// 在从左到右查看时将子元素对齐到右侧,或在从右到左查看时对齐到左侧。 parent-element { display: flex; align-items: flex-end; }

即使您的应用程序或网站目前不支持根据地域以不同的方向/方位显示文本/内容,开发人员最终也应通过采用上述模式,努力使所有用户都能获得无障碍的网络体验。这是一个很容易实现的过渡,每个开发人员都应采用,以实现未来的无障碍访问。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 14:02:07

2025:在真实项目中打磨技术的这一年 —— 我的前端技术年度总结

2025 年,对我来说不是技术爆发的一年,却是技术真正沉淀和成型的一年。这一年里,我没有刻意追逐热点框架,也没有为了“新”而“新”,而是把大量时间投入到真实业务、真实用户和真实问题中,在一次次踩坑、重构…

作者头像 李华
网站建设 2026/4/15 19:44:56

Keil5新建项目操作指南:适用于初学者

手把手教你用Keil5搭建第一个嵌入式项目:从零开始,不踩坑你是不是也曾在打开Keil μVision5时,面对“New Project”按钮犹豫再三?点下去之后弹出的“Select Device”窗口又让你一头雾水:“我该选哪个芯片?”…

作者头像 李华
网站建设 2026/4/18 12:01:24

LED驱动电路瞬态保护设计:工业应用场景图解说明

工业级LED驱动如何扛住电网“闪电战”?深度拆解瞬态保护设计实战你有没有遇到过这样的场景:产线上的LED指示灯莫名其妙地烧毁,或者智能照明系统频繁重启,查来查去电源电压明明正常?问题很可能出在你看不见的地方——那…

作者头像 李华
网站建设 2026/4/16 14:37:19

医疗器械AI辅助:影像诊断系统通过TensorRT满足合规要求

医疗器械AI辅助:影像诊断系统通过TensorRT满足合规要求 在现代医学影像科的日常工作中,放射科医生面对的是日益增长的CT、MRI检查量。一张肺部CT通常包含数百层切片,人工阅片不仅耗时费力,还容易因疲劳导致漏诊。近年来&#xff0…

作者头像 李华
网站建设 2026/4/22 21:03:15

库存优化管理系统:需求预测模型通过TensorRT动态调整

库存优化管理系统:需求预测模型通过TensorRT动态调整 在大型零售企业的每日运营中,一个看似简单的问题却常常带来巨大压力:明天该为每个商品补多少货? 传统做法依赖历史销量均值或人工经验,但在促销、季节更替甚至天…

作者头像 李华
网站建设 2026/4/19 10:26:19

图书馆智能检索:文献关联网络在TensorRT上实时挖掘

图书馆智能检索:文献关联网络在TensorRT上实时挖掘 在数字图书馆日益庞大的今天,用户不再满足于简单的关键词匹配。他们希望系统能像一位资深研究员那样,不仅找到相关论文,还能揭示“阿尔茨海默病”与“肠道菌群”之间那些隐秘却关…

作者头像 李华