【问题标题】:How does CSS writing mode interact with page flowCSS书写模式如何与页面流交互
【发布时间】:2020-12-26 00:42:42
【问题描述】:

CSS Writing Modes Level 3 规范建立了诸如“块尺寸”之类的逻辑术语,对于水平书写模式(就像我现在写的那样),它是垂直的。因此,西方文字中的“块大小”将对应于物理尺寸“高度”。我理解那部分很好。

规范还将“块流向”定义为“块级盒子堆叠的方向和行盒子在块容器内堆叠的方向”,并表示writing-mode属性决定了块流方向。因此,如果日语使用vertical-rl 书写模式,则块流向将是水平的(从右到左)。在其他地方讨论抽象维度时,规范将“块轴”定义为相当于西方右模式中的垂直轴(在我正在写作的这个页面上,块垂直流动),以及垂直写作模式中的水平轴。

这就是我不清楚书写模式逻辑轴和整个页面流之间的区别(如果有的话)的地方。 (CSS盒模型的)整体页面流布局是否等同于由书写方式决定的块流?

这里有一个例子来说明我的怀疑。如果有使用vertical-rl书写模式垂直书写的日文页面,则“块轴”为横轴。那么这是否意味着页面水平流动?用户是否会向左滚动以查看页面的其余部分,而不是向下滚动?考虑一个典型的着陆页,在屏幕顶部有一个“英雄”,然后是它下面的各个部分,底部有一个页脚。在vertical-rl写作模式下,用户是否会向左滚动以查看英雄下方的部分?

我想问题归结为:整体页面流向是否真的等同于块流向,或者最终页面总是流动并向下滚动而不考虑写作模式?

由于有些人不理解我所说的“整体页面流”,请看CSS 2.1 § 9.4.1 Normal flow > Block formatting contexts

在块格式化上下文中,框从包含块的顶部开始,一个接一个地垂直排列。

所以问题可以重述:如果有一个页面使用vertical-rlwriting-mode 编写,如上所示导致水平“块流向”,这是否真的导致“正常流向” CSS 2.1 § 9.4 更改为“一个接一个地横向布局”而不是“一个接一个地纵向布局”?页面是否水平滚动而不是垂直滚动?

【问题讨论】:

  • 页面将双向流动(无论书写模式如何,都会自然向下)。我认为 MDN 上的示例恰好表明 developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flow_Layout/…
  • 这可能取决于您所说的“整体页面流”。你能指出这个概念的官方定义吗?但是 CSS 2.2 定义了块和内联流的工作方式。溢出有义务遵守这一点。必须应用滚动以允许访问位于两个轴的正坐标处的溢出内容。
  • “整体页面流程”我指的是 CSS 2.1 § 9.4 的“正常流程”,用于块格式化上下文;查看我更新的问题。
  • 当然这是可以简单测试的。将vertical-rl 的书写模式设置为根元素,并提供超过一页的文本。如果这样做,您将看到页面将水平增长,并且当它溢出视口时,您将获得一个水平滚动条。我错过了什么?

标签: css internationalization page-flow


【解决方案1】:

作为 Web 开发人员,您需要确定整体页面流程。如果您希望用户向上滚动并浏览页面内容,请将初始视图设置为最后一个(底部)元素。

如果您要询问以从右到左或从上到下语言编写的网站的约定,似乎在日本网站中尤其是从上到下流动,尽管写作模式不同。

这里以Honda Japan's website 为例。

【讨论】:

  • 谢谢,很高兴知道设计网站的惯例。我不是在问“公约”。我非常具体地询问CSS 规范 对使用某个CSS writing-mode 时浏览器必须执行的操作有何规定。您提到的网站是使用vertical-rl 还是vertical-lr 写作模式?如果不是,那么它只是与典型的西方网站相同的块流,但带有日文字符,并且对所提出的问题没有提供任何见解。
  • CSS writing-mode 只影响给定标签的 HTML 元素中块的排列方式。也许给出一些您正在努力使用它的代码示例将有助于使您的问题更容易回答?
猜你喜欢
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
相关资源
最近更新 更多