CSS margin-trim

margin-trim

🧪这是一个实验性的属性, 目前仅有 Safari 支持

看这个属性的名字就知道, 外边距修剪.

平常都会遇到一些排版上的问题, 比如垂直排列的元素之间增加下外边距

<div>
  <li>123</li>
  <li>456</li>
  <li>789</li>
  <li>000</li>
</div>
div {
   
  padding: 10px;
}
div > li {
   
  margin-bottom: 10px;
}
</style>

在这里插入图片描述

但是通常我们不希望最后一个元素增加下外边距, 因为列表容器已经有了下内边距, 因此需要对最后一个元素做特殊处理

li:last-child {
   
  margin-bottom: 0;
}

在这里插入图片描述

主角登场

说到这里 margin-trim 可以做什么呢? 哎, 把 margin-trim 加在列表元素的父容器上, 父容器就会修剪子元素和父容器相邻的子元素的外边距.

 div {
   
  padding: 10px;
  margin-trim: block; // 主角在这
}
div > li {
   
  margin-bottom: 10px;
}
/* li:last-child {
  margin-bottom: 0;
} */

我们从下图看到, 虽然每个子元素的下边距都是 10px, 但是和父容器相邻的子元素的外边距却被裁减了.

在这里插入图片描述

语法

在上面的例子我们通过 block 属性指定只能修剪逻辑块方向的外边距, 其实 margin-trim 的值可以是下面的任何一个

  • none
  • block
  • block-start
  • block-end
  • inline
  • inline-start
  • inline-end

主角的局限性

然而, 我们的主角还没有得到 Safari 的全部支持, 因为在内联方向上的 margin 裁减没!有!效!果!

在这里插入图片描述

在这里插入图片描述

为什么会这样呢? 因为在 inline 方向上的裁剪效果还没有定

在这里插入图片描述

兼容性

Safari >= 16.4 才支持

在这里插入图片描述
谢谢你看到这里😊

相关推荐

  1. Trie

    2023-12-16 14:08:02       32 阅读
  2. MySQL TRIM函数

    2023-12-16 14:08:02       41 阅读
  3. TIM定时器

    2023-12-16 14:08:02       41 阅读
  4. C++实现字符串修剪(Trim)函数功能

    2023-12-16 14:08:02       53 阅读
  5. A Hard Trip

    2023-12-16 14:08:02       51 阅读
  6. 实现 Trie (前缀树)

    2023-12-16 14:08:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 14:08:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 14:08:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 14:08:02       87 阅读
  4. Python语言-面向对象

    2023-12-16 14:08:02       96 阅读

热门阅读

  1. 贰[2],函数OpenWindow/CloseWindow

    2023-12-16 14:08:02       62 阅读
  2. vue3拖拽组件vuedraggable

    2023-12-16 14:08:02       67 阅读
  3. QT之QMessageBox的用法

    2023-12-16 14:08:02       44 阅读
  4. 大语言模型--引言

    2023-12-16 14:08:02       45 阅读
  5. Clion下编写QT界面方法详解

    2023-12-16 14:08:02       58 阅读
  6. Storm+Kafka+Redis+zookeeper docker集群实战问题与解决

    2023-12-16 14:08:02       40 阅读
  7. 使用boost::mpl模块实现push_back相关的测试程序

    2023-12-16 14:08:02       63 阅读
  8. vue 浙里办前端改造,引入jquery脚本文件并使用

    2023-12-16 14:08:02       61 阅读