内のアイテムを含むようにボックスモデルを使用して、私は次の基準が守られていることを確認しようとしている:次のHTMLとCSS3のルールを使用して、親のdiv
私は除いて作業基準のすべてを持っています子供が親の幅を超えている項目1については、 です。質問:子供を親の中に閉じ込めるには?
- ラップしてはならないと常にフル に表示されなければならないのliアイテムは400ピクセル
- IMG、ラベル、および通貨のコンテンツすなわち親幅がそのスパン内で垂直
- 通貨を中心にする必要があります超えることはできません。
- 通貨は常に ラベルスパンのできるだけ近くに表示する必要があります。
- ラベルのテキストは2行でクランプし、省略記号は2行を超えるところに表示します。
注:ChromeとSafariウェブキットベースのブラウザでのみ動作する必要があります。
しかし、それは現時点では次のようになります:
それは次のようになります
任意のアイデア?
********************* JS Fiddle example ************************
<ul>
<li>
<span class="img"></span>
<span class="label">Acclaim</span>
<span class="currency">(USD 50)</span>
</li>
<li>
<span class="img"></span>
<span class="label">Acclaim 1 11 111 1111 11111</span>
<span class="currency">(USD 50)</span>
</li>
<li>
<span class="img"></span>
<span class="label">Acclaim 1 11 111 1111 11111 2 22222 2222 22222 3 33 333 3333 33333 4 44 444 4444 44444 5 55 555 5555 55555 6 66 666 6666 66666</span>
<span class="currency">(USD 50)</span>
</li>
</ul>
ul {
width: 400px;
background-color: yellow;
padding: 0;
margin: 0;
}
li {
display: -webkit-box;
padding-right: 50px;
}
.label {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
-webkit-line-clamp: 2;
text-overflow: ellipsis;
overflow: hidden;
white-space: normal;
word-wrap: break-word;
line-height: 1.3em;
margin-right: 0.2em;
background-color: pink;
}
.currency {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
white-space: nowrap;
background-color: lightgreen;
}
.img {
display: block;
width: 40px;
height: 40px;
margin-right: 0.1em;
background-image:url('data:image/png;base64,iVBOR...);
}
私はフレックスモデルで作業している別の方法がありますが、これはChrome上のみです。 Safariではまだ動作しませんか? http://jsfiddle.net/tUqvG/ - フレックスとボックスモデルを少し組み合わせたものですが、フレキシブルモデルでは省略記号とラインクランプを使うことができません。 –
Flexboxはボックスモデルを置き換えていません。それはレイアウトのもう一つの選択肢です。 –
Safariのボックスモデルやフレックスモデルでラインクランプを使用すると、テキストオーバーフローが発生しません。省略記号は複数行のテキストを対象としたものではなく、Chrome上の幸運な解決策です。 :) http://quirksmode.org/css/user-interface/textoverflow.htmlを参照してください。 –