외부 div의 크기가 변경될 때 스크롤 가능한 div가 하단에 고정됨
많은 채팅 애플리케이션이 하단으로 스크롤됩니다. 입력 크기가 조정되어 사용자가 계속해서 최신 메시지를 볼 수 있습니다.
이를 React로 구현하는 전통적인 방법은 다음과 같습니다. componentDidUpdate는 입력이 변경될 때마다 입력 높이를 다시 계산하고 이에 따라 메시지 컨테이너를 업데이트합니다.
그러나 이로 인해 성능 문제가 발생할 수 있으며 이와 같이 메시지를 전달하는 것은 이상적이지 않습니다.
CSS를 사용하여 이를 구현하는 더 좋은 방법이 있습니까?
이것의 두 번째 개정판 대답
flex-direction: 열-역방향; Skype 및 기타 많은 채팅 앱과 마찬가지로 메시지 컨테이너 하단에 메시지를 정렬합니다.
.chat-window { display: flex; flex-direction: column; height: 100%; } .chat-messages { flex: 1; height: 100%; overflow: auto; display: flex; flex-direction: column-reverse; } .chat-input { border-top: 1px solid #999; padding: 20px 5px; } .chat-input-text { width: 60%; min-height: 40px; max-width: 60%; }
flex-direction 사용의 한 가지 단점: 열 역방향; 스크롤바가 표시되지 않는 IE/Edge/Firefox의 버그입니다.
이 문제를 해결하려면 다음 기능을 사용할 수 있습니다.
// scroll to bottom function updateScroll(el) { el.scrollTop = el.scrollHeight; } // only shift-up if at bottom function scrollAtBottom(el) { return el.scrollTop + 5 >= el.scrollHeight - el.offsetHeight; }
그런 다음 해당 기능을 다음과 같은 코드:
/* fix for IE/Edge/Firefox */ var isWebkit = ('WebkitAppearance' in document.documentElement.style); var isEdge = ('-ms-accelerator' in document.documentElement.style); var tempCounter = 6; function updateScroll(el) { el.scrollTop = el.scrollHeight; } function scrollAtBottom(el) { return el.scrollTop + 5 >= el.scrollHeight - el.offsetHeight; }
/* temp. buttons for demo */ button { width: 12%; height: 44px; margin-left: 5%; vertical-align: top; } /* begin - fix for hidden scrollbar in IE/Edge/Firefox */ .chat-messages-text { overflow: auto; } @media screen and (-webkit-min-device-pixel-ratio:0) { .chat-messages-text { overflow: visible; } /* reset Edge as it identifies itself as webkit */ @supports (-ms-accelerator:true) { .chat-messages-text { overflow: auto; } } } /* hide resize FF */ @-moz-document url-prefix() { .chat-input-text { resize: none; } } /* end - fix for hidden scrollbar in IE/Edge/Firefox */
위 내용은 외부 Div의 크기가 조정될 때 CSS를 사용하여 스크롤 가능한 Div를 하단에 고정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이것은 우리가 양식 접근성에 대해 한 작은 시리즈의 세 번째 게시물입니다. 두 번째 게시물을 놓친 경우 "사용자 초점 관리 : Focus-Visible"을 확인하십시오. ~ 안에

이 튜토리얼은 Smart Forms 프레임 워크를 사용하여 전문적인 JavaScript 양식을 작성하는 것을 보여줍니다 (참고 : 더 이상 사용할 수 없음). 프레임 워크 자체를 사용할 수 없지만 원칙과 기술은 다른 형태의 건축업자와 관련이 있습니다.

CSS Box-Shadow 및 개요 속성은 주제를 얻었습니다. 실제 테마에서 어떻게 작동하는지에 대한 몇 가지 예와 이러한 스타일을 WordPress 블록 및 요소에 적용 해야하는 옵션을 보자.

Svelte Transition API는 맞춤형 전환을 포함하여 문서를 입력하거나 떠날 때 구성 요소를 애니메이션하는 방법을 제공합니다.

이 기사는 Envato Market에서 사용할 수있는 최고의 PHP 양식 빌더 스크립트를 탐색하여 기능, 유연성 및 설계를 비교합니다. 특정 옵션으로 다이빙하기 전에 PHP 양식 빌더가 무엇인지, 왜 사용하는지 이해해 봅시다. PHP 양식

웹 사이트의 컨텐츠 프레젠테이션을 설계하는 데 얼마나 많은 시간을 소비합니까? 새 블로그 게시물을 작성하거나 새 페이지를 만들 때

NPM 명령은 서버 시작 또는 컴파일 코드와 같은 것들에 대한 일회성 또는 지속적으로 실행되는 프로세스로 다양한 작업을 실행합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
