逻辑属性

CSS 播客 - 012:逻辑属性

一种非常常见的界面模式是带有辅助内联图标的文本标签。

该图标位于文本左侧,两者之间有一小段间距, 由 margin-right 提供。 不过,有个问题 因为只有文本方向为从左到右时,这种方法才有效。 如果文本方向改为从右到左(这是阿拉伯语等语言的阅读方向),则该图标将位于文本旁边。

您在 CSS 中如何考虑这一点? 逻辑属性可帮助您解决这些问题。其优势包括免费提供自动的国际化支持。 它们可帮助您构建弹性更佳、更具包容性的前端。

术语

顶部、右侧、底部和左侧的物理属性指的是视口的物理尺寸。 您可以将其视为地图上的罗盘。 另一方面,逻辑属性 是指方框的边缘,因为它们与内容的流动有关。 因此,如果文本方向或书写模式发生变化,它们也可能会发生变化。 这是相对于定向样式的巨大转变 它为我们设置界面样式提供了更大的灵活性。

屏蔽数据流

块流是指内容块的放置方向。 例如,如果有两个段落,则第二个段落将进入“屏蔽”流程。 在英语文档中,屏蔽流程是从上到下显示。 不妨将其看作自上而下、连续的文本段落。

三个块、div 元素、一个向下箭头,标记为“块流”

内嵌流程

内嵌流是指文本在句子中的流动方式。 在英语文档中,内嵌流程从左到右。 如果您要将网页的文档语言更改为阿拉伯语 (<html lang="ar">), 那么内联流程就应该是从右到左

三个文字“她卖贝壳”,一个从左向右的箭头,标记为“inline flow”

文本按照文档的书写模式确定的方向流动。 您可以使用 writing-mode 属性更改文本的布局方向。 此操作可以应用于整个文档,也可以应用于单个元素。

相对流量

过去在 CSS 中 我们只能应用相对于边线方向的边距等属性。 例如,margin-top 应用于元素的实际顶部。 具有逻辑属性后,margin-top 会变为 margin-block-start。 这意味着,无论语言和文本方向如何, 屏蔽流程都有适当的外边距规则。