2017-12-08 15 views
1

나는 몇 쿼리 위의 코드에서 CSS의 오버 플로우 속성은 실제로 어떻게 작동합니까?

.outer-div { 
 
    display: flex; 
 
    position: relative; 
 
    height: 3.5em; 
 
    width: 20%; 
 
    border: 2px solid #000000a3; 
 
    margin-left: 300px; 
 
    align-items: center; 
 
    border: 1px solid green; 
 
} 
 
.inner-div { 
 
\t border: 1px solid blue; 
 
    position: absolute; 
 
    right: 1%; 
 
    font-size: 40px; 
 
}
<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <div class = "outer-div"> 
 
    <div class = "inner-div">HelloWorld</div> 
 
    </div> 
 
</body>

,이 코드 아래 CSS- 체크 속성을 오버 플로우 관련 한 내부-DIV 컨테이너에 넘쳐 y 방향이 아닌 x 방향. 하지만 overflow: scroll을 추가하면 두 방향 (여기까지 정밀하게)에 스크롤 막대가 추가됩니다. 그러나 내부 - div 컨테이너가 있음에도 불구하고 x 방향이 아닌 y 방향의 스크롤 막대를 사용할 수 있습니다. x 방향으로 범람하고있다. 왜 그래야만하지? 확인이 조각,

.outer-div { 
 
    display: flex; 
 
    position: relative; 
 
    height: 3.5em; 
 
    width: 20%; 
 
    border: 2px solid #000000a3; 
 
    margin-left: 300px; 
 
    align-items: center; 
 
    border: 1px solid green; 
 
    overflow: scroll; 
 
} 
 
.inner-div { 
 
\t border: 1px solid blue; 
 
    position: absolute; 
 
    right: 1%; 
 
    font-size: 40px; 
 
}
<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <div class = "outer-div"> 
 
    <div class = "inner-div">HelloWorld</div> 
 
    </div> 
 
</body> 
 
</html>

내가 하이픈으로 텍스트를 분리하면 내 마지막 쿼리는 - 그것은이 개 라인과하지에 침입 이유 또는 공간, () 같은 줄에서 계속 하시겠습니까? 내 외부 컨테이너의 크기가 있기 때문에 공백없이 텍스트를 입력하면 분할되지 않는 이유는 무엇입니까?? 확인 아래

.outer-div { 
 
    display: flex; 
 
    position: relative; 
 
    height: 3.5em; 
 
    width: 20%; 
 
    border: 2px solid #000000a3; 
 
    margin-left: 300px; 
 
    align-items: center; 
 
    border: 1px solid green; 
 
} 
 
.inner-div { 
 
\t border: 1px solid blue; 
 
    position: absolute; 
 
    right: 1%; 
 
    font-size: 40px; 
 
}
<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <div class = "outer-div"> 
 
    <div class = "inner-div">Hello World</div> 
 
    </div> 
 
</body> 
 
</html>

감사 시간을주는 당신의 도움을 많이!

+0

위치 절대 값은 컨테이너 방향을 앵커 방향 (사용자의 경우 '오른쪽')으로 간주하지 않습니다. – Yashas

답변

1

inner-div 클래스는 div에 position: absolute 속성을 부여합니다. 이렇게하면 내부 div가 부모 div의 크기와 독립적이되며 부모 컨테이너의 높이와 너비를 명시 적으로 지정하고 inner-div 고정을 중단 할 때까지 항상 넘칠 것입니다 (right, top, leftbottom 사용). inner-div를 고정시키지 않으면 절대적으로 배치 된 요소의 목적이 일종의 패배입니다. right을 제거하여 가로 스크롤 막대를 다시 가져올 수 있지만 그럴 가능성은 거의 없습니다.

간단히 말해서, 절대 배치 된 요소는 흐름의 일부가 아니며 다른 차원에서 살고 있습니다 (부모 div에서는 볼 수 없습니다).


단어 줄 바꿈 작동 방식입니다. 줄의 단어가 너비에 맞지 않으면 공백을 발견 한 후 단어를 다음 줄로 옮깁니다. 공백 뒤에 단어를 뒤집어 쓰지 않으려면 줄 바꿈하지 않는 공백 (예 : &nbsp;)을 사용하거나 white-space: nowrap;을 사용해야합니다.

+0

고마워 .... –

0

div에는 절대적으로 위치하기 때문에 가로 스크롤 막대가 없습니다. .inner-div의 위치 속성을 absolute 또는 fixed 이외의 값으로 설정하면 div에 원하는 스크롤 기능이 적용됩니다.

줄 분리는 단어 또는 하이픈의 끝에있는 줄을 끊는 자동 줄 바꿈 때문입니다.