2017-12-24 15 views
1

오늘 아주 이상한 것이 있습니다. div에 스타일 overflow: hidden을 추가 할 때 해당 내용에 머리글이 있으면 여백이나 여백과 같은 여백이 생깁니다. 양은 적기 때문에 일반적으로 눈치 채지도 신경도 쓰지 않지만 문제는 내가 애니메이션을 만들고 그 여백/패딩이 엉망입니다. 몇 시간 동안 나는 그것이 잘못된 애니메이션이라고 생각했지만 마침내 이것을 좁혔습니다.왜 오버플로 : 숨김 패딩/여백 추가?

<div style="overflow:hidden"> 
    <ng-content select="wizard-step"></ng-content> 
</div> 

는 NG-내용이 렌더링 : 여기

는 오버 플로우와 코드의

<h5><strong>testing bootstrap header</strong></h5> 
<search-select #select [placeholder]="'Busca audiencias...'" (selected)="onSelected($event); select.text = ''" [template]="template" property="name" [items]="catalogAudiences | filterAudiences:audiences"></search-select> 
<div class="mt-3"> 
    <div *ngIf="!audiences?.length" class="alert alert-primary"> 
     No has agregado audiencias. 
    </div> 
    <audiences-list (remove)="onRemove($event)" [readOnly]="true" [audiences]="audiences"></audiences-list> 
</div> 

을 그리고는 다음과 같습니다 : 나는 당신이 화살표를 통지 할 enter image description here

내가 말하는 여분의 공간을 보여줍니다. 이 그것이 내가 style="overflow:hidden" 제거하면 모습입니다, 비교하려면 : 나는 그것을 말할 어려울 수 있습니다 알고

enter image description here

,하지만 그건 거의 "테스트 부트 스트랩 헤더는"때마다 그 일부 원치 않는 마진을 얻는 경우와 같은 div는 overflow: hidden이며 내 애니메이션이 엉망입니다. 이 문제를 어떻게 해결할 수 있습니까?

저는 도움이 필요하면 부트 스트랩 4와 앵귤러 5를 사용하고 있습니다.

+0

요소를 검사하면 컨테이너 및 내부 div에 다른 CSS 특성이 표시됩니까? 특히 위치, 디스플레이, 플로트? 내 직감은 오버 플로우 특성이 예기치 않은 방식으로 스태킹 컨텍스트를 망친다는 것입니다. – cheryllium

+0

@heryllium, 나는 그것을 시도하고 나는 평범함에서 아무것도 찾을 수 없었다. 나는 CSS에 관해서 최고가 아니기 때문에 내가 무엇을 찾을 지 알 것 같지 않지만 어쨌든. 테스트를 더 거친 후에도 헤더에만 영향을 미치는 것으로 나타났습니다 (이 경우

). 해당 요소를 제거하면 잘못된 것이 발생하지 않으며 추가 공간이 추가되지 않습니다. 다른 태그에서도 발생할 수 있지만, 지금까지 내가 가진 것입니다. – Christian

+0

그 속성에 다른 CSS가 있는지 공유 할 수 있습니까? – cheryllium

답변

1

h5 ("테스트 부트 스트랩 헤더")는 브라우저 기본값 또는 부트 스트랩의 상단 여백에 div의 overflow: hidden의 영향을받습니다 (이로 인해 하위 여백을 차단하는 블록 서식 설정 컨텍스트가 설정됩니다) 부모 마진과 붕괴 됨). 사양에서 collapsing margins을 참조하십시오.

상단 여백을 제거하면 문제를 해결할 수 있습니다.

+0

나는 [이 jsfiddle] (https://jsfiddle.net/ConnorsFan/43666wwd/)와 유사한 결론을 내 렸습니다. 'body' 엘레멘트의 상단 여백은'h5' 엘레멘트의 여백과 함께 붕괴하는 것처럼 보입니다. 이 경우 신체의 여백을 제거하면 문제를 해결할 수 있습니다. – ConnorsFan

+0

예, 그렇습니다. 오버플로없이 콘텐츠 블록 여백을 항상 축소 할 수있는 방법이 있습니까? 숨김? 그런 식으로 적어도 눈에 띄지는 않을 것입니다. 기본적으로 오버플로가 필요합니다. 슬라이드 안팎에서 애니메이션이 숨겨져 있지만, 일단 제거되면 여분의 여백도 제거되고 애니메이션의 끝이 얼마나 부 자연스럽게 보이는지 즉시 알 수 있습니다. 그래서 지금은 오버플로없이 붕괴 여백을 비활성화 할 수 있기를 원합니다. 숨김. 부트 스트랩 헤더에서 위쪽 여백을 제거하는 것은 모든 콘텐츠와 함께 재사용 가능한 구성 요소 여야하기 때문에 실제로 옵션이 아닙니다. – Christian

+0

가 나는'NG-content' 블록 전후에이를 삽입하여 그것을 해결하기 위해 관리 : '

.
' 그것은 작품과 애니메이션이 지금은 잘 보이지만, 사람이,이 못생긴 및 해킹 같은 느낌. 더 좋은 방법이 있다고 생각하니? – Christian