Czy powinienem rozmiar obszaru tekstowego z CSS szerokość / wysokość lub HTML cols / rows atrybutów?

Za każdym razem, gdy rozwijam nową formę zawierającą textarea, mam następujący dylemat, kiedy muszę określić jej wymiary:

Użyć CSS czy użyć atrybutów textarea cols i rows?

Jakie są plusy i minusy każdej metody?

Jaka jest semantyka używania tych atrybutów?

Jak to się zwykle robi?
Author: alex, 2010-10-09

10 answers

Polecam używać obu. Rows i cols są wymagane i użyteczne, jeśli klient nie obsługuje CSS. Ale jako projektant nadpisuję je, aby uzyskać dokładnie taki rozmiar, jaki chcę.

Zalecanym sposobem jest użycie zewnętrznego arkusza stylów, np.

textarea {
  width: 300px;
  height: 150px;
}
<textarea> </textarea>
 219
Author: kogakure,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-06 10:24:07

W zbiorze HTML

<textarea rows="10"></textarea>

W Zestawie CSS

textarea { height: auto; }

Spowoduje to, że przeglądarka ustawi Wysokość pola tekstowego dokładnie tak, jak liczba wierszy i paddingów wokół niego. Ustawienie wysokości CSS na dokładną ilość pikseli pozostawia dowolne spacje.

 74
Author: Jan Werkhoven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-14 06:33:11

Zgodnie z w3c, cols i rows są wymaganymi atrybutami dla textareas. Rows and Cols to liczba znaków, które będą pasowały do obszaru tekstowego, a nie pikseli lub innej potencjalnie arbitralnej wartości. Idź z rows / cols.

 9
Author: Explosion Pills,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-13 13:51:22

Odpowiedź brzmi "tak". Oznacza to, że powinieneś użyć obu. Bez wierszy i cols (i istnieją wartości domyślne, nawet jeśli nie używasz ich jawnie) pole tekstowe jest niezwykle małe, jeśli CSS jest wyłączony lub przesłonięty przez arkusz stylów użytkownika. Zawsze miej na uwadze kwestie dostępności. Mając to na uwadze, jeśli Twój arkusz stylów może kontrolować wygląd textarea, na ogół skończysz z czymś, co wygląda o wiele lepiej, dobrze pasuje do ogólnego projektu strony, i to może zmienić rozmiar, aby nadążyć za wkładem użytkownika (w granicach dobrego smaku, oczywiście).

 5
Author: Stan Rogers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-09 08:27:02

Rozmiar obszaru tekstowego może być określony przez atrybuty cols i rows, lub nawet lepiej; poprzez właściwości height I width CSS. Atrybut cols jest obsługiwany we wszystkich głównych przeglądarkach. Jedną z głównych różnic jest to, że <TEXTAREA ...> jest znacznikiem kontenera: posiada znacznik start ().

 3
Author: AsifQadri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-20 11:02:11
 <textarea style="width:300px; height:150px;" ></textarea>
 2
Author: user470962,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-04 20:27:33

Zwykle nie określam height, ale określam width: ... i rows i cols.

Zazwyczaj, w moich przypadkach, tylko width i rows są potrzebne, aby textarea wyglądała ładnie w stosunku do innych elem. (I cols jest alternatywą, jeśli ktoś nie używa CSS, jak wyjaśniono w innych odpowiedziach.)

((określanie zarówno rows jak i height wydaje mi się trochę jak powielanie danych?))

 0
Author: KajMagnus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-06 14:29:05

Główną cechą textareas jest to, że są one rozszerzalne. Na stronie internetowej może to spowodować, że paski przewijania pojawią się w obszarze tekstowym, jeśli długość tekstu wypełni ustawioną przestrzeń (czy to w wierszach, czy w CSS. Może to być problem, gdy użytkownik zdecyduje się na drukowanie, szczególnie z "drukowanie" do PDF - więc ustaw wygodnie dużą min-Wysokość dla drukowanych tekstów z warunkową regułą CSS:

@media print { 
textarea {
min-height: 900px;  
}
}
 0
Author: Geoff Kendall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-16 10:10:32

Jeśli nie używasz za każdym razem użyj line-height:'..'; właściwość its kontroluje wysokość textarea i właściwość width dla szerokości textarea.

Lub możesz użyć rozmiaru czcionki za pomocą następującego css:

#sbr {
  font-size: 16px;
  line-height:1.4;
  width:100%;
}
 0
Author: Nurealam Sabbir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-24 18:49:29

CSS


input
{
    width: 300px;
    height: 40px;
} 


HTML


<textarea rows="4" cols="50">HELLO</textarea>
 -10
Author: ASHU,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-17 13:39:05