2012-04-16 7 views
-1

私はテキストフィールドとボタンだけがあるフォームを持っています。彼らは同じ行にあり、最初にtexttfieldが来て、次に右のボタンが来ます。つまり、ボタンはキャプションに基づいて展開され、テキストフィールドは残りの部分を埋める必要があります。 、ボタンは右のそれは私が欲しいものである右側、上に配置されているページに=によるフロートに最初の項目ですが、マークアップこれでフォーム項目poittinging問題

<html> 
    <head> 
     <style> 
     #search_form { 
     width:500px; 
     } 
     #search_button_container { 
     float: right; 
     } 

     #search_field_container { 
     overflow: hidden; 
     } 

     #search_field { 
     width:92%; 
     } 

     </style> 
    </head> 
    <body> 
     <form id="search_form"> 
     <div> 
     <div id="search_button_container"> 
     <input type="submit" value="Search" id="search_submit" /> 
     </div> 

     <div id="search_field_container"> 
     <input id="search_field" name="search_field" type="search" />          
     </div>         
     </div>               
     </form> 
    </body> 
</html> 

:これを実現するために、私はこのようなものを使用しましたしかし、これはtabindexの順序を乱します。 Tabキーを押すと、最初にボタンがフォーカスされ、次にテキストフィールドが表示されますが、テキストフィールドを最初にする必要があります。

注:この検索フォームの上および上に他の要素があり、tabindexが上から下に移動する必要があるため、tabindex = 1をtextfieldおよびtabindex = 2に追加できません。

tabindexの並べ替えや並べ替えの方法に要素を配置する別の方法はありますか?私の場合、最良の解決策は、望ましい結果を得るために別のスタイルを使うことですが、どうやってそれをどうやって解決するのか分かりません。

答えて

0

テキストフィールドの後ろにボタンを置き、テキストフィールドを左に浮かします。

+0

恐らく私は自分自身をはっきりと説明していないでしょう。フォームの右側の枠の近くにあるボタンを右側に置き、テキストフィールドは残りのスペースを左側に埋める必要があります。私が掲示したコードをコピーして、ボタンのキャプションに長いテキストを置くことができます(値の属性を変更してください)。 – Hayk

+0

私は、あなたが望むものではないにもかかわらず、固定幅のボタンを作成したいと思います。申し訳ありませんが、私はここに答えがありません。私が言うことは、 'overflow:hidden; 'でテキスト入力の部分を隠すことは悪い考えだと思います。また、' tabindex'を使わずに正しいタブ順序を作る唯一の方法は、最初に入力を文書に置きます。 –

+0

どうもありがとうございました。 – Hayk

1

CSSテーブルは、HTMLテーブルと同じアルゴリズムを使用しますが、意味的には関係ありません。それはちょうど同じようにレンダリングされた。

次に、100%の幅を持ち、お互いの長さに適応するそれぞれのセルの内容を持つ2つのセルを持つことができます。送信ボタンが長くなると、検索入力が短くなります。

ここでそれを実証フィドルです:http://jsfiddle.net/4JvRV/1/
は、それがChromeで動作しない場合は、私に教えてください。
互換性:IE7-ためIE8 +
フォールバック:IE7とIE6は、テキスト入力、完全に受け入れ私見を誤る...短い焼け焦げが表示されます。または、100%の幅を持ち、それを2行に表示することもできます。

+0

ありがとうございますが、私はIE7以上をサポートしなければなりません。 – Hayk

+0

私はすでに完全に受け入れられているIE7のフォールバックを示しました。誰もがフォーム入力を使用するのを妨げることはありません。しかし、IE7で完璧なピクセルレンダリングが必要な場合は、セマンティクスに別れを言い、 'td'が' p'でタグ付けされたHTMLテーブルを使用してください。 )そして、この冒涜のために私を落としてくれる人には、IE7で動作するソリューションを@Haykによって追加されたすべての制約で提供してください; – FelipeAls

+0

私はIE7をサポートすることが高価だと私の雇用主に説得します。その理由は。 –

関連する問題