2012-03-19 6 views
29

私のWebページには、入力フィールドがあり、私は次のCSSを適用しているに:html入力フィールドでtext-overflow省略記号を使用するにはどうすればよいですか?

.ellip { 
    white-space: nowrap; 
    width: 200px; 
    overflow: hidden; 
    -o-text-overflow: ellipsis; 
    -ms-text-overflow: ellipsis; 
    text-overflow: ellipsis; 
} 

しかし、これは何の影響も与えていないようです。 ここで明白なことがありませんか、CSSを使用して入力フィールドに省略記号を付けることはできませんか?

+2

だけチェックし、 'テキストのオーバーフロー:(少なくともChromeで)' input'要素に素晴らしい作品ellipsis' – talsraviv

+1

受け入れ答えは、実際にこの質問に答えるようには見えません。 – jennEDVT

答えて

-9

フィールドは、独自のルールを持つ要素です。入力フィールドは、テキストがフィールドより長くなると、テキストが見えなくなるように実装されます。

フォームのフィールドを使用すると、テキストオーバーフローの省略記号を使用すると、切り捨てられた内容のみが送信されますが、これは望ましくない効果です。私のテストクロム、SafariやFirefoxの今、それをサポートするから

+13

** a)** firefox 16は、入力フィールドにフォーカスがないときに省略記号(間違った位置)を表示します。** b)**理由は完全に間違っています。表示されるものはdomのwhats ** c)フォーカスが合っていないときに省略記号を付けることは、おそらくユーザビリティpovから最良です – bernstein

+0

テキストボックスがフォーカスされていないと、Chromeは省略記号をレンダリングします。あなたが「事実の欠如」の答えを変えたいのであれば、私はあなたに与えたdownvoteを削除したいと思います! –

4

。彼らはわずかに異なる効果を持っていますが

。ブラーのFirefoxで

はテキストの右側に...追加しますが、テキストボックスの右側で隠された任意のテキストがある場合にのみ。

は、ぼかしのに対しChromeは、テキストの先頭にジャンプしているようだと関係なく、あなたがテキストのスクロール位置を左ところの、最後に...を追加します。

+0

Firefoxは 'text-overflow:ellipsis ellipsis;'のように2つの値を定義するときに、入力フィールドの両側にテキストオーバーフロー文字をレンダリングすることができます。クロムには問題があるようです。 – Thasmo

+0

これは、幅が入力の親の幅にほぼ等しい場合には機能しなくなります。 – trysis

13

私は、これは古い質問ですけど、私は同じ問題を抱えて、私のために働いthis blog post from Front End Tricks And Magicに出くわしたので、私は、私は人々はまだ興味がある場合には共有したいと考え出しました。ブログの要点は、入力がreadonly属性を持っている場合に限り、IEの入力で省略記号を使用できることです。

明らかに、多くのシナリオでは、入力に読み取り専用属性を持たせたくありません。その場合は、JavaScriptを使用してそれを切り替えることができます。このコードはブログから直接取り上げられているので、この回答が参考になった場合は、ブログをチェックし、著者に感謝の言葉を残すことを検討することをお勧めします。

HTML:

<div class="long-value-input-container"> 
    <input type="text" 
    value="sdghkjsdghhjdfgjhdjghjdfhghjhgkdfgjnfkdgnjkndfgjknk" class="long- 
    value-input" readonly /> 
</div> 

CSS:(jQueryのを使用して)

.long-value-input { 
    width: 200px; 
    height: 30px; 
    padding: 0 10px; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    overflow: hidden; 
} 

のJavaScript自体は私のためのトリックをした入力にtext-overflow:ellipsisを設定

// making the input editable 
$('.long-value-input').on('click', function() { 
    $(this).prop('readonly', ''); 
    $(this).focus(); 
}) 

// making the input readonly 
$('.long-value-input').on('blur', function() { 
    $(this).prop('readonly', 'readonly'); 
}); 
+0

読書で私の一日を保存しました!あなたに+1してください! – Lucas

+0

。コントロールをタブで移動しているときに.click()が機能しません。また、.focus()に小道具の取り外しを移動すると、それ自体の問題が発生します(readonlyプロパティはまだ削除されていないフォーカスを得た) –

7

。入力がピントの合っていないときは、省略記号を切り捨てて配置します。

+0

これは正しい答えです。 – trenthogan

関連する問題