2012-04-13 13 views
65

Jeśli zmienię wartość: rows, to działa. Ale pozostaje na domyślnych wartościach bez względu na wartość ustawioną za pomocą ": cols =>". Szerokość kolumny nie ulegnie zmianie.Jak mogę zmienić cols textarea w twitter-bootstrap?

Widziałem źródło html i odzwierciedlało zmianę. Zastanawiam się, że kod CSS bootstrap może być podejrzany ...

HTML (w końcowym kodzie HTML występuje "cols =", ale szerokość kolumny pozostaje domyślna, czyli 30. Nie mogę uwierzyć własnym oczom !)

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

szyn:

<%= 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

nie sądzę rzeczywiście można ustawić cols. spróbuj ustawić szerokość zamiast: – RozzA

+2

Dzięki. Ratujesz mnie! Dodałem: style => "width: 380px;" i to działa. –

+6

Myślę, że możesz również użyć class = "field span3" lub span4 lub cokolwiek innego, w tekście div – hagope

Odpowiedz

80

innych odpowiedzi nie dla mnie. Ten zrobił:

<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> 

zanotować span12 w div z span6.

+1

Właśnie umieściłem 'span12' w textarea:' '. "Textarea" jest w 'html> body> formularzu # aspnetForm> div.conainer'. Btw, nie znalazłem klasy 'field' w bootstrap v2.1.1 – enguerran

+0

@Perry Horwich odpowiedź jest lepsza, ponieważ używa html wygenerowany przez prosty formularz/formatstic f.input: some_text,: input_html => {: rows => 5,: placeholder => "Wpisz tekst.",: Class => "span6"} –

+2

To działa, ale podejrzewam, że odpowiedź @ Yarx poniżej jest "bardziej" poprawna w większości sytuacji. – Jedidja

3

Działa to dla mnie twitter bootstrap 2 i simple_form 2.0.4
Wynik jest obszarem tekst span6 w rzędzie span9

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

Pracował także dla mnie. Dzięki. – ardochhigh

7

Nie wiem, czy jest to prawidłowy sposób jednak zrobiłem to:

<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> 

i umieścić to w moim pliku bootstrapcustom.css:

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

    } 
} 

W ten sposób zmienia rozmiar na podstawie widoku. Wydaje się, że wszystko ładnie układa się w dużą przeglądarkę i małe urządzenie mobilne.

54

UPDATE: Na Bootstrap 3.0, input-* niżej opisanych klas ustawiania szerokości elementów wejściowych zostały usunięte. Zamiast tego użyj klas col-*, aby ustawić szerokość elementów wejściowych. Examples are provided in the documentation.


W Bootstrap 2.3, należy użyć klas wejściowych do ustawienia szerokości.

<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>​ 

zrobić znajdowania dla "zaklejania Control" dla examples in the documentation.

Ale dla wzrostu myślę, że nadal używałbyś atrybutu rows.

+4

Należy pamiętać, że wersja VS 2013 ma określoną szerokość maksymalną, ustawioną na 280 pikseli w pliku site.css. To skutecznie wyłącza implementację coli * dla bootstraps. Aby zastąpić przesłonięcie dla pojedynczego elementu, użyj style = "max-width: none". Użycie stylu inline pozwoli col- * ustawić szerokość elementu tak, aby pasowała do kolumny. –

+2

To zabawne, że naprawdę trafiłem na to dzisiaj. Ograniczenie 280px jest tylko w polach wejściowych, choć wierzę. Właśnie usunąłem ograniczenie. Opieram się na bootstrapie, aby to zrobić, ponieważ ograniczając go do 280px, elementy wejściowe powodują przerwanie innych funkcji Bootstrapa, takich jak zgrupowane dane wejściowe. –

+0

Greg, jesteś taki uratowany! Od rana waliłem w to od rana (całkiem nowe w CSS)! Wielkie dzięki! – Hajjat

17

Wystarczy dodać klasę bootstrap "row-fluid" do obszaru tekstowego. Rozciągnie się do 100% szerokości;

Aktualizacja: Do bootstrap 3.x użyj klasy "col-xs-12" dla textarea;

Aktualizacja II: Również jeśli chcesz rozszerzyć pojemnik do pełnej szerokości użyj: klasa płynu-pojemnika.

+1

To jest najlepsza odpowiedź IMO. Używanie tego w modalnym oknie (haml simple_form): '= f.input: body, label: 'Message', as:: text, input_html: {class: 'row-fluid', rows: '10'}' – oma

14

Na stronie znalazłem następujące elementy.css generowany przez VS2013

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

Aby zmienić to zachowanie w konkretnym elementem, należy dodać następujące ...

style="max-width: none;" 

Na przykład:

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

i przeszukałem całą sieć i ta odpowiedź powinna zostać wznowiona więcej – gavin

+2

Jeśli korzystasz z VS 2013 ... TO JEST ODPOWIEDŹ ... proszę zagłosuj na to, aby przyszli czytelnicy nie zgubili się w starej odpowiedzi. Ponadto, jeśli chcesz zastąpić to zachowanie w określonym elemencie, dodaj następujące elementy. style = "max-width: none;" –

+0

Pracował dla mnie jak urok w VS 2015 –

0

Inną opcją jest podzielona off textarea w Site.css w następujący sposób:

/* 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; 
} 

także (w moim MVC 5) dodać ref do tekstowego:

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

on pracował dla mnie