今天需要切一個響應式網頁,有一行文字,需要實現兩端對齊。
程式碼如下:
.h_text{
text-align: justify;
width: 200px;
}
<h1 class="h_text">這一行要兩端對齊</h1>
根據經驗找到text-align:justify;首先用PC端瀏覽器測試,重新整理網頁沒起作用。
在網上搜尋,發現“只有一行文字或者最後一行文字,是沒效果的,預設靠左對齊”。
解決辦法有以下幾個:
1、使用“text-align-last:justify;”意思是告訴電腦,“這是最後一行程式碼,也給我兩端對齊了”
.h_text{
text-align-last: justify;
width: 200px;
}
<h1 class="h_text">這一行要兩端對齊</h1>
但text-align-last並不是所有瀏覽器都相容。
2、在文字後邊加一行,然後給隱藏了
.h_text{
text-align: justify;
width: 200px;
}
.span_hid{
display: inline-block;
width: 100%;
opacity: 0;
}
<h1 class="h_text">
這一行要兩端對齊
<span class="span_hid">隱藏的一段程式碼</span>
</h1>
隱藏後文字還是會佔位置,影響佈局效果不好,而且這麼low的行為,不符合一個工程師的身份。
3、在文字後邊加一個空標籤
.h_text{
text-align: justify;
width: 200px;
}
.span_hid{
display: inline-block;
width: 100%;
}
<h1 class="h_text">
這一行要兩端對齊
<span class="p_hid"></span>
</h1>
嗯,這樣就好多了,但是對IE瀏覽器還是有些問題。
4、這時需要新增“text-justify:inter-ideograph;”大意就是,增加或減少詞間的空格
.h_text{
text-align: justify;
text-justify: inter-ideograph;
width: 200px;
}
.span_hid{
display: inline-block;
width: 100%;
}
<h1 class="h_text">
這一行要兩端對齊
<span class="span_hid"></span>
</h1>
完美解決了對IE瀏覽器的相容。
如果只相容PC端瀏覽器,就已經解決了。
But,還要相容手機瀏覽器。
QQ、微信軟體內開啟網頁,沒問題。下載安裝的瀏覽器:QQ、UC等也沒有問題。iPhone手機自帶瀏覽器也沒有問題。
但是用安卓手機再帶的瀏覽器,問題就出現了。完美的向左靠齊,怎麼搞就是沒效果。
於是又重新走了一遍1-4的流程。結果並沒什麼用。
經過查詢找到一個問題。text-align-last,safari 不支援的解決辦法
文章中提到:IE瀏覽器中需要文字間新增空格。那麼安卓瀏覽器會不會也這樣。
5、於是給每個文字之間新增了一個空格,成功解決了各瀏覽器不相容、手機端不相容的問題。
.h_text{
text-align: justify;
text-justify: inter-ideograph;
width: 200px;
}
.span_hid{
display: inline-block;
width: 100%;
}
<h1 class="h_text">
這 一 行 要 兩 端 對 齊
<span class="span_hid"></span>
</h1>
當然文字少是沒啥問題,但是文字比較多的話,需要一些JS程式碼給文字之間加空格。
var text= "這一行要兩端對齊";
var result = text.split("").join(" ");
至於新增after偽類,更加簡潔一些。沒有應用。
專案例項:中國銀河證券APP,以供參考。