@JDIsaaks - далее, разрешение изменения размера в определенных ситуациях может нарушить макет и принтабилить (важный аспект текущего критически важного проекта).
random_user_name
10
Иногда вы действительно хотите, чтобы текстовая область не изменяемого размера. Например, в этом случае, когда вы (условно) преобразуете текстовое поле во что-то, что просто выглядит как метка. Это выглядит очень странно - иметь ярлык со случайным плавающим захватом в стороне.
neminem
2
Ради любви ко всему хорошему, пожалуйста, не делайте этого на реальной текстовой области, иначе вы оттолкнете своих опытных пользователей. Нарушение функциональности браузера должно рассматриваться как ядерный вариант.
суперсветовой
Ответы:
3533
Следующее правило CSS отключает изменение размеров textareaэлементов:
textarea {resize: none;}
Чтобы отключить его для некоторых (но не для всех) textarea, есть несколько вариантов .
Чтобы отключить конкретный 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, min-width и min-height.
Супер важно знать:
Это свойство ничего не делает, если только свойство overflow не является чем-то отличным от visible, которое используется по умолчанию для большинства элементов. В общем, чтобы использовать это, вам нужно установить что-то вроде переполнения: scroll;
@ Šime IE и FF3 (и более ранние версии) не добавляют поддержку изменения размера, поэтому решение для них не требуется. Для FF4 это решение должно работать.
Пончик
24
согласно davidwalsh.name/textarea-resize - используйте resize: вертикальный или resize: горизонтальный, чтобы ограничить изменение размера одним измерением. Или используйте любой из max-width, max-height, min-width и min-height.
Джон Халка
3
Я единственный, кто считает странным устанавливать это с помощью CSS, а не атрибутов? Почему я не могу затем установить отключенные или проверенные или другие свойства с помощью CSS ...
Buksy
6
@Buksy Потому что «отключен» - это состояние, а не визуальное свойство. Таким образом, логично, что это не должно решаться языком стилей .
У CSS 3 есть новое свойство для элементов пользовательского интерфейса, которое позволит вам сделать это. Свойство - это свойство изменения размера . Таким образом, вы бы добавили следующее в вашу таблицу стилей, чтобы отключить изменение размера всех элементов textarea:
textarea { resize: none;}
Это свойство CSS 3; используйте таблицу совместимости, чтобы увидеть совместимость браузера.
Лично мне было бы очень неприятно иметь отключенное изменение размера элементов textarea. Это одна из тех ситуаций, когда дизайнер пытается «сломать» клиент пользователя. Если ваш дизайн не может вместить большую текстовую область, вы можете пересмотреть, как работает ваш дизайн. Любой пользователь может добавить textarea { resize: both !important; }в свою таблицу стилей пользователя, чтобы переопределить ваши предпочтения.
Но это был бы пользователь, преднамеренно нарушающий их макет, а не пользователь, которому просто нужно изменить размер его / ее texareaи в итоге заставить что-то не работать
<textareaclass="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><textareaclass="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><textareaclass="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><textareaclass="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>
Это мем - например, «Вы должны полностью отказаться от этого и попробовать jQuery». ,
Питер Мортенсен
0
Чтобы отключить изменение размера для всех textareas:
textarea {
resize: none;}
Чтобы отключить изменение размера для определенного textarea, добавьте атрибут nameили или idи установите его для чего-либо. В этом случае он называетсяnoresize
HTML
<textareaname='noresize'id='noresize'></textarea>
CSS
/* Using the attribute name */
textarea[name=noresize]{
resize: none;}/* Or using the id */#noresize {
resize: none;}
Ответы:
Следующее правило CSS отключает изменение размеров
textarea
элементов:Чтобы отключить его для некоторых (но не для всех)
textarea
, есть несколько вариантов .Чтобы отключить конкретный
textarea
сname
атрибутом, установленным вfoo
(то есть,<textarea name="foo"></textarea>
):Или, используя
id
атрибут (то есть,<textarea id="foo"></textarea>
):На странице W3C перечислены возможные значения ограничений на изменение размера: нет, оба, горизонтальные, вертикальные и наследовать:
Просмотрите страницу достойной совместимости, чтобы увидеть, какие браузеры в настоящее время поддерживают эту функцию. Как прокомментировал Джон Хулка, размеры можно дополнительно ограничить в CSS, используя max-width, max-height, min-width и min-height.
источник
В CSS ...
источник
Я нашел две вещи:
Первый
Это CSS 3, который еще не выпущен , совместимый с Firefox 4 (и более поздними версиями), Chrome и Safari .
Еще одна особенность формата -
overflow: auto
избавиться от правильной полосы прокрутки с учетом атрибута dir .Код и разные браузеры
Основной HTML
Некоторые браузеры
источник
У CSS 3 есть новое свойство для элементов пользовательского интерфейса, которое позволит вам сделать это. Свойство - это свойство изменения размера . Таким образом, вы бы добавили следующее в вашу таблицу стилей, чтобы отключить изменение размера всех элементов textarea:
Это свойство CSS 3; используйте таблицу совместимости, чтобы увидеть совместимость браузера.
Лично мне было бы очень неприятно иметь отключенное изменение размера элементов textarea. Это одна из тех ситуаций, когда дизайнер пытается «сломать» клиент пользователя. Если ваш дизайн не может вместить большую текстовую область, вы можете пересмотреть, как работает ваш дизайн. Любой пользователь может добавить
textarea { resize: both !important; }
в свою таблицу стилей пользователя, чтобы переопределить ваши предпочтения.источник
texarea
и в итоге заставить что-то не работатьисточник
Если вам нужна глубокая поддержка, вы можете использовать методику старой школы:
источник
resize:none
это решение для предотвращения появления ручки в нижнем углу, которая не работает.Это можно легко сделать в HTML:
Это работает для меня. Значение по умолчанию
true
дляdraggable
атрибута.источник
Чтобы отключить свойство resize, используйте следующее свойство CSS:
Вы можете применить это как свойство встроенного стиля следующим образом:
или между
<style>...</style>
тегами элементов, например, так:источник
Вы просто используете:
resize: none;
в вашем CSS.Также изменение размера не поддерживается в Internet Explorer на данный момент.
Вот различные свойства для изменения размера:
Без изменения размера:
Изменение размера в обоих направлениях (по вертикали и по горизонтали):
Изменить размер по вертикали:
Изменить размер по горизонтали:
Также, если у вас есть
width
иheight
в вашем CSS или HTML, это предотвратит изменение размера текстовой области, с более широкой поддержкой браузеров.источник
CSS 3 может решить эту проблему. К сожалению, в настоящее время он поддерживается только в 60% используемых браузеров .
Для Internet Explorer и iOS вы не можете отключить изменение размера, но вы можете ограничить
textarea
измерение, установив егоwidth
иheight
.Посмотреть демо
источник
Вы можете просто отключить свойство textarea следующим образом:
Чтобы отключить вертикальное или горизонтальное изменение размера, используйте
или
источник
Я создал небольшую демонстрацию, чтобы показать, как работают свойства изменения размера. Я надеюсь, что это поможет вам и другим.
источник
С его помощью
@style
вы можете задать ему нестандартный размер и отключить функцию изменения размера(resize: none;)
.источник
Вы можете попробовать с JQuery также
источник
Чтобы отключить изменение размера для всех
textarea
s:Чтобы отключить изменение размера для определенного
textarea
, добавьте атрибутname
или илиid
и установите его для чего-либо. В этом случае он называетсяnoresize
HTML
CSS
источник
Добавление
!important
заставляет это работать:outline
это просто, чтобы избежать синего контура в некоторых браузерах.источник
!important
атрибутом. Бессмысленно фиксировать ширину и высоту, если атрибут CSSresize: none
может удалить функцию изменения размера!important
зло?