답변:
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 의 업데이트 된 바이올린을 참조하십시오 .
내가 아는 한, 당신은 할 수 없습니다.
게다가 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 이상)을 사용하면 content (-box) 영역을 오버플로하는 텍스트가 나타나기 시작하여 높이가 정확히 x 행이 아니라고 생각할 수 있습니다 ( 당신이 설정)하지만, 그것은입니다. 무슨 일이 일어나고 있는지 이해하려면 상자 모델 및 상자 크기 페이지 를 확인하십시오 .