>  기사  >  웹 프론트엔드  >  왜 `display: block; width: auto;` 입력 필드가 컨테이너를 채우도록 하시겠습니까?

왜 `display: block; width: auto;` 입력 필드가 컨테이너를 채우도록 하시겠습니까?

DDD
DDD원래의
2024-11-24 04:21:13107검색

Why Doesn't `display: block; width: auto;` Make an Input Field Fill Its Container?

Display:block 및 Width:auto를 사용하여 요소 동작 차단 해제

입력에 display:block 및 width:auto를 지정할 때 문제가 발생합니다. 이는 div처럼 작동하고 컨테이너 너비를 채우기 위해 확장된다는 기대와 다릅니다. div가 자동 너비를 갖는 블록 요소라는 가정에도 불구하고 입력 필드의 경우는 그렇지 않습니다.

문제 이해

상자 모델을 상속하는 입력 필드 요소의 너비는 패딩이나 테두리가 아닌 실제 콘텐츠만 포함하는 HTML 표준에서 유래되었습니다. 따라서 입력 필드에 width:auto를 설정하면 패딩과 테두리가 자동으로 포함되지 않습니다.

전체 너비 입력 달성

입력 필드가 컨테이너의 너비를 채우도록 하려면 너비에 따라 다양한 접근 방식을 고려할 수 있습니다.

1. 박스 크기 조정

CSS3에는 상자 모델의 동작을 제어할 수 있는 상자 크기 조정 속성이 도입되었습니다. box-sizing 설정: 입력 필드의 border-box는 내용과 패딩 및 테두리를 모두 포함하여 너비를 정의합니다.

2. 크로스 브라우저 솔루션

크로스 브라우저 솔루션에는 Internet Explorer 6-7에 대한 브라우저별 접두어 및 조건문과 함께 CSS3를 사용하는 것이 포함됩니다. 이를 통해 다양한 브라우저 간의 호환성이 보장됩니다.

3. 래퍼 해결 방법

대체 솔루션에는 래퍼 요소를 사용하거나 패딩 및 테두리를 설명하는 특정 너비를 할당하는 것이 포함됩니다. 그러나 이러한 해결 방법에는 의미론적 HTML 및 CSS 선택기 관계에 제한이 있습니다.

결론

입력 필드의 디스플레이:블록 및 너비:자동 동작이 예상과 다릅니다. 입력 요소의 상자 모델의 고유성에 따라 달라집니다. 이러한 차이점을 이해하고 상자 크기 또는 브라우저 간 호환성과 같은 대체 솔루션을 탐색하면 개발자가 입력 필드에 대해 원하는 너비 요구 사항을 달성할 수 있습니다.

위 내용은 왜 `display: block; width: auto;` 입력 필드가 컨테이너를 채우도록 하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.