>웹 프론트엔드 >CSS 튜토리얼 >외부 컨테이너의 크기가 조정될 때 스크롤 가능한 Chat Div를 맨 아래에 고정하는 방법은 무엇입니까?

외부 컨테이너의 크기가 조정될 때 스크롤 가능한 Chat Div를 맨 아래에 고정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-01 09:58:09449검색

How to Keep a Scrollable Chat Div Stuck to the Bottom When the Outer Container Resizes?

외부 div 크기가 변경될 때 스크롤 가능한 div가 아래쪽에 고정됩니다

문제:

채팅 애플리케이션 인터페이스에서 메시지가 포함된 스크롤 가능한 div는 외부 div의 하단에 고정되어야 합니다. div의 크기가 변경됩니다. 예를 들어 사용자가 텍스트 입력 영역의 크기를 조정할 때 메시지 div는 하단에 남아 있어야 합니다.

해결책:

1. CSS 접근 방식:

플렉스 방향 사용: 열 역방향; 외부 div의 경우. 이렇게 하면 플렉스 컨테이너의 요소 순서가 바뀌어 메시지 div가 하단에 효과적으로 배치됩니다.

.outer-div {
  display: flex;
  flex-direction: column-reverse;
}

.message-div {
  flex: 1;
  overflow-y: scroll;
}

2. JavaScript 접근 방식:

CSS 솔루션이 특정 브라우저와 호환되지 않는 경우 JavaScript를 사용하여 메시지 div의 크기 조정 및 위치 조정을 처리할 수 있습니다.

// Resize function to adjust message div height
function resizeMessageDiv() {
  const messageDiv = document.querySelector('.message-div');
  messageDiv.style.height = calcMessageDivHeight();
}

// Helper function to calculate the message div height
function calcMessageDivHeight() {
  const outerDiv = document.querySelector('.outer-div');
  return outerDiv.clientHeight - document.querySelector('.text-input').clientHeight;
}

// Event listener for text input changes
document.querySelector('.text-input').addEventListener('input', resizeMessageDiv);

window.addEventListener('load', resizeMessageDiv); // Initial resize on page load

추가 참고:

JavaScript 솔루션은 더 유연하고 브라우저 호환성을 더 잘 처리하지만 추적이 필요합니다. 이벤트를 처리하고 메시지 div의 높이를 수동으로 업데이트하므로 성능 오버헤드가 발생하고 특정 시나리오에서는 CSS 접근 방식보다 효율성이 떨어질 수 있습니다.

위 내용은 외부 컨테이너의 크기가 조정될 때 스크롤 가능한 Chat Div를 맨 아래에 고정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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