필요하지 않을 때 세로 스크롤 막대를 숨기는 방법


95

jquery 힌트가 있고 테두리를 변경하지 않고 불투명도를 사용하고 싶었 기 때문에 div에 포함 된 텍스트 영역이 있습니다. 텍스트 필드에 입력 할 때만 표시되는 세로 스크롤 막대가 있으며 컨테이너를 넘어갑니다. 나는 overflow : auto; 하지만 작동하지 않습니다.

텍스트 필드 :

<label>
    <div id="name">
        <textarea name="message" type="text" id="message"
            title="Enter Message Here"
            rows=9 cols=60 maxlength="2000"></textarea>
    </div>
</label>

스타일 :

#name { 
    border: 1px solid #c810ca;
    width: 270px;
    height:159px;
    overflow: hidden; 
    position: relative;
    }

#message {
    height: 400px;
    width: 235px;
    overflow: hidden;
    position: absolute;
}

답변:


199

overflow: auto(또는 overflow-y: auto)이 올바른 방법입니다.

문제는 텍스트 영역이 div보다 크다는 것입니다. div는 결국 텍스트 상자를 잘라내므로 텍스트가 더 클 때 스크롤을 시작해야하는 것처럼 보이지만 159px텍스트가 400px텍스트 상자의 높이 보다 클 때까지 스크롤을 시작하지 않습니다 .

이것을 시도하십시오 : http://jsfiddle.net/G9rfq/1/

텍스트 상자에 overflow : auto를 설정하고 텍스트 상자를 div와 같은 크기로 만들었습니다.

또한 div내부에있는 것이 타당하지 않다고 생각합니다 label. 브라우저가이를 렌더링하지만 펑키 한 일이 발생할 수 있습니다. 또한 당신 div은 닫히지 않았습니다.


-webkit-scrollbar 의사 요소를 사용하여 스크롤바를 사용자 정의한 경우이 솔루션을 작동시키는 방법. ? 오버플로가 자동 의사 요소가 작동하지 않는 경우 .... 스크롤바를 사용자 정의하고 필요하지 않을 때 숨기고 싶습니까?
Kpatel1989 2015-04-27

4

overflow: auto;아니면 overflow: hidden;그렇게해야한다고 생각합니다.


내 질문 오버플로에서 말했듯이 : auto; 작동하지 않습니다 :(
Lukus

hidden은 스크롤바를 숨기지 만 일단 텍스트가 div를 통과하면 스크롤바가 표시되지 않으므로 나머지 텍스트를보기 위해 아래로 스크롤 할 수 없습니다
Lukus

방금 테스트했고 잘 작동합니다. 어떤 브라우저를 사용하고 있습니까?
Boris Bachovski 2012 년

나는 파이어 폭스를 사용하고 있지만 IE에서는 텍스트가 div를 통과하고 자동으로 DIV 컨테이너를 통과하면 스크롤 막대가 표시되지
않더라도

추가하려고 position: relative;#name div
보리스 Bachovski

2

.css 클래스에이 클래스 추가

.scrol  { 
font: bold 14px Arial; 
border:1px solid black; 
width:100% ; 
color:#616D7E; 
height:20px; 
overflow:scroll; 
overflow-y:scroll;
overflow-x:hidden;
}

div에서 클래스를 사용하십시오. 여기처럼.

<div> <p class = "scrol" id = "title">-</p></div>

이미지를 첨부했습니다. 위 코드의 출력을 볼 수 있습니다. 여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.