Highcharts: ν”Œλ ‰μŠ€ μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ 높이와 λ„ˆλΉ„

에 λ§Œλ“  2015λ…„ 10μ›” 11일  Β·  10μ½”λ©˜νŠΈ  Β·  좜처: highcharts/highcharts

ν”Œλ ‰μŠ€ μ»¨ν…Œμ΄λ„ˆ 내뢀에 λ‘˜ μ΄μƒμ˜ μš”μ†Œκ°€ μžˆλŠ” 경우 μ°½ 크기λ₯Ό λ³€κ²½ν•  λ•Œ λ„ˆλΉ„μ™€ 높이가 쀄어듀지 μ•ŠμŠ΅λ‹ˆλ‹€.
ν”Œλ ‰μŠ€ λ°©ν–₯:ν–‰ 데λͺ¨
ν”Œλ ‰μŠ€ λ°©ν–₯:μ—΄ 데λͺ¨

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

flex: 1 1 50% 와 같은 λΆ€λͺ¨μ— height: 0 을 λ„£κ³  차트 μ»¨ν…Œμ΄λ„ˆμ— overflow: hidden κ°€ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” 데 μ„±κ³΅ν–ˆμŠ΅λ‹ˆλ‹€.

<div id="parent"> // flex-sized, but height 0
  <div id="chart-container"> // flex 1, overflow hidden, display flex
    <div id="chart"> // flex 1, overflow hidden

그리고 이것은 λͺ¨λ“  κ²½μš°μ— (Chromeμ—μ„œ) μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν”Œλ ‰μŠ€μ™€ λ„ˆλΉ„/높이λ₯Ό ν˜Όν•©ν•˜λ©΄ μ‹€μ œλ‘œ ν•¨κ»˜ μž‘λ™ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 정말 κΉŒλ‹€λ‘œμ›Œμ§‘λ‹ˆλ‹€.

λͺ¨λ“  10 λŒ“κΈ€

λ‚΄λΆ€ μ»¨ν…Œμ΄λ„ˆ 및 SVG에 λŒ€ν•΄ 100%λ₯Ό μΆ”κ°€ν•˜λŠ” #1157에 λŒ€ν•œ μˆ˜μ •μ€ ν”Œλ ‰μŠ€ μƒμž λ„ˆλΉ„μ—λ„ μž‘λ™ν•˜μ§€λ§Œ λ†’μ΄λŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ·Έλ™μ•ˆ 높이 λ¬Έμ œμ— λŒ€ν•œ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

flex: 1 1 50% 와 같은 λΆ€λͺ¨μ— height: 0 을 λ„£κ³  차트 μ»¨ν…Œμ΄λ„ˆμ— overflow: hidden κ°€ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” 데 μ„±κ³΅ν–ˆμŠ΅λ‹ˆλ‹€.

<div id="parent"> // flex-sized, but height 0
  <div id="chart-container"> // flex 1, overflow hidden, display flex
    <div id="chart"> // flex 1, overflow hidden

그리고 이것은 λͺ¨λ“  κ²½μš°μ— (Chromeμ—μ„œ) μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν”Œλ ‰μŠ€μ™€ λ„ˆλΉ„/높이λ₯Ό ν˜Όν•©ν•˜λ©΄ μ‹€μ œλ‘œ ν•¨κ»˜ μž‘λ™ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 정말 κΉŒλ‹€λ‘œμ›Œμ§‘λ‹ˆλ‹€.

λ‹Ήμ‹ μ˜ 응닡을 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€! 그것은 νš¨κ³Όκ°€ μžˆμ—ˆλ‹€ :)

λ˜ν•œ flexed item μ•„λž˜μ— μžˆλŠ” "chart-container"μ—μ„œ height:100% λ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘λ™ν•˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.

μ–΄λ–€ 이유둜 height:0 이 μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

Chrome(μ΅œμ‹  64.0)μ—μ„œ 앱을 ν…ŒμŠ€νŠΈν•  λ•Œ 높이 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. highchart μ»¨ν…Œμ΄λ„ˆλŠ” λΆ€λͺ¨ μ•ˆμ— λ§žμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 그것은 단지 μ˜€λ²„ν”Œλ‘œ 될 κ²ƒμž…λ‹ˆλ‹€ (슀크둀링과 같지 μ•Šμ§€λ§Œ μƒμœ„ μ»¨ν…Œμ΄λ„ˆλ³΄λ‹€ 컀짐). html의 κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό 같이 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€(.flexed_item은 λ””μŠ€ν”Œλ ˆμ΄κ°€ flex둜 μ„€μ •λœ div의 μžμ‹μž…λ‹ˆλ‹€) -

.flexed_item{ λ„ˆλΉ„: 100%; 높이: 100%;} -> .chart-container{ λ„ˆλΉ„:100%; 높이:80%} -> .highchart

이것은 νŒŒμ΄μ–΄ ν­μŠ€μ—μ„œ 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν¬λ‘¬μ—μ„œλŠ” 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ @lwhorton이 μ–ΈκΈ‰

.flexed_item{ 높이: 0; λ„ˆλΉ„: 100%; ν”Œλ ‰μŠ€: 1 1 100%; λ””μŠ€ν”Œλ ˆμ΄: ν”Œλ ‰μŠ€; }-> .chart-container { flex:1; λ””μŠ€ν”Œλ ˆμ΄:ν”Œλ ‰μŠ€; } -> .ν•˜μ΄μ°¨νŠΈ

그리고 이제 λ§ˆμΉ¨λ‚΄ ( chrome 및 firefox ) λͺ¨λ‘μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

absolutely μœ„μΉ˜ chart-container 와 flex-grow: 1 μžˆλŠ” relatively μœ„μΉ˜ 지정 λΆ€λͺ¨λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 해킹이 ν•„μš”ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ λΈŒλΌμš°μ € κ°„ ν˜Έν™˜μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

<div id="row" style="display:flex">
    <div id="col" style="display:flex; flex-direction: column;">
        <div id="chart-container-outer" style="position:relative; flex-grow:1">
            <div id="chart-container" style="position:absolute; left:0; top: 0; bottom:0; right:0; overflow:hidden"></div>
        </div>
    </div>

    <div id="col sibling" style="display:flex"> // same height
    </div>
</div>

@dabalyan
μ†”λ£¨μ…˜μ„ κ³΅μœ ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.
μœ„μ˜ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λœ 것 κ°™μœΌλ―€λ‘œ μ§€κΈˆμ€ 문제λ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€.
이 문제λ₯Ό λ‹€μ‹œ 보렀면 ν•΄λ‹Ή 사둀에 λŒ€ν•œ μΆ”κ°€ 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”.

μ•ˆλ…•ν•˜μ„Έμš” @maitrivasa μž…λ‹ˆλ‹€ .
https://github.com/highcharts/highcharts/issues/13303 μ—μ„œ λ³„λ„μ˜ 사둀도 λ§Œλ“œμ…¨μŠ΅λ‹ˆλ‹€

μΆ”μ‹ . ν˜Όλ™μ„ μΌμœΌν‚¬ 수 μžˆμœΌλ―€λ‘œ κ·€ν•˜μ˜ 의견과 주제λ₯Ό λ³΅μ œν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

λ―Έμ•ˆ ν•΄μš”. μ§€κΈˆ λ‚΄ κ²Œμ‹œλ¬Όμ„ μ‚­μ œν–ˆμŠ΅λ‹ˆλ‹€

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰