Вимкніть розмір текстури


117

Я намагаюся вимкнути розмір текстури на своєму сайті; зараз я використовую цей метод:

.textarea {
    clear:left;
    min-width: 267px;
    max-width: 267px;
    min-height:150px;
    max-height:150px;
}

Я знаю, що мій метод невірний, і я шукаю кращого в JavaScript. Я початківець, тож найкращим рішенням для мене буде HTML5 або jQuery.

Відповіді:


253

Спробуйте цей CSS для відключення зміни розміру

CSS для відключення зміни розміру для всіх текстових областей виглядає приблизно так:

textarea {
    resize: none;
}

Ви можете замість цього просто призначити його одній текстовій області за назвою (де текстовий HTML):

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

Або за ідентифікатором (де текстовий код HTML):

#foo {
    resize: none;
}

Взято з: http://www.electrictoolbox.com/disable-textarea-resizing-safari-chrome/


7
Замість того, щоб просто посилатися на рішення, вам слід трохи пояснити його тут. Дуже багато інших людей, які розглядають це питання в майбутньому, не будуть турбуватися натискати посилання для відповіді. Додайте сюди трохи деталей, і я поставлю +1 вашій відповіді.
Джон Егеланд


8

CSS3 може вирішити цю проблему. На жаль, він підтримується лише у 60% використовуваних браузерів .

Для IE та iOS ви не можете вимкнути розмір, але ви можете обмежити textareaрозмір, встановивши його widthта height.

/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */

Див. Демо


2

Зробити це можна просто за допомогою атрибута перетягування html

<textarea name="mytextarea" draggable="false"></textarea>

Значення за замовчуванням вірно.


2
Питання полягає в зміні розміру текстової області, а не перетягуванні. Отже, як і очікувалося, встановлення цього атрибуту на текстовій області не сприймає хитрості в Chrome (принаймні).
peveuve

2

Лише один додатковий варіант, якщо ви хочете змінити поведінку за замовчуванням для всіх текстових областей у програмі, ви можете додати наступне до свого CSS:

textarea:not([resize="true"]) {
  resize: none !important;
}

І виконайте наступне, щоб увімкнути місце зміни розміру:

<textarea resize="true"></textarea>

Майте на увазі, що це рішення може працювати не у всіх браузерах, які ви хочете підтримати. Ви можете переглянути список підтримки resizeтут: http://caniuse.com/#feat=css-resize


1

Відповідно до питання, я вказав відповіді у JavaScript

Вибравши TagName

document.getElementsByTagName('textarea')[0].style.resize = "none";

Вибравши ідентифікатор

document.getElementById('textArea').style.resize = "none";

0
//CSS:
.textarea {
    resize: none;
    min-width: //-> Integer number of pixels
    min-height: //-> Integer number of pixels
    max-width: //-> min-width
    max-height: //-> min-height
}

наведений вище код працює в більшості браузерів

//HTML:
<textarea id='textarea' draggable='false'></textarea>

зробіть це для того, щоб він працював над максимальною кількістю браузерів


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.