ОНОВЛЕННЯ (січень 2016): Гарний маленький хак може більше не працювати у всіх браузерах, тому в мене нижче є нове рішення з крихітним шматочком javascript.
Гарний маленький хак
Це не добре, але ви можете просто помістити нові рядки в html. Подобається це:
<textarea rows="6" id="myAddress" type="text" placeholder="My Awesome House,
1 Long St
London
Postcode
UK"></textarea>
Зверніть увагу, що кожен рядок знаходиться в новому рядку (не загортається), і кожен відступ "вкладки" має 4 пробіли. Звичайно, це не дуже приємний метод, але він, здається, працює:
http://jsfiddle.net/01taylop/HDfju/
- Цілком ймовірно, що рівень відступу кожного рядка буде змінюватися залежно від ширини вашої області тексту.
- Важливо мати
resize: none;
в css, щоб розмір textarea був фіксованим (див. Jsfiddle).
Як альтернативи
Якщо ви хочете нову лінію, вдарив повернення в два рази (Так що є порожній рядок між вашими "новими лініями. Ця« порожній рядок » , створеної потреби мати достатню кількість вкладок / прогалин , які прирівнюються до ширини вашого текстового поля. Це Байдуже Мабуть, не має значення, якщо їх занадто багато, тобі просто потрібно достатньо. Це так брудно, але, ймовірно, не сумісний із браузером. Я б хотів, щоб був простіший спосіб!
Краще рішення
Перевір JSFiddle .
- Це рішення позиціонує діву за текстовою областю.
- Деякі javascript використовуються для зміни кольору фону текстової області, приховування або виявлення заповнювача місця.
- Введення та заповнювачі повинні мати однакові розміри шрифту, отже, два комбінації.
- В
box-sizing
і display: block
властивості на текстове поле є важливими або ДІВ за ним не буде мати той же розмір.
- Налаштування
resize: vertical
та min-height
позначення на текстовій області також важливі - зауважте, як текст заповнювача загортається, а розширення текстової області зберігатиме білий фон. Однак коментування цього resize
ресурсу спричинить проблеми при горизонтальному розширенні текстової області.
- Просто переконайтеся, що мінімальна висота на текстовій області є достатньою, щоб покрити весь заповнювач на найменшій ширині. **
HTML:
<form>
<input type='text' placeholder='First Name' />
<input type='text' placeholder='Last Name' />
<div class='textarea-placeholder'>
<textarea></textarea>
<div>
First Line
<br /> Second Line
<br /> Third Line
</div>
</div>
</form>
SCSS:
$input-padding: 4px;
@mixin input-font() {
font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
font-size: 12px;
font-weight: 300;
line-height: 16px;
}
@mixin placeholder-style() {
color: #999;
@include input-font();
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
form {
width: 250px;
}
input,textarea {
display: block;
width: 100%;
padding: $input-padding;
border: 1px solid #ccc;
}
input {
margin-bottom: 10px;
background-color: #fff;
@include input-font();
}
textarea {
min-height: 80px;
resize: vertical;
background-color: transparent;
&.data-edits {
background-color: #fff;
}
}
.textarea-placeholder {
position: relative;
> div {
position: absolute;
z-index: -1;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: $input-padding;
background-color: #fff;
@include placeholder-style();
}
}
::-webkit-input-placeholder {
@include placeholder-style();
}
:-moz-placeholder {
@include placeholder-style();
}
::-moz-placeholder {
@include placeholder-style();
}
:-ms-input-placeholder {
@include placeholder-style();
}
Javascript:
$("textarea").on('change keyup paste', function() {
var length = $(this).val().length;
if (length > 0) {
$(this).addClass('data-edits');
} else {
$(this).removeClass('data-edits');
}
});
<?="\n"?>
як новий рядок