在Safari和Chrome中居中对齐文本的最后一行(“ text-align-last”不起作用)

Gar*_*nde 5 css safari google-chrome

嗨,我正在尝试设置Web段落的格式,以便使文本对齐并最后一行居中。我发现CSS属性“ text-align-last”允许我为最后一行指定对齐方式。

问题是Chrome和Safari不支持此属性(但...?)。

Anyone have an alternative or a trick to do that?

The W3C manual: http://www.w3schools.com/cssref/css3_pr_text-align-last.asp

Thanks

Ric*_*ock 3

我认为仅靠 CSS 是不可能的。

这是一个 JavaScript 解决方案,其中克隆位于元素后面。该元素具有text-align: justify且克隆具有text-align: center

然后,代码会降低原始元素的高度,以便仅显示克隆的最后一行。

var p= document.getElementById('lorem'),
    clone= document.createElement('p');

clone.textContent= p.textContent;
clone.className= 'clone';
p.parentNode.insertBefore(clone, p);
p.style.height= p.offsetHeight - 14 + 'px';
Run Code Online (Sandbox Code Playgroud)
#lorem, .clone {
  position: absolute;
  line-height: 14px;
  font: 14px arial;
  width: 500px;
}

#lorem {
  text-align: justify;
  overflow: hidden;
  background: white;
}

.clone {
  text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
<p id="lorem">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
Run Code Online (Sandbox Code Playgroud)

  • 为了让那些无法理解“14”含义的人澄清一下,它是元素的行高。因此,您实际上可以通过简单地获取该元素的 line-height 属性并将其分配给该元素来实现动态化! (2认同)