サイズの異なる箱がたくさんあります。サイズは不明です。言葉と同じCSS仕様を使いたいtext-align:justify
です。例えば:
CSSまたはCSS3で解決策が欲しいのですが。不可能な場合は、JSを使用できます。
サイズの異なる箱がたくさんあります。サイズは不明です。言葉と同じCSS仕様を使いたいtext-align:justify
です。例えば:
CSSまたはCSS3で解決策が欲しいのですが。不可能な場合は、JSを使用できます。
考えられる CSS ソリューション
ボックスが に設定されている場合は、テキストの場合と同じようにdisplay:inline-block
適用できます。ただし、テキストの最終行には影響しないtext-align:justify
ことに注意してください。text-align:justify
したがって、正当化する必要がある行が 1 行だけの場合は、何も起こりません。
HTML を変更できる場合の 1 つの回避策は、幅 100% の末尾要素を追加して、正当化するコンテンツが最終行にならないようにすることです。ソース HTML を変更できない場合は、JavaScript を使用して末尾の要素を追加できます。
これを示すjsfiddleを次に示します。IE6/7/8/9、Firefox、Chrome、Safari でテスト済み。(注:
IE6/7 で動作させるには、ボックス間に a を追加する必要がありました)。
以下に少し例を示します。
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
#container {
width: 500px;
margin: 0 auto;
font-size: 0; /* Fixed space caused by line breaks */
}
#container .inner {
display: inline-block;
background: red;
width: 25%;
border: 10px rgba(255,255,255,1) solid;
padding: 5px;
text-align: center;
font-size: 16px;
}
</style>
</head>
<body>
<div id="container">
<div class="inner">Lorem</div>
<div class="inner">Ipsum</div>
<div class="inner">Dolor</div>
<div class="inner">Sit</div>
</div>
</body>
</html>
これは軽度の不正行為と見なされます。要素間の余白として白い境界線を使用しています。親の背景が単色の場合にのみうまく機能します。
box-sizing: border-box
すべての要素で、width: 25%
内部にパディングとボーダーが含まれていることを確認します。font-size: 0
親と子でを使用するとfont-size: 16px
、インライン ブロック要素間の改行によって生じる空白がなくなります。