Logical properties for floating and positioning - CSS: Cascading Style Sheets 编辑

The Logical Properties and Values specification contains logical mappings for the physical values of float and clear, and also for the positioning properties used with positioned layout. This guide takes a look at how to use these.

Mapped properties and values

The table below details the properties and values discussed in this guide along with their physical mappings. They assume a horizontal writing-mode, with a left-to-right direction.

Logical property or valuePhysical property or value
float: inline-startfloat: left
float: inline-endfloat: right
clear: inline-startclear: left
clear: inline-endclear: right
inset-inline-startleft
inset-inline-endright
inset-block-starttop
inset-block-endbottom
text-align: starttext-align: left
text-align: endtext-align: right

In addition to these mapped properties there are some additional shorthand properties made possible by being able to address block and inline dimensions. These have no mapping to physical properties, aside from the inset property.

Logical propertyPurpose
inset-inlineSets both of the above inset values for the inline dimension simultaneously.
inset-blockSets both of the above inset values for the block dimension simultaneously.
insetSets all four inset values simultaneously with physical mapping of multi-value.

Float and clear example

The physical values used with the float and clear properties are left, right and both. The Logical Properties specification defines the values inline-start and inline-end as mappings for left and right.

In the example below I have two boxes — the first has the box floated with float: left, the second with float: inline-start. If you change the writing-mode to vertical-rl or the direction to rtl you will see that the left-floated box always sticks to the left, whereas the inline-start-floated item follows the direction and writing-mode.

Example: Inset properties for positioned layout

Positioning generally allows us to position an element in a manner relative to its containing block — we essentially inset the item relative to where it would fall based on normal flow. To do this we have historically used the physical properties top, right, bottom and left.

These properties take a length or a percentage as a value, and relate to the user's screen dimensions.

New properties have been created in the Logical Properties specification for when you want the positioning to relate to the flow of text in your writing mode. These are as follows: inset-block-start, inset-block-end, inset-inline-start and inset-inline-end.

In the below example I have used the inset-block-start and inset-inline-end properties to position the blue box using absolute positioning inside the area with the grey dotted border, which has position: relative. Change the writing-mode property to vertical-rl, or add direction: rtl, and see how the flow relative box stays with the text direction.

New two- and four-value shorthands

As with other properties in the specification we have some new shorthand properties, which give the ability to set two or four values at once.

  • inset — sets all four sides together with physical mapping.
  • inset-inline — sets both logical inline insets.
  • inset-block — sets both logical block insets.

Note: The browsers that have implemented the Logical Properties specification have so far implemented the direct mappings and not the new shorthands. Look to the browser compatibility data section on each property page reference for more details.

Example: Logical values for text-align

The text-align property has logical values that relate to text direction — rather than using left and right we can use start and end. In the below example I have set text-align: right in the first block and text-align: end in the second.

If you change the value of direction to rtl you will see that the alignment stays to the right for the first block, but goes to the logical end on the left in the second.

This works in a more consistent way when using box alignment that uses start and end rather than physical directions for alignment.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:65 次

字数:9359

最后编辑:6年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文