2016-12-02 4 views
0

以下のスニペットでは、スパンに最大幅%10を割り当てて、最も外側のコンテナdivの100%実際のボディ幅の%。最も外側のコンテナに対する幅を割り当てることができません

しかし、コンテナの幅はコンテンツによって決まるので、制限のないテキストを含むスパンの幅の10%のようです。

希望の出力を得るにはどうすればよいですか?

jsfiddleリンク:スパンの幅についてhttps://jsfiddle.net/68ha60p6/

html,body{ 
 
    width:100%; 
 
    height:100%; 
 
    padding:0; 
 
    margin:0; 
 
    }
<div style="float:right; height:100%;padding-right:1%"> 
 
<button style="display:inline-block; height:70%;background-color:green; color:white;border:none; padding:0;"> 
 
<span style="display:inline-block; max-width:10%; text-overflow:ellipses;overflow:hidden; max-height:100%;text-align:center;white-space:no-wrap;">John John</span> 
 
</button> 
 
</div> 
 
</div>

+0

内容によって決まりません。パーセンテージ次元は、すぐに含まれる親のサイズに基づいて計算されます。この場合、直前にスパンの親を含むボタンがボタンなので、そのスパンはその10%に設定されています。 – Ryan

+0

@Ryanボタンの幅はどのように決まっていますか? –

+0

ほとんどのブラウザには、何も指定されていない空白のボタンがレンダリングされるフォールバックのデフォルトのスタイルがありますが、ブラウザによって異なる場合があります。その内容が必要な場合は、ボタンも伸びます。この場合、スタイリングはありません。そのコンテンツはボタン幅の10%に設定されているため、ブラウザのデフォルト設定になっています。スパンがボタンのあるdivの幅の10%になるように探している場合は、ボタンの外側になるようにスパンを移動してみてください。 – Ryan

答えて

0

、代わりmax-width:10%;

1vwmax-width:10vw;を使用するには、ビューポート(ブラウザウィンドウ)幅の1%に等しいです。

+0

私はそれを試しましたが、本体に最小幅、最大幅の制限があるため、ボディが常にビューポートの%100ではないので、ビューポートに対するパーセンテージを期待通りに機能させることはできません。私はピクセルを使用することができますが、私は、応答性の高いデザインを支持するためにピクセルを使わない方法を探しています。 –

+0

本当にボタンの内側にスパンが必要ですか、またはボタン自体にすべてのスタイルを入れ、その親の10%を作ることができますか? – andi

関連する問題