Skip to content

Commit 36b03fe

Browse files
committed
[css-ruby] Define in more details how columns are sized
1 parent 0617e37 commit 36b03fe

1 file changed

Lines changed: 40 additions & 12 deletions

File tree

css-ruby-1/Overview.bs

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -720,22 +720,50 @@ Ruby Layout</h2>
720720
This makes layout more robust,
721721
but is inconsistent with how inlines behave along the inline-axis.
722722

723-
A [=ruby container=] (or fragment thereof)
724-
measures as wide as the content of its widest level.
725-
Similarly, [=ruby base boxes=] and [=ruby annotation boxes=]
726-
within a [=ruby column=] have the measure of the widest content in that [=column=].
723+
When 'ruby-merge' is ''ruby-merge/separate'',
724+
each [=ruby column=] is sized
725+
to the widest content ([=ruby base=] or [=ruby annotation=]) in that [=column=].
727726
In the case of [=spanning annotations=]
728-
(whether actually spanning or pretending to span per 'ruby-merge'),
729-
the measures of the [=ruby annotation box=] and
730-
the sum of its associated [=ruby base boxes=] must match.
731-
732-
How the extra space is distributed
727+
(whether actually spanning or pretending to span per ''ruby-merge: merge''),
728+
if the content of a [=spanning annotation=] would be wider
729+
than the [=columns=] that it spans,
730+
then the difference is distributed equally among the spanned [=columns=].
731+
If a [=ruby segment=] contains multiple [=spanning annotations=],
732+
this distribution of additional space
733+
is performed starting with the [=spanning annotations=]
734+
that span the least number of bases,
735+
and then in increasing number of bases spanned.
736+
Each [=ruby base=] and [=ruby annotation=]
737+
is then sized to exactly span its column(s).
738+
739+
Note: If there are multiple annotations spanning the same number of bases
740+
that overlap but do not coincide,
741+
the distribution of space is undefined.
742+
Note this is not possible with HTML markup,
743+
but can happen in markup languages with explicit spanning such as in [[RUBY]].
744+
745+
If any [=ruby annotation=] in an [=annotation container=] with ''ruby-merge: auto''
746+
is wider than its [=ruby base|base=],
747+
then [=ruby annotations=] in that [=annotation container=]
748+
may extend outside of their [=column=](s).
749+
When they do, their influence on
750+
the measure of the [=columns=] they intersect
751+
is up to the User Agent,
752+
provided that the [=ruby segment=] is made wide enough to fit all its content.
753+
754+
[=Inter-character=] annotations are interleaved between columns:
755+
they factor into measurement of annotations that span both adjacent columns,
756+
but are not included in either column
757+
and are never affected by the sizing or positioning
758+
of [=interlinear annotations=].
759+
760+
A [=ruby container=] measures as wide as the sum of its [=columns=].
761+
762+
Within these boxes,
763+
how the extra space is distributed
733764
when ruby content is narrower than the measure of its box
734765
is specified by the 'ruby-align' property.
735766

736-
Issue: Should the ruby bases and annotations size to the column,
737-
or size to the content?
738-
739767
As in other CSS layout models,
740768
relative positioning, transforms, and other graphical effects
741769
apply after this layout of the boxes.

0 commit comments

Comments
 (0)