javascript - 使用日语 tategaki 时对齐 block 元素 (p, div) 的最后一行(书写模式 : tb-rl)

标签 javascript html css text-alignment text-align

我需要能够证明 p 元素的最后一行。我尝试了以下问题中的解决方案

Justify the last line of a div?

但不幸的是,这在 <DIV> 时不起作用。 writing-mode样式是 tb-rl (从上到下/从右到左)文本是日语。有没有人有类似的需求并找到了解决方案?这是我当前使用的 HTML 示例。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">`
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">`
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style>p {text-align:justify;margin:0px; padding-right:7px}</style>
  </head>
      <body style='margin:6px'>
        <DIV style='height: 444px; width: 320px; writing-mode: tb-rl; direction: ltr; -ms-writing-mode: vertical-rl; -moz-writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; font-family:"Hiragino Mincho ProN"; font-size:16px'>
      <p style='margin-right: 0px; margin-left: 0px;'> </p><p> わたしたちは今日、ミチコの手を<ruby>離<rt>はな</rt></ruby>し、ミチコとは二度と会わないと決めたのだけれど、ひょっとして見捨てられてしまうのはわたしたちのほうなんじゃないだろうか。今日ここで起きたことはすべて、ミチコと別れることでさえ、ひょっとしてミチコにとってはとっくに計算済みの出来事だったんじゃないだろうか。</p>
      <p> そのときふと気づいた。ミチコの<ruby>眼<rt>まな</rt></ruby><ruby>差<rt>ざ</rt></ruby>しが意味するものに。あれは<ruby>哀<rt>あわ</rt></ruby>れみ。ミチコはここにいるわたしたちを哀れんでいる。今日ここにいること、ここで起きたこと、いまこの瞬間この世の中で起きているあらゆることを哀れみ、そして</p>
    </DIV>
  </body>
</html>

最佳答案

您需要使用我发布的用于对齐水平文本的方法的细微变化。

不要将 :after 伪元素的宽度设置为 100%,而是将高度设置为 100%。

CSS:

p {
    margin: 0;
    margin-left: -1.8em; /* remove space added by p:after (adjust) */
}

/* justify last line of text */
p:after {
    content: "";
    display: inline-block;
    height: 100%;
}

/* set writing direction on container */
div.page {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    text-align: justify;
    text-justify: inter-ideograph; /* supported by IE */
}

HTML:

<div class="page">
    <p>あれは<ruby>哀<rt>あわ</rt></ruby>れみ。ミチコはここにいるわたしたちを哀れんでいる。</p>
</div>

:after 伪元素由于其行高而在段落之后添加了额外的空间(您不能仅从中删除行高,因为它被视为 p 标签中的另一段文本)。为了弥补这一点,您需要在段落中添加一个负的左边距。

关于javascript - 使用日语 tategaki 时对齐 block 元素 (p, div) 的最后一行(书写模式 : tb-rl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11190709/

相关文章:

javascript - 将现有的 HTML 和 CSS 文件链接到 Meteor 元素

html - 背景图像位置(从底部和右侧)

javascript - 浏览器在哪里存储用 let 或 const 定义的全局变量?

javascript - 想要使用 javascript 显示和隐藏下拉菜单

html - 响应式菜单 - 减少调整大小的边距

javascript - 在没有任何html标签的html中隐藏文本

javascript - 使用 css-classes 中的样式将富文本复制到剪贴板

html - 类不应该优先于 * 选择器

javascript - EasySlider1.7 - 如何让第二个 slider 上的箭头起作用?

javascript - 为什么 Promise 会写成 "then(..).catch(..)"?