Ответы:
width
и height
используются при переходе по маршруту css.
<!DOCTYPE html>
<html>
<head>
<title>Setting Width and Height on Textareas</title>
<style>
.comments { width: 300px; height: 75px }
</style>
</head>
<body>
<textarea class="comments"></textarea>
</body>
</html>
em
для указания высоты, я сомневаюсь, что она может быть использована для указания ширины. Он может работать с моноширинными шрифтами (после определения соотношения ширины и высоты символов и изменения значения ширины соответственно), и все. За исключением моноширинного пространства, ширина символов не фиксирована, поэтому я не думаю, что атрибут em
или cols
атрибут могут помочь при указании ширины.
<textarea rows="4" cols="50"></textarea>
Это эквивалентно:
textarea {
height: 4em;
width: 50em;
}
где 1em соответствует текущему размеру шрифта, таким образом, текстовая область должна иметь ширину 50 символов. смотрите здесь .
padding
и line-height
в счете. Скажем, у вас есть отступ в половину em сверху и снизу и высотой строки 1,2em, тогда высота для 4 рядов будет 1 + 4 * 1,2 = 5,8em.
height: calc(3em + 8px);
,
rows
атрибут (в некоторой степени) надежен, я бы не стал полагаться на cols
атрибут, если бы не использовал моноширинные шрифты для текстовой области. Смотрите обновленную скрипку @ AlexanderScholz .
Я не думаю, что ты можешь. Я всегда иду с ростом и шириной.
textarea{
width:400px;
height:100px;
}
хорошая вещь в CSS это то, что вы можете полностью его стилизовать. Теперь вы можете добавить такие вещи, как:
textarea{
width:400px;
height:100px;
border:1px solid #000000;
background-color:#CCCCCC;
}
Насколько я знаю, ты не можешь.
Кроме того, это не то, что CSS для в любом случае. CSS для стиля, а HTML для разметки.
line-height
, padding
на контейнере (не вычисления высоты на основе box-sizing
), даже принимая во внимание различные соотношения сторон шрифтов , используемых для обеспечения текстовое поле отображает номер набора строк текста, которые вы не можете достичь с помощью высоты CSS.
Я просто хотел опубликовать демо, используя calc () для установки строк / высоты, так как никто не сделал.
body {
/* page default */
font-size: 15px;
line-height: 1.5;
}
textarea {
/* demo related */
width: 300px;
margin-bottom: 1em;
display: block;
/* rows related */
font-size: inherit;
line-height: inherit;
padding: 3px;
}
textarea.border-box {
box-sizing: border-box;
}
textarea.rows-5 {
/* height: calc(font-size * line-height * rows); */
height: calc(1em * 1.5 * 5);
}
textarea.border-box.rows-5 {
/* height: calc(font-size * line-height * rows + padding-top + padding-bottom + border-top-width + border-bottom-width); */
height: calc(1em * 1.5 * 5 + 3px + 3px + 1px + 1px);
}
<p>height is 2 rows by default</p>
<textarea>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>
<p>height is 5 now</p>
<textarea class="rows-5">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>
<p>border-box height is 5 now</p>
<textarea class="border-box rows-5">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>
Если вы используете большие значения для отступов (например, больше 0.5em), вы начнете видеть текст, который переполняет область содержимого (-box), и это может заставить вас думать, что высота не совсем x строк ( что вы установили), но это так. Чтобы понять, что происходит, вы, возможно, захотите проверить страницы блочной модели и размеров коробок .