Chcę wyłączyć właściwość o zmiennym rozmiarze textarea
.
Obecnie mogę zmienić rozmiar textarea
, klikając prawy dolny róg textarea
i przeciągając myszą. Jak mogę to wyłączyć?
Chcę wyłączyć właściwość o zmiennym rozmiarze textarea
.
Obecnie mogę zmienić rozmiar textarea
, klikając prawy dolny róg textarea
i przeciągając myszą. Jak mogę to wyłączyć?
Odpowiedzi:
Następująca reguła CSS wyłącza zmianę rozmiaru textarea
elementów:
textarea {
resize: none;
}
Aby wyłączyć tę textarea
funkcję dla niektórych (ale nie wszystkich) opcji , istnieje kilka opcji .
Aby wyłączyć konkretny textarea
z name
atrybutem ustawionym na foo
(tj. <textarea name="foo"></textarea>
):
textarea[name=foo] {
resize: none;
}
Lub za pomocą id
atrybutu (tj. <textarea id="foo"></textarea>
):
#foo {
resize: none;
}
Strona W3C zawiera listę możliwych wartości ograniczeń zmiany rozmiaru: brak, zarówno poziomy, pionowy, jak i dziedziczony:
textarea {
resize: vertical; /* user can resize vertically, but width is fixed */
}
Przejrzyj stronę przyzwoitej zgodności, aby zobaczyć, które przeglądarki obsługują obecnie tę funkcję. Jak zauważył Jon Hulka, wymiary można dodatkowo ograniczyć w CSS, używając maksymalnej szerokości, maksymalnej wysokości, minimalnej szerokości i minimalnej wysokości.
Bardzo ważne, aby wiedzieć:
Ta właściwość nic nie robi, chyba że właściwość przepełnienia jest czymś innym niż widocznym, co jest wartością domyślną dla większości elementów. Ogólnie więc, aby z tego skorzystać, musisz ustawić coś takiego jak przepełnienie: przewiń;
Cytat Sary Cope, http://css-tricks.com/almanac/properties/r/resize/
W CSS ...
textarea {
resize: none;
}
Znalazłem dwie rzeczy:
Pierwszy
textarea{resize: none}
To jest CSS 3, który nie został jeszcze wydany , kompatybilny z Firefox 4 (i nowszymi), Chrome i Safari .
Inną funkcją formatu jest overflow: auto
pozbycie się prawego paska przewijania, biorąc pod uwagę atrybut dir .
Podstawowy HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<textarea style="overflow:auto;resize:none" rows="13" cols="20"></textarea>
</body>
</html>
Niektóre przeglądarki
CSS 3 ma nową właściwość elementów interfejsu użytkownika, która pozwoli ci to zrobić. Właściwość jest właściwością zmiany rozmiaru . Więc dodaj do arkusza stylów następujące elementy, aby wyłączyć zmianę rozmiaru wszystkich elementów obszaru tekstowego:
textarea { resize: none; }
Jest to właściwość CSS 3; skorzystaj z tabeli kompatybilności, aby zobaczyć kompatybilność przeglądarki.
Osobiście uważałbym za bardzo denerwujące wyłączenie zmiany rozmiaru elementów textarea. Jest to jedna z sytuacji, w których projektant próbuje „złamać” klienta użytkownika. Jeśli Twój projekt nie może pomieścić większego obszaru tekstowego, możesz ponownie rozważyć sposób jego działania. Każdy użytkownik może dodać textarea { resize: both !important; }
do swojego arkusza stylów użytkownika, aby zastąpić twoje preferencje.
texarea
i kończy się tym, że coś nie działa
<textarea style="resize:none" rows="10" placeholder="Enter Text" ></textarea>
Jeśli potrzebujesz głębokiego wsparcia, możesz użyć starej szkoły:
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
tego rozwiązania, aby zapobiec pojawianiu się uchwytu w dolnym rogu, co frustrująco nie działa.
Można to łatwo zrobić w HTML:
<textarea name="textinput" draggable="false"></textarea>
To działa dla mnie. Domyślną wartością jest true
dla draggable
atrybutu.
Aby wyłączyć właściwość zmiany rozmiaru, użyj następującej właściwości CSS:
resize: none;
Możesz zastosować to jako właściwość stylu wbudowanego, taką jak:
<textarea style="resize: none;"></textarea>
lub pomiędzy <style>...</style>
znacznikami elementów takimi jak:
textarea {
resize: none;
}
Po prostu używasz: resize: none;
w swoim CSS.
Zmiana rozmiaru określa, czy użytkownik może elementu.
Uwaga: Właściwość zmiany rozmiaru dotyczy elementów, których obliczona wartość przepełnienia jest czymś innym niż „widocznym”.
Również zmień rozmiar nie jest obecnie obsługiwana w Internet Explorerze.
Oto różne właściwości zmiany rozmiaru:
Bez zmiany rozmiaru:
textarea {
resize: none;
}
Zmień rozmiar w obie strony (pionowo i poziomo):
textarea {
resize: both;
}
Zmień rozmiar w pionie:
textarea {
resize: vertical;
}
Zmień rozmiar w poziomie:
textarea {
resize: horizontal;
}
Również jeśli masz width
i height
w swoim CSS lub HTML, zapobiegnie to zmianie rozmiaru twojego obszaru tekstowego, dzięki szerszej obsłudze przeglądarek.
CSS 3 może rozwiązać ten problem. Niestety jest obecnie obsługiwany tylko w 60% używanych przeglądarek .
W przeglądarce Internet Explorer i iOS nie można wyłączyć zmiany rozmiaru, ale można ograniczyć textarea
wymiar, ustawiając jego width
i height
.
/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */
Możesz po prostu wyłączyć właściwość textarea w następujący sposób:
textarea {
resize: none;
}
Aby wyłączyć zmianę rozmiaru w pionie lub w poziomie , użyj
resize: vertical;
lub
resize: horizontal;
Stworzyłem małe demo, aby pokazać, jak działa zmiana rozmiaru właściwości. Mam nadzieję, że to pomoże tobie i innym.
.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>
Za pomocą @style
możesz nadać mu niestandardowy rozmiar i wyłączyć funkcję zmiany rozmiaru (resize: none;)
.
@Html.TextAreaFor(model => model.YourProperty, new { @style = "width: 90%; height: 180px; resize: none;" })
Możesz spróbować również z jQuery
$('textarea').css("resize", "none");
Aby wyłączyć zmianę rozmiaru dla wszystkich textarea
s:
textarea {
resize: none;
}
Aby wyłączyć zmianę rozmiaru dla określonego textarea
, dodaj atrybut name
lub an id
i ustaw go na coś. W tym przypadku jest nazwanynoresize
<textarea name='noresize' id='noresize'> </textarea>
/* Using the attribute name */
textarea[name=noresize] {
resize: none;
}
/* Or using the id */
#noresize {
resize: none;
}
Dodanie !important
powoduje, że działa:
width:325px !important; height:120px !important; outline:none !important;
outline
jest po prostu unikanie niebieskiego konturu w niektórych przeglądarkach.
!important
atrybutu. Nie ma znaczenia, aby naprawić szerokość i wysokość, jeśli atrybut CSS resize: none
może usunąć funkcję zmiany rozmiaru
!important
zło?