Quiero deshabilitar la propiedad redimensionable de a textarea
.
Actualmente, puedo cambiar el tamaño de un textarea
haciendo clic en la esquina inferior derecha textarea
y arrastrando el mouse. ¿Cómo puedo desactivar esto?
Quiero deshabilitar la propiedad redimensionable de a textarea
.
Actualmente, puedo cambiar el tamaño de un textarea
haciendo clic en la esquina inferior derecha textarea
y arrastrando el mouse. ¿Cómo puedo desactivar esto?
Respuestas:
La siguiente regla CSS deshabilita el comportamiento de cambio de tamaño de los textarea
elementos:
textarea {
resize: none;
}
Para deshabilitarlo por algunos (pero no por todos) textarea
, hay un par de opciones .
Para deshabilitar un específico textarea
con el name
atributo establecido en foo
(es decir, <textarea name="foo"></textarea>
):
textarea[name=foo] {
resize: none;
}
O, usando un id
atributo (es decir, <textarea id="foo"></textarea>
):
#foo {
resize: none;
}
La página W3C enumera los valores posibles para cambiar el tamaño de las restricciones: ninguno, ambos, horizontal, vertical y heredar:
textarea {
resize: vertical; /* user can resize vertically, but width is fixed */
}
Revise una página de compatibilidad decente para ver qué navegadores admiten actualmente esta función. Como Jon Hulka ha comentado, las dimensiones pueden restringirse aún más en CSS utilizando max-width, max-height, min-width y min-height.
Súper importante saber:
Esta propiedad no hace nada a menos que la propiedad de desbordamiento sea diferente a la visible, que es el valor predeterminado para la mayoría de los elementos. En general, para usar esto, tendrá que configurar algo como desbordamiento: desplazamiento;
Cita de Sara Cope, http://css-tricks.com/almanac/properties/r/resize/
En CSS ...
textarea {
resize: none;
}
Encontré dos cosas:
primero
textarea{resize: none}
Este es un CSS 3, que aún no se ha lanzado , compatible con Firefox 4 (y posterior), Chrome y Safari .
Otra característica del formato es overflow: auto
deshacerse de la barra de desplazamiento derecha, teniendo en cuenta el atributo dir .
HTML básico
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<textarea style="overflow:auto;resize:none" rows="13" cols="20"></textarea>
</body>
</html>
Algunos navegadores
CSS 3 tiene una nueva propiedad para los elementos de la interfaz de usuario que le permitirá hacer esto. La propiedad es la propiedad de cambio de tamaño . Por lo tanto, agregaría lo siguiente a su hoja de estilo para deshabilitar el cambio de tamaño de todos los elementos del área de texto:
textarea { resize: none; }
Esta es una propiedad CSS 3; use una tabla de compatibilidad para ver la compatibilidad del navegador.
Personalmente, me resultaría muy molesto tener el cambio de tamaño desactivado en elementos de área de texto. Esta es una de esas situaciones en las que el diseñador está tratando de "romper" al cliente del usuario. Si su diseño no puede acomodar un área de texto más grande, es posible que desee reconsiderar cómo funciona su diseño. Cualquier usuario puede agregar textarea { resize: both !important; }
a su hoja de estilo de usuario para anular su preferencia.
texarea
y termina haciendo que algo no funcione
<textarea style="resize:none" rows="10" placeholder="Enter Text" ></textarea>
Si necesita un apoyo profundo, puede usar una técnica de la vieja escuela:
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
con esta solución para evitar que el mango aparezca en la esquina inferior, lo que frustrantemente no funciona.
Esto se puede hacer en HTML fácilmente:
<textarea name="textinput" draggable="false"></textarea>
Esto funciona para mi. El valor predeterminado es true
para el draggable
atributo.
Para deshabilitar la propiedad de cambio de tamaño, use la siguiente propiedad CSS:
resize: none;
Puede aplicar esto como una propiedad de estilo en línea de la siguiente manera:
<textarea style="resize: none;"></textarea>
o entre <style>...</style>
etiquetas de elementos de esta manera:
textarea {
resize: none;
}
Simplemente usa: resize: none;
en tu CSS.
La propiedad de cambio de tamaño especifica si el usuario puede cambiar el tamaño de un elemento o no.
Nota: La propiedad de cambio de tamaño se aplica a elementos cuyo valor de desbordamiento calculado no es "visible".
Tampoco se admite el cambio de tamaño en Internet Explorer en este momento.
Aquí hay diferentes propiedades para cambiar el tamaño:
Sin cambio de tamaño:
textarea {
resize: none;
}
Cambiar el tamaño en ambos sentidos (vertical y horizontalmente):
textarea {
resize: both;
}
Cambiar el tamaño verticalmente:
textarea {
resize: vertical;
}
Cambiar el tamaño horizontalmente:
textarea {
resize: horizontal;
}
Además, si tiene width
y height
en su CSS o HTML, evitará que su área de texto cambie de tamaño, con un soporte de navegadores más amplio.
CSS 3 puede resolver este problema. Desafortunadamente, actualmente solo es compatible con el 60% de los navegadores usados .
Para Internet Explorer e iOS, no puede desactivar el cambio de tamaño, pero puede limitar la textarea
dimensión configurando su width
y height
.
/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */
Simplemente puede deshabilitar la propiedad textarea de esta manera:
textarea {
resize: none;
}
Para deshabilitar el cambio de tamaño vertical u horizontal , use
resize: vertical;
o
resize: horizontal;
He creado una pequeña demostración para mostrar cómo funcionan las propiedades de cambio de tamaño. Espero que te ayude a ti y a los demás también.
.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>
Con @style
, puede darle un tamaño personalizado y desactivar la función de cambio de tamaño (resize: none;)
.
@Html.TextAreaFor(model => model.YourProperty, new { @style = "width: 90%; height: 180px; resize: none;" })
Puedes probar con jQuery también
$('textarea').css("resize", "none");
Para deshabilitar el cambio de tamaño para todos los textarea
s:
textarea {
resize: none;
}
Para deshabilitar el cambio de tamaño para un específico textarea
, agregue un atributo name
, o an id
y configúrelo en algo. En este caso, se llamanoresize
<textarea name='noresize' id='noresize'> </textarea>
/* Using the attribute name */
textarea[name=noresize] {
resize: none;
}
/* Or using the id */
#noresize {
resize: none;
}
Agregar lo !important
hace funcionar:
width:325px !important; height:120px !important; outline:none !important;
outline
es solo para evitar el contorno azul en ciertos navegadores.
!important
atributo. No tiene sentido corregir el ancho y la altura si el atributo CSS resize: none
puede eliminar la función de cambio de tamaño
!important
malo?