Я хочу отключить свойство изменяемого размера textarea
.
В настоящее время я могу изменить размер textarea
, щелкнув в правом нижнем углу textarea
и перетащив мышью. Как я могу отключить это?
Я хочу отключить свойство изменяемого размера textarea
.
В настоящее время я могу изменить размер textarea
, щелкнув в правом нижнем углу textarea
и перетащив мышью. Как я могу отключить это?
Ответы:
Следующее правило 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;
Цитата Сары Коуп, 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
и в итоге заставить что-то не работать
<textarea style="resize:none" rows="10" placeholder="Enter Text" ></textarea>
Если вам нужна глубокая поддержка, вы можете использовать методику старой школы:
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
это решение для предотвращения появления ручки в нижнем углу, которая не работает.
Это можно легко сделать в HTML:
<textarea name="textinput" draggable="false"></textarea>
Это работает для меня. Значение по умолчанию true
для draggable
атрибута.
Чтобы отключить свойство resize, используйте следующее свойство CSS:
resize: none;
Вы можете применить это как свойство встроенного стиля следующим образом:
<textarea style="resize: none;"></textarea>
или между <style>...</style>
тегами элементов, например, так:
textarea {
resize: none;
}
Вы просто используете: 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 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 */
Вы можете просто отключить свойство textarea следующим образом:
textarea {
resize: none;
}
Чтобы отключить вертикальное или горизонтальное изменение размера, используйте
resize: vertical;
или
resize: horizontal;
Я создал небольшую демонстрацию, чтобы показать, как работают свойства изменения размера. Я надеюсь, что это поможет вам и другим.
.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;" })
Вы можете попробовать с JQuery также
$('textarea').css("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;
}
Добавление !important
заставляет это работать:
width:325px !important; height:120px !important; outline:none !important;
outline
это просто, чтобы избежать синего контура в некоторых браузерах.
!important
атрибутом. Бессмысленно фиксировать ширину и высоту, если атрибут CSS resize: none
может удалить функцию изменения размера
!important
зло?