CSS genişlik / yükseklik veya HTML sütun / satır özniteliklerine sahip bir metin alanını boyutlandırmalı mıyım?


307

Her zaman yeni bir form geliştirdiğimde textarea, boyutlarını belirtmem gerektiğinde aşağıdaki ikilem var:

CSS kullanın veya textarea's özelliklerini colsve rows?

Her yöntemin artıları ve eksileri nelerdir?

Bu özellikleri kullanmanın anlambilimi nedir?

Genellikle nasıl yapılır?

Yanıtlar:


268

Her ikisini de kullanmanızı öneririm. İstemci CSS'yi desteklemiyorsa satırlar ve sütunlar gereklidir ve kullanışlıdır. Ama bir tasarımcı olarak tam olarak istediğim boyuta ulaşmaları için üzerine yazıyorum.

Bunu yapmanın önerilen yolu harici bir stil sayfasıdır.

textarea {
  width: 300px;
  height: 150px;
}
<textarea> </textarea>


4
Bu sorun değil, ancak boyutunu ayarladığınız keyfi alanın boşa gideceğini ve gerçekten sadece gösteri için olduğunu fark etmelisiniz.
Patlama Hapları

4
@tandu: "Harcanacak ve gerçekten sadece gösteri için" ne demek?
BoltClock

2
satırlar / sütunlar kullanıcının karakter boyutuna bağlıdır. Dolayısıyla, metin alanındaki bir karakterin piksellerine bölünemeyen css tanımlı bir genişlik / yüksekliğiniz varsa, dikey ve yatay olarak bu kadar beyaz boşluk bırakılacaktır. Muhtemelen hiç kimse farketmeyecek, ama sadece söylüyorum.
Patlama Hapları

21
Ölçüm olarak piksel yerine "em" kullanabilirsiniz. 1em, herhangi bir yazı tipi ve boyutunda "M" nin genişliğidir. Ancak sütunlar, yalnızca çoğu tasarımda olmayan tek boşluklu fontlarla kullanıldığında geçerlidir. Yükseklikte mükemmel bir bağlantı elde etmek için line-height, metin alanınızın yüksekliği için bir kat kullanın .
kogakure

5
@LeoGalleguillos “ İstemci CSS'yi desteklemiyorsa gerekli ve yararlıdır ”. Hiç kimse doğrulama hakkında bir şey söylemedi.
Janus Bahs Jacquet

96

textarea { height: auto; }
<textarea rows="10"></textarea>

Bu, tarayıcıyı TAMAMEN metin alanının yüksekliğini satır sayısına ve çevresindeki dolgulara ayarlayacak şekilde tetikler. CSS yüksekliğinin tam piksel sayısına ayarlanması keyfi boşluklar bırakır.


4
Ne yazık ki, "
Metin alanının yüksekliği

2
'13'ten beri her şeyin değişip değişmediğinden veya özel durumumda çok açık olmayan bir şey olup olmadığından emin değilim, ancak height: auto;CSS'de ayar yapmak benim metinlerimi etkilemiyor gibi görünüyor.
clozach

10

W3c'ye göre, hem kömürler hem de sıralar, textareas için gerekli özelliklerdir. Satırlar ve Sütunlar, piksellerden veya potansiyel olarak keyfi başka bir değerden ziyade, metin alanına sığacak karakterlerin sayısıdır. Satırlarla / sütunlarla git.


8
w3c okulları, bunu satırlar ve sütunlar özniteliği aracılığıyla ayarlayabileceğinizi, ancak yükseklik ve genişlik ayarının daha iyi olduğunu belirtir. W3c.org'da textarea için gerekli bir özellik olduğu satır ve sütunlardan bahsedilmiyor. w3schools.com/tags/tag_textarea.asp w3.org/wiki/HTML/Elements/textarea
Michael Stramel

17
@MichaelStramel cevabım dört yaşında :) - bu arada w3c okulları değil . Onlar bağlı değiller. HTML5'in artık gerekli özellikler kavramına sahip olduğundan emin değilim, ancak bu konuda yanlış olabilirim. Yine de neden genişlik / yükseklik ayarının satırlardan / sütunlardan daha iyi olacağını anlamıyorum
Explosion Pills

3
Ben yorum sonra ama yine de bu yazı okuyan herkes için alakalı olduğunu hissettim fark ettim. Ayrıca, duyarlı tasarımlarla, satırlar ve sütunlar JavaScript aracılığıyla ayarlanmadığı sürece sorunlara neden olabilir. Bu IMO, CSS aracılığıyla ayarlamayı çok daha iyi bir yol haline getiriyor.
Michael Stramel

6

Cevap Evet". Yani, ikisini de kullanmalısınız. Satırlar ve sütunlar olmadan (ve bunları açıkça kullanmasanız bile varsayılan değerler vardır), CSS bir kullanıcı stil sayfası tarafından devre dışı bırakılırsa veya geçersiz kılınırsa, metin alanı kullanılamaz derecede küçüktür. Erişilebilirlikle ilgili endişeleri her zaman aklınızda bulundurun. Bu varlık sizin stil textarea görünümünü denetlemek izin verilmesi halinde, genellikle de genel sayfa tasarımına çok daha iyi görünen bir şey, uyan ile rüzgar olacak, dedi ve (o kullanıcı girişi yetişmek için boyutlandırabilirsiniz iyi tat sınırları içinde tabii ki).


6

Metin alanı için boyutu düzeltmek için css altında kullanabiliriz

    <textarea  class="form-control" style=" min-width:500px; max-width:100%;min-height:50px;height:100%;width:100%;" ></textarea>

Açısal ve açısal olarak test edildi7


1
Bunun Angular ile ne ilgisi var? Ve bu, 2010'daki mevcut cevaplara kıyasla nasıl ekliyor /
Lazar Ljubenović

5
 <textarea style="width:300px; height:150px;" ></textarea>

19
@ user470962 Reklam hominem'i. Sözdizimi hatasını '<textarea style = "width: 300px; height: 150px;">' olarak düzeltirseniz, kod iyidir. Birisine hakaret etmeye gerek yoktur. Gördüğünüz gibi en popüler cevap onun aksine değil. +1
TAAPSogeking

1
@TAAPS Adil olmak gerekirse, bu 4 yıl sonra aynı cevaptır. -1
Rambatino

4

Bir metin alanının boyutu, sütunlar ve satırlar nitelikleriyle veya daha iyisi ile belirtilebilir; CSS'in yükseklik ve genişlik özellikleri aracılığıyla. Cols özelliği tüm büyük tarayıcılarda desteklenir. Temel farklardan biri <TEXTAREA ...>bir kapsayıcı etiketidir: bir başlangıç ​​etiketi () vardır.


2

Genellikle belirtmeyen heightfakat belirtebilirim width: ...ve rowsve cols.

Genellikle, benim durumlarımda, sadece widthve rowsihtiyaç vardır, tekdüzenin diğer elemlerle ilişkili olarak güzel görünmesi için. ( colsBirisi diğer cevaplarda açıklandığı gibi CSS kullanmıyorsa bir yedek.)

((Her ikisini de belirtmek rowsve heightveri çoğaltmak gibi hissediyorum biraz sanırım?))


2

Textareas'ın en önemli özelliği, genişletilebilir olmalarıdır. Bir web sayfasında, metin uzunluğu ayarladığınız alanı aşarsa (satırlar kullanıyor veya CSS kullanıyor olsun), metin alanında kaydırma çubuklarının görünmesine neden olabilir. PDF'ye 'yazdırma' - koşullu CSS kuralıyla basılı metinler için konforlu bir şekilde minimum bir yükseklik ayarlayın:

@media print { 
textarea {
min-height: 900px;  
}
}

2

her seferinde kullanmadığınız satır yüksekliği kullanın: '..'; özelliği, textarea yüksekliğini ve textarea genişliği için width özelliğini kontrol eder.

veya css öğesini takip ederek yazı tipi boyutunu kullanabilirsiniz:

#sbr {
  font-size: 16px;
  line-height:1.4;
  width:100%;
}

2

HTML satırları ve sütunları yanıt vermiyor!

Bu yüzden boyutu CSS olarak tanımlarım. İpucu olarak: cep telefonları için küçük bir boyut tanımlarsanız,textarea:focus {};

Buraya, yalnızca bir kullanıcının gerçekten bir şey yazmak istediği anda ortaya çıkacak fazladan alan ekleyin


-11

CSS


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


HTML


<textarea rows="4" cols="50">HELLO</textarea>

css ile çok kolay bir şekilde yapabilirsiniz
ASHU

Sen css hem şekilde yapabilir ya da <= textarea satırlar "4" cols = "50"> böyle manuel olarak MERHABA </ textarea> besleyebilir
Ashu

Bu özellikleri neden tüm öğelere uygularsınız?
blackmambo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.