Safari'de metin alanı yeniden boyutlandırma tutamacını gizleme


97

Uygulamamda textarea bileşenleri kullanıyorum ve yüksekliklerini dinamik olarak kontrol ediyorum. Kullanıcı yazdıkça, yeterli metin olduğunda yükseklik artar. Bu, IE, Firefox ve Safari'de iyi çalışıyor.

Bununla birlikte, Safari'de, sağ altta kullanıcının tıklayıp sürükleyerek metin alanını yeniden boyutlandırmasına olanak tanıyan bir "tutamaç" aracı vardır. Bu sorunu stackoverflow Soru Sor sayfasındaki metin alanında da fark ettim. Bu araç kafa karıştırıcı ve temelde size engel oluyor.

Peki, bu yeniden boyutlandırma tutamacını gizlemenin bir yolu var mı?

("Kulp" kelimesinin doğru kelime olduğundan emin değilim, ancak daha iyi bir terim düşünemiyorum.)

Yanıtlar:


178

Yeniden boyutlandırma davranışını CSS ile geçersiz kılabilirsiniz:

textarea
{
   resize: none;
}

ya da sadece basitçe

<textarea style="resize: none;">TEXT TEXT TEXT</textarea>

Geçerli özellikler şunlardır: her ikisi de, yatay, dikey, yok


22
Burada kesinlikle alakalı değildir, ancak Safari ayrıca yeniden boyutlandırmayı etkin bırakmak için min-height, max-height, min-width ve max-width CSS özelliklerine saygı duyar, ancak ne kadar yeniden boyutlandırabileceğine sınırlar koyar.
stevemegson

1
Teşekkür ederim! Aynı soruyu sormak üzereydim :)
alex

Yeniden boyutlandırmayı ayarladıktan sonra fareyle üzerine gelindiğinde göstermek istersem: yok mu?
Michael Forrest

@Michael Forrest: textarea: hover {resize: inherit! }? Hiç denemedim, sadece bir tahmin.
Tamas Czinege

7
Bir uyarı: Kullanıcının yeniden boyutlandırmasına izin vermemek <textarea>bir kullanılabilirlik sorunu olabilir. Ayar resize:vertical;genellikle daha iyi bir seçenektir. Düzeninizi bozmamalı ve kullanıcıya daha fazla kontrol hissi veriyor.
Web_Designer

2

Bu davranışı tüm TextAreaöğeler için devre dışı bırakmak için aşağıdaki CSS kuralını kullanın :

textarea {
    resize: none;
}

Bazı (ancak tümü değil) TextAreaöğeler için devre dışı bırakmak istiyorsanız, birkaç seçeneğiniz vardır ( bu sayfa sayesinde ).

Bir özgü devre dışı bırakmak için TextAreabirlikte nameiçin öznitelik kümesi foo(yani <TextArea name="foo"></TextArea>):

textarea[name=foo] {
    resize: none;
}

Veya bir kimlik kullanarak (yani <TextArea id="foo"></TextArea>):

#foo {
    resize: none;
}

Bunun yalnızca, yeniden boyutlandırma tutamacını TextAreadenetimlere ekleyen WebKit tabanlı tarayıcılar (yani, Safari ve Chrome) için geçerli olduğunu unutmayın .


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.