μ΅μ Gatsbyκ°μλ λ΄ μ¬μ΄νΈ μ€ νλμμ λ΄ λ μ΄μμμ΄ μΆκ° divλ‘ λνλμ΄ μμμ λ°κ²¬νμ΅λλ€.
<div style="outline:none" tabindex="-1" role="group">Normal content</div>
https://next.gatsbyjs.org/μμλμ΄ λμμ λ³Ό μ μμ΅λλ€.
μ κ·Έλ΄κΉμ?
@ reach / routerλ νλ©΄ νλ κΈ°κ° μ¬μ΄νΈλ₯Ό μ¬μ©ν μ μλλ‘νλ μΌνμΌλ‘ ν¬μ»€μ€λ₯Ό μλμΌλ‘ κ΄λ¦¬ ν μ ββμλλ‘ μΆκ°ν©λλ€.
λλ μ΄κ²μ΄ λ§€μ° μ΄λ¦¬μμ κ²μ μκ³ μμ§λ§ λν divκ° νλλ§ μμΌλ©΄ λ μ’μ κ²μ΄λΌκ³ μκ°ν©λλ€.
λλ¬ λ²μ divμ λν΄ νΉλ³ν κ²μ μλ κ² κ°μ΅λλ€. λμ html μμ±μ μΆκ°νμ¬ λλ¬ λ²μ divλ₯Ό λν id="___gatsby"
divμ λ³ν© ν μ μμ΅λκΉ?
μνκΉκ²λμ΄ λμ λ³ν©νλ κ²μ λΆκ°λ₯ν©λλ€. μλ§λ Reactκ° λ§μ΄νΈ λ divλ₯Ό μ¬μ¬μ©νμ¬ @ reach / routerλ‘ μμ ν μ μμ΅λλ€.
height: 100%
λ₯Ό μΆκ°ν΄μΌνλλ° class
λλ id
κ° μμ΅λλ€. μ±μμ μ°Ύμ 보μμ§λ§ μ°Ύμ μ μμ΅λλ€. id
λ₯Ό μ΄λ»κ² μΆκ° ν μ μλμ§ λ§μν΄ μ£Όμκ² μ΅λκΉ?
@colmtuite κ·Έκ²μ μ΄μμ μΈ μλμμνμ§λ§μ΄ κ·Έλ£ΉνλΆν° div
μ μ μΌν μμ μΈ <div id="___gatsby">
, λΉμ μ λ¨μν ν΅ν΄ νκ²ν
ν μ μμ΅λλ€
#___gatsby > * {
height: 100%;
}
μ λ°μ΄νΈ : μ½κ° λ λμ ν΄κ²°μ± μ @ironblockμ΄ μ μνλ³΄λ€ κ΅¬μ²΄μ μΈ μ νκΈ°λ₯Ό μ¬κΈ°μμ μ¬μ©νλ κ² μ λλ€.
div[role="group"][tabindex] {
height: 100%;
}
μ
λ°μ΄νΈ 2 : 2018 λ
μλ κ·Έλ μ§ μμμ§λ§ μμ¦μλ λ¬Έμ μ div
IDκ° gatsby-focus-wrapper
μ
λλ€. λ°λΌμ μ νκΈ°λ ν¨μ¬ λ λͺ¨νΈ ν μ μμ΅λλ€.
#gatsby-focus-wrapper {
height: 100%;
}
κ΄λ ¨ λ¬Έμ : https://github.com/reach/router/issues/63
λλ κ°μΈμ μΌλ‘ μ΄κ²μ΄ μλͺ»λ κ²μ΄λ©° μ€νμΌμ΄ μ§μ λ κ΅¬μ± μμλ₯Ό μ¬μ©νμ§ μλ μ¬λλ€μκ² λ¬Έμ μ μμΈμ΄λΌκ³ μκ°ν©λλ€.
@kaishin λΉμ μ΄ μλ―Ένλ λ°λ₯Ό νμ₯ ν μ μμ΅λκΉ? μ€ν΄κ° μ νν 무μμ λκΉ?
@janosh λλ λλ¬ / λΌμ°ν° κ΄λ¦¬μκ°μ΄ λνΌ divλ₯Ό λΉνμ±ννκ±°λ μ΅μν μ¬μ©μ μ μνλ λ°©λ²μ μ 곡νμ§ μκΈ°λ‘ κ²°μ νμ΅λλ€. μ λ μλ§¨ν± HTMLμ ν° μ§μ§μμ΄λ©°μ΄ λ¬Έμ μ μ§λ©΄νκΈ° μ μ κ±°μ μμ§ λͺ»νλ λΌμ΄λΈλ¬λ¦¬μ λν νν¬ μν λ§νλ λ λ€λ₯Έ λνΌ divλ₯Ό μ²λ¦¬ν΄μΌνλ€λ μ μ μ€λ§νμ΅λλ€.
λλ μ§κΈ λΉμ μ μμ μ μ΄ν΄νκ³ λ§€μ° λμν©λλ€. λΉμ λ―Έμ λ§ν¬ μ
μ λν΄μλ λκ°μ΄ λλλλ€.
λΉμ μ λκΈ λμ νΌλ μ€λ¬μ μ΄μ
... μ€νμΌμ΄ μ§μ λ κ΅¬μ± μμλ₯Ό μ¬μ©νμ§ μλ μ¬λλ€μ λ¬Έμ μ μμΈμ λλ€.
styled-components
μ¬μ©νλ μ¬λλ€μ΄ μ μν₯μλ°μ§ μλμ§ λͺ¨λ₯΄κ² μ΅λλ€.
μ΄ λ¬Έμ κ° λ무 λΆν©λ¦¬ν ν΄κ²°μ± μΌλ‘ μ’ κ²°λμλ€κ³ λ―Ώμ μ μμ΅λλ€.
@ danielo515 κΈμ, λ¬Έμ λ μ’ μμ±κ³Ό κ΄λ ¨μ΄ μμΌλ―λ‘ λ€μ μ΄ν΄ν μ μμ΅λλ€.
μ΄ μ£Όμμ CSS ν΄κ²° λ°©λ²μ μ 곡ν©λλ€ : https://github.com/reach/router/issues/63#issuecomment -428050999
μ€νμΌ κ΅¬μ± μμλ₯Ό μ¬μ©νλ μ¬λλ€μ΄ μν₯μλ°μ§ μλ μ΄μ λ₯Ό μ μ μμ΅λλ€.
@janosh μ΄ νΈλ₯Ό μ° μ΄νλ‘ μ€νμΌλ§μ μλ¬΄λ° λ¬Έμ κ° μμμ΅λλ€. κ·Έλμ μ¬κΈ°μ μ€μ λ‘ λ¬Έμ λ 무μμ λκΉ?
@LekoArts μΆ©λΆν μ½ν
μΈ κ°μλ κ²½μ°μλ μ°½ νλ¨μ λ°λ₯ κΈμ μ μ§νκΈ° μν΄ CSS μ루μ
μ μ€λ¨νλ styled-components
νκ³ CSS μ νκΈ°λ₯Ό ν΄κ²°νλ λ°©λ²μ μκ³ μλ€κ³ ν΄μ λνΌ div
λ μ΄μ μλ―Έ λ‘ μ μ΄μ§ μμ΅λλ€.
κΈ°λ³Έμ μΌλ‘ λ³Έλ¬Έμ μ무 κ³³μ΄λ ν΄λ¦ ν λ€μ Tab ν€λ₯Ό λλ₯΄λ©΄ κ°μ₯ κ°κΉμ΄ μ΄μ μ λ§μΆ μμλ μμμ μ΄μ μ΄ λ§μΆ°μ§λλ€. κ·Έλ¬λμ΄ λνΌλ λ³Έλ¬Έμ ν΄λ¦νλ©΄ λνΌμ μ΄μ μ΄ λ§μΆ°μ Έ ν μμκ° μμ κ·Όμ²κ° μλ μ²μμΌλ‘ μ¬μ€μ λ¨μ μλ―Έν©λλ€. μ΄κ²μ΄ μ κ·Όμ± λ¬Έμ μΈμ§ νμ€νμ§ μμ§λ§ μμ κ·Όμ²λ₯Ό ν΄λ¦ ν λ€μ νμ λλ¬ μ΄μ μ λ§μΆλ €κ³ ν λ λ°κ²¬ ν κ²μ λλ€.
@colmtuite height : 100vh;
νΈμ λ΄μ κ°κΈ°
λλ νλ μ€λ‘
div[role="group"][tabindex] {
display: flex;
flex-direction: column;
flex-grow: 1;
}
@Schmerb 100vhλ₯Ό CSS μ μ© ν΄λμ€λ‘ μ€μ νλ κ²μ΄ μμ± λ μ½λλ₯Ό μ‘°μνλ κ²λ³΄λ€ λ νΈλ¦¬ν λ°©λ²μ΄λΌκ³ μκ°ν©λλ€.
λΏ‘ λΉ΅λ¨
λΆλͺ
ν νμ΄μΌνλλ° ... 100vh
μ±μ΄ λ·°ν¬νΈμ κ°μ ν¬κΈ°μ κ³ μ λ λμ΄λ₯Ό κ°κΈ°λ₯Ό μνλ€λ©΄ μ’μ΅λλ€ ...
κ·Έλ¬λ μ¬μ© κ°λ₯ν λͺ¨λ 곡κ°μ μ°¨μ§νκΈ° μν΄ μ±μ΄ νμν κ²½μ°
(λ³Έμ§μ μΌλ‘ height: 100%
κ°μ§ λͺ¨λ μ¬λμ΄ μλνμ§λ§ λΆλͺ¨κ° μ ν΄μ§ ν€κ° μκΈ° λλ¬Έμ μ€ν¨ ν κ°λ₯μ±μ΄ λμ΅λλ€)
κ·Έλ° λ€μ Flexbox
ꡬμΆν©λλ€.
λ΄ κ΅¬μ²΄μ μΈ μ¬λ‘λ₯Ό λ λͺ
νννκΈ° μν΄ λ μλμ μ€ν¬λ¦° μ· :
νλμ / μ£Όν©μ ν
λ리λ /page
κ΅¬μ± μμμ
λλ€. Gatsbyκ° λ°°μΉνλ μμμ 'νν¬'divλ 곡백μ
λλ€. height: 100vh
νλ©΄ κ³΅λ°±μ΄ λ·°ν¬νΈμ 맨 μλλ‘ νμ₯λλ κ²μ λ³Ό μ μμ΅λλ€.
μ¬μ© flex
μ£Όμ μΆμΌλ‘νλ (μ ν flex-direction: column
λμ κΈ°λ³Έμ flex-direction: row
)κ³Ό μ¬μ°μ νλ μ€λ μ±μ₯μ, λΉμ μ λ§€μ° μ λ³Ό μ¬μ© κ°λ₯ν λͺ¨λ 곡κ°μ μ°¨μ§ ν μ μμ΅λλ€.
height: 100vh;
display: flex;
flex-direction: column;
flex-grow: 1;
λ΄κ° 보λ λͺ¨λ κ²μ μ‘΄μ¬νμ§ λ§μμΌ ν λ¬Έμ μ λν ν΄κ²° λ°©λ²μ
λλ€.
λμ λΈλΌμ°μ κ° Flexboxλ₯Ό μ§μνμ§ μμΌλ©΄ μ΄λ»κ²ν©λκΉ?
μ€ν¬λ‘€μ΄ νμν λ ν¬λ‘¬μ μ΄μ€ μ€ν¬λ‘€λ°κ° νμλλ`height : 100vh 'λ₯Ό μ€μ ν λ λ²κ·Έλ λ°μνμ΅λλ€.
λΉμ·ν λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ height: 100vh;
μ¬μ©νλ κ²λ³΄λ€ min-height: 100vh;
λ₯Ό λν Layout
κ΅¬μ± μμμ μΆκ°νλ κ²μ
λλ€. κ·Έκ²μ μ€μ κ³Ό κ°μ κ²κ³Ό κ²°ν©νλ©΄ :
grid-template-areas: 'Header' 'Content' 'Footer';
grid-template-rows: auto 1fr auto;
min-height: 100vh;
μ΄μ λν κ΅¬μ± μμλ νμ _ μ΅μν _ λ·° ν¬νΈμ λμ΄κ°λμ§λ§ μ½ν μΈ κ° μ€ν¬λ‘€μ΄ νμν λ§νΌ μΆ©λΆν ν¬λ©΄ λ°λ₯ κΈ μμκ° νλ©΄ νλ¨μ μ μ§λλλ‘ νΈμλ©λλ€.
κ·Έλ¬λ (ν¬μ§ λ§!) μνκΉκ²λ 그리λλ νλ μ€ λ°μ€λ³΄λ€ λΈλΌμ°μ μ§μμ΄ μ μ§ λ§ κ°μΈμ μΌλ‘λ 'ν΄ν€'λλμ΄ λν©λλ€.
νλ μ€ μ§μμνμ§ μλ λ° λμμ΄λλ λλ΅μ μλμ§λ§ νμ΄μ§ νλ¨μ λ°λ₯ κΈμ λΆμ΄λ κΉλν λ°©λ²μΌκΉμ?
λΆννλ λ¬Έμ μ μ½λ μ€μ΄ μ κ·Όμ±μ λ€λ£¨μ§ λ§ μ κ·Όμ± μ€λ₯λ λ°μν©λλ€. https://github.com/reach/router/issues/257μ λ¬Έμ λ₯Ό κΈ°λ‘νμ΅λλ€
100vh
λ Android λΈλΌμ°μ μ λ€λ₯Έ μλ―Έ μΌ μ μμ΅λλ€.
λΉ λ₯Έ μΈν°λ· κ²μμμ μμ κ³΅κ° : https://stackoverflow.com/q/30148956
μ΄λ€ μ΄μ λ‘ div[role="group"][tabindex]
λ ν΄λΉ divμ μ΄λ€ ββμ€νμΌλ μ μ©νμ§ μμ΅λλ€. ID #gatsby-focus-wrapper
μ μ§μ ν΄μΌνμ΅λλ€.
λμ΄ λ¬Έμ μ λν ν©λ¦¬μ μΈ ν΄κ²°μ± μ΄ μμ§ μμ΅λκΉ?
κ°μ₯ μ μ©ν λκΈ
@janosh λλ λλ¬ / λΌμ°ν° κ΄λ¦¬μκ°μ΄ λνΌ divλ₯Ό λΉνμ±ννκ±°λ μ΅μν μ¬μ©μ μ μνλ λ°©λ²μ μ 곡νμ§ μκΈ°λ‘ κ²°μ νμ΅λλ€. μ λ μλ§¨ν± HTMLμ ν° μ§μ§μμ΄λ©°μ΄ λ¬Έμ μ μ§λ©΄νκΈ° μ μ κ±°μ μμ§ λͺ»νλ λΌμ΄λΈλ¬λ¦¬μ λν νν¬ μν λ§νλ λ λ€λ₯Έ λνΌ divλ₯Ό μ²λ¦¬ν΄μΌνλ€λ μ μ μ€λ§νμ΅λλ€.