【CSS】段落文字實現兩端對齊,不滿一行則不需要

mirror_Mx發表於2020-11-25

需求

混合使用漢字和英文的段落預設如下:

var str="你好,我的名字是mirror,nice to meet you!你今天很漂亮,很美麗哦~ 你最近在幹什麼呀?忙不忙?"

在這裡插入圖片描述
純中文的情況:

var str="你好,我的名字是米拉,很高興見到你!你今天很漂亮,很美麗哦~ 你最近在幹什麼呀?忙不忙?"

在這裡插入圖片描述
可以看出在中英混合的情況下,右側出現文字沒有對齊的情況。

實現思路

一般的兩端對齊是使用text-align:justify,但是text-align:justify一般情況下只針對英文管用。(因為css是老外設計的,老外在justify判斷的時候,是根據單詞直接的空格來的,中文兩個漢字之間沒有空格,所以大部分情況下text-align:justify不管用,所以這個屬性大部分形同虛設!)。

解決辦法

jQuery

$(DOM).css({"text-align":"justify","letter-spacing":"-0.15em"});
$(DOM).html()=$("DOM").html().replace(""," ")

-0.15em這個值可以指定,根據你當前的實際情況來設定。

JavaScript

var box=document.getElementById("haorooms");
box.style.textAlign = "justify";
box.style.letterSpacing = '-.15em';
box.innerHTML = box.innerHTML.split("").join(" ");

相關文章