> 웹 프론트엔드 > CSS 튜토리얼 > JavaScript를 사용하여 DIV를 래핑된 텍스트로 동적으로 축소하는 방법은 무엇입니까?

JavaScript를 사용하여 DIV를 래핑된 텍스트로 동적으로 축소하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-29 10:03:29
원래의
966명이 탐색했습니다.

How to Dynamically Shrink a DIV to Wrapped Text Using JavaScript?

JavaScript

를 사용하여 DIV를 래핑된 텍스트로 동적으로 축소

텍스트를 수용하기 위해 DIV를 축소하는 것은 일반적으로 간단합니다. 그러나 최대 너비 제한으로 인해 텍스트가 여러 줄로 줄 바꿈되면 DIV가 그에 따라 축소되지 않습니다. 이로 인해 DIV 오른쪽에 보기 흉한 여백이 생길 수 있습니다.

JavaScript 솔루션

순수한 CSS 솔루션은 불가능하므로 JavaScript로 전환합니다. 역동적인 접근을 위해 다음 코드 조각은 방법을 보여줍니다.

<code class="javascript">const range = document.createRange();
const p = document.getElementById('good');
const text = p.childNodes[0];
range.setStartBefore(text);
range.setEndAfter(text);
const clientRect = range.getBoundingClientRect();
p.style.width = `${clientRect.width}px`;</code>
로그인 후 복사

이 코드 조각은 다음을 수행합니다.

  1. 텍스트를 캡슐화하는 범위를 만듭니다.
  2. clientRect 텍스트.
  3. DIV의 너비를
  4. clientRect의 너비로 설정합니다.

사용 예< /h3>

<code class="html"><p id="bad">This box has a max width but also_too_much_padding.</p>
<p id="good">This box has a max width and the_right_amount_of_padding.</p></code>
로그인 후 복사
<code class="css">p {
  max-width: 250px;
  padding: 10px;
  background-color: #eee;
  border: 1px solid #aaa;
}

#bad {
  background-color: #fbb;
}</code>
로그인 후 복사
이 예에서는 패딩이 다른 두 개의 상자를 만듭니다. 첫 번째 상자는 원래 문제를 보여주고, 두 번째 상자는 JavaScript 솔루션을 사용하여 텍스트 너비에 맞게 동적으로 축소합니다.

위 내용은 JavaScript를 사용하여 DIV를 래핑된 텍스트로 동적으로 축소하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿