2012-03-29 17 views
11

オーバーフローしたときに省略記号を付ける必要がある内部コンテンツを持つdivがあります。私は他の要素についてこれを何回もやったことがありますが、何らかの理由でこれが期待どおりに動作していません。CSSテキストオーバーフローの省略記号が表示されない

また、white-space:nowrap;は、コンテンツがスパン内の次の行に折れないため、私は省略記号が始まる前に2-3ワードしか表示されないため、意図的に出力されませんでした。テキストを親コンテナの高さ全体に広げ、その境界を越えて存在するコンテンツの省略記号を開始したいと思います。ここで

は、作業のデモです:http://jsfiddle.net/sadmicrowave/DhkSA/

CSS:

.flow-element{ 
    position:absolute; 
    font-size:12px; 
    text-align:center; 
    width:75px; 
    height:75px; 
    line-height:70px; 
    border:1px solid #ccc; 
} 

.flow-element .inner{ 
    position:absolute; 
    width:80%; 
    height:80%; 
    border:1px solid blue; 
    top:0px; 
    bottom:0px; 
    left:0px; 
    right:0px; 
    margin:auto; 
    text-align:center; 
} 

.flow-element .long{ 
    float:left; 
    height:50px; 
    width:100%; 
    line-height:12px; 
    border:1px solid red; 
    text-overflow:ellipsis; 
    overflow:hidden; 
} 

HTML:

<a class='flow-element' style='top:100px; left:50px;'> 
    <div class='inner'> 
    <span class='long'>Box 1 and some other content that should wrap and do some other stuff</span> 
    </div> 
</a> 

誰かが助けてください。私は事前

答えて

28

あなたは要素(スパン)をインライン化するtext-overflow: ellipsisを適用することはできません、それが唯一のブロック要素で使用することができます(DIV)

ともtext-overflow: ellipsis;

チェックこれを使用しているとき、私はあなたを変換したwhite-space:nowrap;を使用あなたはスパンを使用している理由を私は知らないが、あなたのロジックに従って、あなたがチャンを作ることができるだけの概念

http://jsfiddle.net/3CgcH/5/

の証明のために、DIVするインナースパン私が示唆したように、ES

更新:誰かが質問に私はその後、text-overflow: ellipsis:は私が間違っているかもしれので、働いている要素にまたがることwhite-space: nowrap;を置けばと思いますが、それは質問者ので、そうではありません

spanタグにfloat: leftを使用しました。これは、spanタグがボックスブロックに変換され、通常のブロックレベルの要素と同様に動作することを意味します。ブロック要素の動作が必要な場合はブロックレベル要素を使用するため、間違ったことです。

参考:

http://www.w3.org/TR/CSS2/visuren.html#propdef-float

http://dev.w3.org/csswg/css3-ui/#text-overflow

+0

これは絶対に間違っています。インライン要素でとてもうまく動作します。 –

+0

なぜこのw3cドラフトは、ブロックのみに適用されると言いますか? http://dev.w3.org/csswg/css3-ui/#text-overflow –

+0

またこの回答を確認http://stackoverflow.com/a/9924984/1237812 –

0

おかげで、あなたの.innerのDIVにwhite-space:nowrap;を追加...テキストコンテンツは、コンテナをオーバーフローしたときに省略記号を持ちながら赤概説スパン内で可能な限り多くのテキストを表示する必要があります。

+0

あなたの提案を追加すると、実際にテキストに省略符が追加されますが、テキストは内側の要素の幅に折り返されません。できるだけ多くのテキストを表示する必要があります。ただ2〜3の言葉だけではありません。 – sadmicrowave

+0

ええと、私はそれに気付いて、1行以上を包むソリューションに取り組んでいました.... – huzzah

+0

@sadmicrowaveあなたはテキストオーバーフローの仕組みを理解していません。もっと見たいです?次に、幅を拡大する必要があります。 –

0

この追加:.flow-要素をし、その後オーバーフローellispsis作品

を.LONG

white-space:nowrap; 

を。

+0

同じソリューションのHeather Walters氏の記事へのコメントをご覧ください。 – sadmicrowave

0

私はあなたがtext-align:center;を持っていることが原因で問題が発生すると思います。

関連する問題