>  기사  >  웹 프론트엔드  >  넓은 텍스트 상자가 컨테이너 너머로 확장되는 것을 방지하는 방법은 무엇입니까?

넓은 텍스트 상자가 컨테이너 너머로 확장되는 것을 방지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 21:47:02159검색

How to Prevent Wide Text Boxes from Extending Beyond Their Containers?

넓은 텍스트 상자가 컨테이너를 과도하게 확장하는 것을 방지

컨테이너의 전체 너비에 걸쳐 있는 텍스트 상자를 만들려고 하면 일반적인 문제가 발생합니다. 텍스트 상자는 컨테이너 경계를 넘어 확장될 수 있습니다. 이는 브라우저가 기본적으로 여백, 테두리 및 패딩을 할당하여 텍스트 상자의 전체 너비를 효과적으로 늘리기 때문입니다.

다음 예를 고려하세요.

<code class="html"><div id="outer">
  <div id="inner">
    <input type="text" class="wide" />
    <input type="text" class="normal" />
    <div style="clear:both;"></div>
  </div>
</div></code>
<code class="css">#outer {
  border: 1px solid #000;
  width: 320px;
  margin: 0px;
  padding: 0px;
}
#inner {
  margin: 20px;
  padding: 20px;
  background: #999;
  border: 1px solid #000;
}
input.wide {
  display: block;
  margin: 0px;
  width: 100%;
}
input.normal {
  display: block;
  float: right;
}</code>

이 시나리오에서는 "와이드" 클래스 텍스트 상자는 컨테이너 너머로 확장되는 반면 "일반" 클래스 텍스트 상자는 컨테이너 가장자리에 정확하게 정렬됩니다. 과도한 확장을 방지하기 위해 CSS3에 도입된 "box-sizing" 속성이 해결책을 제공합니다.

<code class="css">input.wide {
  display: block;
  margin: 0px;
  width: 100%;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}</code>

"box-sizing"을 "border-box"로 설정하면 텍스트 상자의 너비가 다음과 같이 정의됩니다. 외부 패딩과 테두리를 포함합니다. 이렇게 하면 텍스트 상자가 경계를 넘어 확장되지 않고 컨테이너의 전체 너비를 차지하게 됩니다.

안타깝게도 "상자 크기 조정"은 CSS3 속성이므로 브라우저 호환성이 다를 수 있습니다. 사양 프로세스가 진행됨에 따라 브라우저는 Mozilla의 경우 "moz-box-sizing", WebKit 기반 브라우저의 경우 "webkit-box-sizing" 등 다양한 임시 이름을 채택했습니다.

이전 버전에 대한 대체 접근 방식 브라우저에는 상위 요소(예: "div" 또는 "td")에 "padding-right"를 적용하는 작업이 포함됩니다. 이는 입력 요소의 기본 패딩과 테두리가 차지하는 추가 공간을 수용하는 데 도움이 될 수 있습니다. 단, 사용하는 브라우저에 따라 필요한 "패딩 권한"의 양은 달라질 수 있습니다.

위 내용은 넓은 텍스트 상자가 컨테이너 너머로 확장되는 것을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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