2012-04-13 22 views
65

行の値を変更すると動作します。しかし、私は ':cols =>'で設定した値に関係なく、デフォルトのcolsにとどまります。列の幅は変更されません。twitter-bootstrapでtextareaのcolsを変更するにはどうしたらいいですか?

私はhtmlソースを見て、それを反映しました。ブートストラップのCSSが容疑者かもしれないのだろう...

HTML(最後のHTMLには「cols =」がありますが、列の幅はデフォルト値の30にとどまります。私は私の目を信じることができません!)

<textarea cols="100" id="comment_body" name="comment[body]" rows="5"></textarea> 

のRails:

<%= form_for([@post, @post.comments.build]) do |f| %> 
    <div class="field"> 
    <i class="icon-user"></i> 
    <%= f.text_field :commenter %> 
    </div> 
    <div class="field"> 
    <i class="icon-comment"></i> 
    <%= f.text_area :body, :rows => 5, :cols => 100 %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    <div> 
<% end %> 
+2

私はあなたが実際のcolsを設定することができるとは思いません。代わりに幅を設定してみてください – RozzA

+2

ありがとうございます。あなたは私を助けてくれる!私は追加:スタイル=> "幅:380px;"それは動作します。 –

+6

私はあなたもclass = "field span3"やspan4などを使用することができると思います。テキストdiv – hagope

答えて

80

他の回答が私のために動作しませんでした。これはやった:

<div class="span6"> 
     <h2>Document</h2> 
     </p> 
     <textarea class="field span12" id="textarea" rows="6" placeholder="Enter a short synopsis"></textarea> 
     <button class="btn">Upload</button> 
    </div> 

span6とdivの中span12に注意してください。

+1

私は 'span12'をテキストエリアに置いています:' '。 'textarea'は' html> body> form#aspnetForm> div.conainer'にあります。 Btw、ブートストラップv2.1.1でクラス 'フィールド'が見つかりませんでした。 – enguerran

+0

@Perry Horwichの答えは、単純なフォーム/ formatsticで生成されたhtmlを使用していた方が良いです f.input:some_text、:input_html => { => 5、:placeholder => "テキストを入力してください"、:class => "span6"} –

+2

これはうまくいきますが、@ Yarxの回答は大部分の状況では「もっと」正しいと思われます。 – Jedidja

3

これは2とsimple_form 2.0.4
結果は、これはしかし、私は正しい方法であれば、私は知らないspan9行のspan6テキストエリア

<div class="row" > 
    <div class="span9"> 
    <%= f.input :some_text, :input_html => {:rows => 5, :placeholder => "Enter some text.", :class => "span6"}%> 
    </div> 
</div> 
+0

私のためにも働いた。ありがとう。 – ardochhigh

7

あるTwitterのブートストラップで私の作品この:

<div class="control-group"> 
    <label class="control-label" for="id1">Label:</label> 
    <div class="controls"> 
    <textarea id="id1" class="textareawidth" rows="10" name="anyname">value</textarea> 
    </div> 
</div> 

と私のbootstrapcustom.cssファイルでこれを置く:

@media (min-width: 768px) { 
    .textareawidth { 
     width:500px; 
    } 
} 
@media (max-width: 767px) { 
    .textareawidth { 

    } 
} 

このようにして、ビューポートに基づいてサイズが変更されます。大きなブラウザと小さなモバイルデバイスにすべてを整然と並べると思われます。

54

UPDATE:ブートストラップ3.0以降、入力要素の幅を設定するために以下に説明するクラスが削除されました。代わりに、col-*クラスを使用して、入力要素の幅を設定します。 Examples are provided in the documentation


ブートストラップ2.3では、幅を設定するために入力クラスを使用します。

<textarea class="input-mini"></textarea> 
<textarea class="input-small"></textarea> 
<textarea class="input-medium"></textarea> 
<textarea class="input-large"></textarea> 
<textarea class="input-xlarge"></textarea> 
<textarea class="input-xxlarge"></textarea>​ 
<textarea class="input-block-level"></textarea>​ 

examples in the documentationの「コントロールサイジング」を検索してください。

しかし、高さについては、あなたはまだ行属性を使用すると思います。

+4

VS 2013では、site.cssに特定の最大幅が280pxに設定されています。これは効果的にブートストラップの実装を無効にします。個々の要素のオーバーライドをオーバーライドするには、style = "max-width:none"を使用します。インラインスタイルを使用すると、col- *は列のサイズに合わせて要素の幅を設定できます。 –

+2

これは今日私が実際に出会った面白いです。私は信じていますが、280pxの制約は入力フィールドにのみあります。私はただ制約を完全に削除しました。私はむしろこれを行うためにブートストラップに頼ります。入力要素のために280pxに制限するだけで、グループ化された入力のようなブートストラップの他の機能が損なわれます。 –

+0

グレッグ、あなたは人生の節約になります!朝からこれで私の頭を叩いたことがあります(かなり新しいCSSです)!どうもありがとう! – Hajjat

17

テキスト領域にブートストラップの "row-fluid"クラスを追加するだけです。それは100%幅に伸びます。

アップデート: ブートストラップ3.xでは、textareaに "col-xs-12"クラスを使用します。

更新II: コンテナを全幅に拡張する場合は、container-fluidクラスも使用します。

+1

これはIMOに最適な回答です。これをモーダルボックス(haml simple_form)で使う: 'f.input:body、label: 'Message'、:: text、input_html:{class: 'row-fluid'、rows: '10'}' – oma

14

私はこのサイトで次のことを発見しました。たとえば、以下を追加し、特定の要素にこの動作を無効にするにはVS2013

/* Set width on the form input elements since they're 100% wide by default */ 
input, 
select, 
textarea { 
    max-width: 280px; 
} 

によって生成されたCSS ...

style="max-width: none;" 

<div class="col-md-6"> 
     <textarea style="max-width: none;" 
       class="form-control" 
       placeholder="a col-md-6 multiline input box" /> 
</div> 
+1

ウェブ全体を検索しました。この回答はupvotedになるはずです – gavin

+2

VS 2013を使用している場合は...これは答えです...これを投票してください。これにより、将来の読者は古い答えによって迷子にならないようにしてください。また、特定の要素でこの動作をオーバーライドする場合は、以下を追加します。 style = "max-width:none;" –

+0

VS 2015の魅力のように私のために働いた –

0

別のオプションがオフに分割することです以下のようにSite.css内のテキストエリア:

/* Set width on the form input elements since they're 100% wide by default */ 

input, 
select { 

    max-width: 280px; 
} 

textarea { 

    /*max-width: 280px;*/ 
    max-width: 500px; 
    width: 280px; 
    height: 200px; 
} 
また、10

(私のMVC 5)テキストエリアに参照を追加します。それは私のために働い

@Html.TextAreaFor(model => ................... @class = "form-control", @id="textarea"............ 

関連する問題