Я хочу отключить свойство изменения размера textarea
.
В настоящее время я могу изменить размер textarea
, щелкнув в правом нижнем углу textarea
и перетащив мышь. Как я могу это отключить?
Я хочу отключить свойство изменения размера textarea
.
В настоящее время я могу изменить размер textarea
, щелкнув в правом нижнем углу textarea
и перетащив мышь. Как я могу это отключить?
Следующее правило CSS отключает изменение размера для элементов textarea
:
textarea {
resize: none;
}
Чтобы отключить его для некоторых (но не для всех) textarea
s, есть несколько параметров .
Вы можете использовать атрибут class
в своем теге (<textarea class="textarea1">
):
.textarea1 {
resize: none;
}
Чтобы отключить конкретный textarea
с атрибутом name
, установленным на foo
(т. Е. <textarea name="foo"></textarea>
):
textarea[name=foo] {
resize: none;
}
Или, используя атрибут id
(т. Е. <textarea id="foo"></textarea>
):
#foo {
resize: none;
}
На странице W3C перечислены возможные значения ограничений изменения размера: нет, оба, по горизонтали, вертикальный и наследовать:
textarea {
resize: vertical; /* user can resize vertically, but width is fixed */
}
Просмотрите достойную страницу совместимости, чтобы узнать, какие браузеры в настоящее время поддерживают эту функцию. Как прокомментировал Джон Халка, размеры можно дополнительно ограничить в CSS с помощью max-width, max-height, минимальная ширина и минимальная высота.
Очень важно знать:
Это свойство ничего не делает, если свойство переполнения не является видимым, что является значением по умолчанию для большинства элементов. Обычно, чтобы использовать это, вам нужно установить что-то вроде overflow: scroll;
Цитата Сары Коуп, http://css-tricks.com/almanac/properties/r/resize/
В CSS ...
textarea {
resize: none;
}
Я обнаружил две вещи:
Первый
textarea{resize: none}
Это CSS 3, который еще не выпущен, совместимый с Firefox 4 (и более поздние версии), Chrome и Safari.
Еще одна функция форматирования - overflow: auto
, чтобы избавиться от правой полосы прокрутки с учетом атрибут dir.
Базовый HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<textarea style="overflow:auto;resize:none" rows="13" cols="20"></textarea>
</body>
</html>
Некоторые браузеры
В CSS 3 есть новое свойство для элементов пользовательского интерфейса, которое позволит вам это сделать. Это свойство является свойством изменения размера. Таким образом, вы должны добавить в свою таблицу стилей следующее, чтобы отключить изменение размера всех элементов textarea:
textarea { resize: none; }
Это свойство CSS 3; используйте диаграмму совместимости, чтобы увидеть совместимость браузера.
Лично меня очень раздражает отключение изменения размера элементов textarea. Это одна из тех ситуаций, когда дизайнер пытается «сломать» клиента пользователя. Если ваш дизайн не может вместить текстовое поле большего размера, вы можете пересмотреть, как работает ваш дизайн. Любой пользователь может добавить textarea { resize: both !important; }
в свою таблицу стилей, чтобы изменить ваши предпочтения.
texarea
и в итоге что-то не работает.
- person Redwolf Programs; 15.04.2019
Если вам нужна глубокая поддержка, вы можете использовать старый метод:
textarea {
max-width: /* desired fixed width */ px;
min-width: /* desired fixed width */ px;
min-height: /* desired fixed height */ px;
max-height: /* desired fixed height */ px;
}
resize:none
с этим решением, чтобы ручка не появлялась в нижнем углу, что, к сожалению, не работает.
- person MacroMan; 17.07.2015
Это легко сделать в HTML:
<textarea name="textinput" draggable="false"></textarea>
У меня это работает. Значение по умолчанию true
для атрибута draggable
.
Вы просто используете: resize: none;
в своем CSS.
Свойство resize указывает, может ли пользователь изменять размер элемента.
Примечание. Свойство resize применяется к элементам, для которых вычисленное значение переполнения отличается от "visible".
Кроме того, изменение размера в настоящее время не поддерживается в Internet Explorer.
Вот различные свойства для изменения размера:
Без изменения размера:
textarea {
resize: none;
}
Измените размер в обоих направлениях (по вертикали и горизонтали).
textarea {
resize: both;
}
Изменить размер по вертикали:
textarea {
resize: vertical;
}
Изменить размер по горизонтали.
textarea {
resize: horizontal;
}
Также, если у вас есть width
и height
в вашем CSS или HTML, это предотвратит изменение размера вашего текстового поля с более широкой поддержкой браузеров.
Чтобы отключить свойство изменения размера, используйте следующее свойство CSS:
resize: none;
Вы можете применить это как свойство встроенного стиля, например:
<textarea style="resize: none;"></textarea>
или между тегами <style>...</style>
элементов, например:
textarea {
resize: none;
}
Вы можете просто отключить свойство textarea следующим образом:
textarea {
resize: none;
}
Чтобы отключить вертикальное или горизонтальное изменение размера, используйте
resize: vertical;
or
resize: horizontal;
CSS 3 может решить эту проблему. К сожалению, в настоящее время он поддерживается только в 60% используемых браузеров.
Для Internet Explorer и iOS нельзя отключить изменение размера, но можно ограничить размер textarea
, установив его width
и height
.
/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */
Я создал небольшую демонстрацию, чтобы показать, как работают свойства изменения размера. Надеюсь, это поможет вам и другим.
.resizeable {
resize: both;
}
.noResizeable {
resize: none;
}
.resizeable_V {
resize: vertical;
}
.resizeable_H {
resize: horizontal;
}
<textarea class="resizeable" rows="5" cols="20" name="resizeable" title="This is Resizable.">
This is Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
<textarea class="noResizeable" rows="5" title="This will not Resizable. " cols="20" name="resizeable">
This will not Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
<textarea class="resizeable_V" title="This is Vertically Resizable." rows="5" cols="20" name="resizeable">
This is Vertically Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
<textarea class="resizeable_H" title="This is Horizontally Resizable." rows="5" cols="20" name="resizeable">
This is Horizontally Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
С помощью @style
вы можете задать ему нестандартный размер и отключить функцию изменения размера (resize: none;)
.
@Html.TextAreaFor(model => model.YourProperty, new { @style = "width: 90%; height: 180px; resize: none;" })
Чтобы отключить изменение размера для всех textarea
s:
textarea {
resize: none;
}
Чтобы отключить изменение размера для определенного textarea
, добавьте атрибут name
или id
и установите для него что-нибудь. В данном случае он называется noresize
.
<textarea name='noresize' id='noresize'> </textarea>
/* Using the attribute name */
textarea[name=noresize] {
resize: none;
}
/* Or using the id */
#noresize {
resize: none;
}
Вы также можете попробовать с jQuery
$('textarea').css("resize", "none");
Добавление !important
заставляет его работать:
width:325px !important; height:120px !important; outline:none !important;
outline
просто чтобы избежать синего контура в некоторых браузерах.
!important
. Бессмысленно исправлять ширину и высоту, если атрибут CSS resize: none
может удалить функцию изменения размера
- person Raptor; 05.04.2016
!important
не зло?
- person Peter Mortensen; 26.09.2019
textarea {
resize: none;
}
Приведенный выше код отключит свойство изменения размера всех элементов <textarea/>
в вашем проекте. Если вы хотите, чтобы это было нормально, в противном случае вы бы захотели использовать определенный класс для своих элементов textarea.
.not-resizable {
resize: none;
}
В вашем HTML
<textarea class="not-resizable"></textarea>