2012-11-22 3 views
4

왼쪽/오른쪽 패딩이 10px이고 그 부모만큼 넓은 텍스트 영역/입력을 만드는 방법.패딩과 함께 100 % 너비 입력

textarea,input{ 
    padding:5px 10px 5px 10px; 
    width:100%; 
} 

이 경우 입력이 더 넓습니다.

+0

박스 크기와이 해결에 대한 좋은 논의가 여기에 있습니다 : http://css-tricks.com/box-sizing/ (이 Meliborn가 제안하는 솔루션입니다, 참고 어떤 브라우저와 호환되는지. 기사 하단에 있습니다.) –

답변

0

CSS 코드에 여백 속성을 추가하십시오.

+2

이것은 너비에 패딩을 추가하는 상자 모델과 관련이 있습니다. 따라서 폭은 100 % + 패딩 폭입니다. 솔루션이 왜 효과가 있는지 동기 부여하십시오. –

3

아, 좋은 옛날 Box Model. 여백은 여백에 추가되므로 원하는 효과를 얻으려면 여백에 백분율을 사용해야합니다. 이 시도 :

textarea, input { 
    padding: 1% 2% 1% 2%; 
    width: 96%; 
} 
+0

메신저 상자 모델의 절대적으로. 나는 그것에 대해 잘 알고 있으며 완벽한 픽셀이어야합니다. – user1785870

+0

@Meliborn이 제안했듯이, 상자 크기 조정은 갈 길입니다 (IE7/IE8에서 작동하는지 확실하지 않습니다). – mattytommo

+0

@ user1785870 또 다른 해결책은 너비의 크기를 고정하는 것입니다 (픽셀이 완벽해야하는 경우). – mattytommo

6
textarea{ 
     box-sizing: border-box; 
     width:100%; 
     padding: 10px 
    } 
+0

은 작동하지만 IE7은 없습니다 ... ehh – user1785870

+0

@ user1785870 IE6/7의 경우 ** [box-sizing polyfill] (https://github.com/Schepp/box-sizing-polyfill) **을 선택적으로 사용할 수 있습니다. ** 'box-sizing' 기능을 제공합니다. –

+0

@ user1785870 IE7 용 솔루션이 있습니다. –

1

확인해 볼 수 있습니다 내

Demo on jsFiddle 관련 문제 answer :
enter image description here

HTML 마크 업 :

<div class="input_wrap"> 
    <input type="text" /> 
</div> 

CSS :

div { 
    padding: 6px 10px; /* equal to negative input's margin for mimic normal `div` box-sizing */ 
} 

input { 
    width: 100%; /* force to expand to container's width */ 
    padding: 5px 10px; 
    border: none; 
    margin: 0 -10px; /* negative margin = border-width + horizontal padding */ 
}