news 2026/4/18 1:06:43

为什么你应该停止使用“传统“的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/11 8:37:33

超详细版STM32CubeMX点亮LED灯在HMI面板中的集成方法

让硬件“会说话”:用STM32CubeMX实现LED状态在HMI面板上的可视化交互 你有没有过这样的经历?调试一个嵌入式系统时,盯着板子上那颗小小的LED灯,心里默念:“亮了是运行中,灭了是待机……等等,刚才…

作者头像 李华
网站建设 2026/4/16 1:38:06

jflash下载入门必看:新手快速上手配置指南

jflash下载实战指南:从零搭建稳定烧录环境 你有没有遇到过这样的场景?代码明明编译通过了,但一到下载就报“ Target not connected ”;或者固件写进去了,运行却像卡顿的旧手机——闪烁几下就死机。更糟的是产线批量…

作者头像 李华
网站建设 2026/4/18 3:50:06

港口物流调度AI:集装箱分配方案在TensorRT上快速生成

港口物流调度AI:集装箱分配方案在TensorRT上快速生成 在全球贸易持续增长的背景下,港口每天要处理数以万计的集装箱流转任务。靠泊的货轮、穿梭的集卡、繁忙的岸桥,每一个环节都牵一发而动全身。稍有延迟,就可能引发连锁延误&…

作者头像 李华
网站建设 2026/4/18 3:51:56

品牌声誉监控:社交媒体情绪分析通过TensorRT全天候追踪

品牌声誉监控:社交媒体情绪分析通过TensorRT全天候追踪 在微博热搜瞬息万变、一条短视频可能引爆全网舆论的今天,企业对品牌声誉的掌控力正面临前所未有的挑战。某知名饮料品牌曾因一段用户拍摄的“瓶盖松动”视频,在48小时内遭遇负面舆情扩散…

作者头像 李华
网站建设 2026/4/17 19:38:52

核心要点:提升USB识别成功率的关键设置

如何让电脑真正“看见”你的USB设备?——从驱动到固件的全链路排错指南 你有没有遇到过这样的情况: 插上U盘,系统毫无反应; 外接硬盘连灯都不亮; 手机能充电,但就是传不了文件…… 明明线是好的&#…

作者头像 李华