2017-06-25 12 views
1

<div>には複数の子spanがあります。親divの幅は固定されていますが、子スパンの幅は動的である可能性があります。私が試したやり方では、テキストが溢れています:省略記号は子供にはうまくいかないようです。テキストオーバーフロー:親の幅が固定で、子の幅が動的な場合、省略記号は機能しません

<div class="parent"> 
    <span class="child1"> Content 1</span> 
    <span class="child2"> Content 2</span> 
    <span class="child3"> Content 3</span> 
</div> 


.parent { 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    overflow: hidden; 
    max-width: 200px; 
    display: inline-block; 
} 

span { 
    display: inline-block; 
} 

JsFiddle

答えて

-1

それは私の推測です。

.parent { 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
    overflow: hidden; 
 
    max-width: 200px; 
 
    display: inline-block; 
 
} 
 

 
span { 
 
    display: inline-block; 
 
}
<div class="parent"> 
 
    <span class="child1"> Content 1</span> 
 
    <span class="child2"> Content 2</span> 
 
    <span class="child3"> Content 3 Content 3 Content 3</span> 
 
</div>

+0

私は、テキストオーバーフローたい:省略記号。働く右は、オーバーフロー時に楕円を表示していないことを知っています。 –

0

子要素の幅が動的である場合、あなたは自分のスタイルを変更する必要があります。

span { 
    overflow: hidden; 
    text-overflow: ellipsis;  
} 

また、親の表示プロパティを変更する必要がありますフレックス:

.parent { 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    overflow: hidden; 
    max-width: 200px; 
    display: flex; 
} 
+0

しかし、スパンの幅は固定されておらず、動的です。私は親要素の最大幅しか知りません。 –

+0

私は理解しています。私は私の答えを編集しました。オーバーフローを追加する必要があります。 テキストオーバーフロー:省略記号。子要素のスタイルに変更し、親の表示プロパティをflexに変更します。私はあなたのフィドルでそれをテストし、それは働いた。 – Kaloyan

+0

次に、すべてのスパンに楕円を適用します。楕円がオーバーフローするスパンにのみ適用されるようにします。しかし、努力をいただきありがとうございます。 –

0

text-overflowinheritedプロパティではありません。つまり、割り当てられた値は親要素(.parent)にのみ適用され、その子(span)には適用されません。

問題を解決するには、そのプロパティを子供に移動するだけです。 (あなたのコンテキストに応じて)たとえば、あなたがそれをこのようにコーディングすることができます。

.parent { 
    border: 1px solid red; 
} 

span { 
    display: inline-block; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    width: 50px; 
    border: 1px solid blue; 
    overflow: hidden; 
} 
+0

しかし、スパンの幅は固定ではなく、そのダイナミックです。私は親要素の最大幅しか知りません。 –

+0

その場合は、そのプロパティを置くとどこでも動作しません。あなたの 'span'要素は固定長でなければなりません@MananShah –

+0

これは問題です!スパンは可変長で、親の幅は固定されています。このためのフレックスソリューションがあるかもしれません。 –

0

             
  
.parent { 
 
     max-width: 250px; 
 
    white-space: nowrap; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    } 
 

 
<div class="parent"> 
 
     <span class="child1"> Content 1</span> 
 
     <span class="child2"> Content 2</span> 
 
     <span class="child3"> Content 3 Content 3 Content 3</span> 
 
    </div>
+0

スパンはインラインブロックであり、インライン要素ではありません。インラインでブロックするとブロックされません。 –

+0

別々の行にスパンが必要ですか? – Venkatesh

+0

同じ行はありませんが、上下に余白があります。だから私はそれらをインラインにすることはできません、彼らはインラインブロックでなければなりません。 –

関連する問題