April 21, 2021
κΈ°μ‘΄μ λ§λ€μλ AppLayout.js νμΌμμ ν΄μνκ·Έλ₯Ό κ²μν μ μλ μΈν μ°½μ λ£μ΄ μ£Όμλ€.
import React, { useState } from 'react'
import PropTypes from 'prop-types'
import Link from 'next/Link'
import { Menu, Input } from 'antd'
const AppLayout = ({ children }) => {
return (
<div>
<Menu mode="horizontal">
<Menu.Item>
<Link href="/">
<a>λ
Έλλ²λ</a>
</Link>
</Menu.Item>
<Menu.Item>
<Link href="/profile">
<a>νλ‘ν</a>
</Link>
</Menu.Item>
<Menu.Item>
<Input.Search enterButton style={{ verticalAlign: 'middle' }} />
</Menu.Item>
<Menu.Item>
<Link href="/signup">
<a>νμκ°μ
</a>
</Link>
</Menu.Item>
</Menu>
{children}
</div>
)
}
AppLayout.propTypes = {
children: PropTypes.node.isRequired,
}
export default AppLayout
https://ant.design/components/input/
곡μ μ¬μ΄νΈμμ μ°Ύμλ³΄κ³ μ μ©ν μ μλ€. κ·Έλ κ² νλ€ λ³΄λ©΄ μμλ μ λ ¬μ΄ λ§μ§ μμ μλ μλλ°, μ΄λλ inline style μ μ μ©ν΄μ
<Menu.Item>
<Input.Search enterButton style={{ verticalAlign: 'middle' }} />
</Menu.Item>
μ΄λ° μμΌλ‘ μ½λλ₯Ό μμ±ν΄ μ£Όλ©΄ μΈλ‘λ‘ κ°μ΄λ° μ λ ¬μ λ§μΆ μ μμλ€.
ant design μ λ°μν μΉ μ¬μ΄νΈ μ μμ μν 그리λ μμ€ν μ κ°μΆκ³ μλ€. μ΄λ₯Ό μν΄μλ λ¨Όμ ,
import { Menu, Input, Row, Col } from 'antd'
λ°μνμ μν΄ Row μ Col μ import ν΄μ£Όμ΄μΌ νλ€.
βλ°μνμ μν μμΉβμ λ€μκ³Ό κ°λ€.
- xs : λͺ¨λ°μΌ
- sm : νλΈλ¦Ώ
- md : μμ λ°μ€ν¬ν
곡μ λ¬Έμ μ¬μ΄νΈ : https://ant.design/components/grid/
<Row gutter={8}>
<Col xs={24} md={6}>
μΌμͺ½ λ©λ΄
</Col>
<Col xs={24} md={12}>
{children}
</Col>
<Col xs={24} md={6}>
<a
href="https://dev-seolleung2.netlify.app/"
target="_blank"
rel="noreferrer noopener"
>
Made by Kwangmook
</a>
</Col>
</Row>
λ¨Όμ Row λ₯Ό μ μΈν΄ μ£Όμκ³ , κ·Έ μμ Col μ΄ μΈ κ° λ€μ΄κ° μλ νν μ΄λ€.
24λΌλ μ«μλ 2, 3, 4, 6, 8, 12 κ°μ λ€μν μ«μλ‘ λ±λΆνκΈ° μ’μ μ«μμ΄κΈ°μ μ€νΈ λμμΈμμ μ±νν κ±° κ°λ€.
<Col xs={24} md={6}>
μΌμͺ½ λ©λ΄
</Col>
λ°λ‘ μ μ½λμ xs 24 λ κ·Έλ¬λκΉ λͺ¨λ°μΌμΌ λλ 24μΉΈ (ν μ€) μ λ€ μ°¨μ§νλ€λ μλ―Έκ° λλ€.
μ¦ νλ©΄ 100%λ₯Ό λ€ μ¬μ©νλ€.
xs μΌ λ μΈ Col λͺ¨λκ° 24 λ₯Ό μ°¨μ§νκΈ° λλ¬Έμ μ»¬λΌ μΈ κ°κ° μ€νμ²λΌ μμΈ ννλ‘ λ³΄μ¬μ§κ² λλ€.
νμ§λ§, md (μμ λ°μ€ν¬ν) μ¬μ΄μ¦ μΌ λλ 첫λ²μ§Έ Col μ 6/24 μ¦ 25% λ₯Ό μ°¨μ§νκ³ ,
λλ²μ§Έ Col μ 12/24, 50% λ₯Ό μ°¨μ§νλ©°, μΈλ²μ§Έ Col λν 25% λ₯Ό μ°¨μ§νλ€.
6 + 12 + 6 = 24 μ΄κ³ λͺ¨λ°μΌ (xs) μμλ μΈλ‘ μ€νννλ‘ λ°°μΉλμλ Col μ΄ md μ¬μ΄μ¦μΌ λλ κ°λ‘λ‘ ν μ€μ λ°°μΉλκ² λλ€!
μ½κ² λ§ν΄μ ν©μ΄ 24 μ΄νμ¬μΌ κ°λ‘λ‘ μ« λμ¬ μ μκ² λλ€.
미리 μ μ©ν μ΄λ―Έμ§λ₯Ό 첨λΆνμ§λ§, gutter λ₯Ό μ μ©νμ§ μμμ λλ μ»¬λΌ μ¬μ΄μ κ°κ²© (padding) μ΄ 0 μ΄μκΈ° λλ¬Έμ
컬λΌλ€μ΄ λ€λ₯λ€λ₯ λΆμ΄ μκ² λμ΄ λ²λ¦°λ€.
λ°λ‘ μ΄ μ»¬λΌ μ¬μ΄μ κ°κ²©μ μ£ΌκΈ° μν΄ Row μ gutter μμ±μ λ£μ΄ μ€λ€.
<Row gutter={8}>
<Col xs={24} md={6}>
μΌμͺ½ λ©λ΄
</Col>
<Col xs={24} md={12}>
{children}
</Col>
<Col xs={24} md={6}>
<a
href="https://dev-seolleung2.netlify.app/"
target="_blank"
rel="noreferrer noopener"
>
Made by Kwangmook
</a>
</Col>
</Row>
gutter 8 μ λ£μ΄μ£Όλ©΄ μμ μ΄λ―Έμ§μ κ°μ΄ μ’ 4px μ° 4px ν©μ΄ 8px λ‘ κ°κ²©μ λμ μ€ μ μλ€.
μΈλ²μ§Έ Col μμ target=β_blankβ μμ±μ μ μλ― λ§ν¬λ₯Ό ν΄λ¦νμ λ μ νμ΄μ§μμ λμΈ μ μκ² νλ μμ±μ΄λ€.
νμ§λ§ μ΄λ 보μ μνμ λΆλ¬ μ¨λ€.
μλνλ©΄, λ€λ₯Έ κ³³μΌλ‘ κ°λ λ§ν¬λ₯Ό ν΄λ¦νλ©΄ κ°κ³ μ νλ μΉ μ¬μ΄νΈλ μΉ μ¬μ΄νΈμμ λ§μ§λ§ μμΉμ URL μ referrer ν€λλ‘ λ°λλ€.
κ·Έλ°λ° μ΄ URL μλ μΈμ , ν ν°μ΄λ μ¬μ©μ ID μ κ°μ λ―Όκ°ν λ°μ΄ν°κ° ν¬ν¨λ μλ μκΈ° λλ¬Έμ λ ΈμΆνλ©΄ μλλ€.
μ΄λ₯Ό λ§κΈ° μν΄μ Referrer-Policy ν€λλ₯Ό no-referrer λ‘ μ€μ νκ² λμ§λ§
μ¬κΈ°μμλ target μμ±μ μ§μ ν΄ μ€κ³Ό λμμ,
rel=βnoreferrer noopenerβ μμ±μ μ§μ ν΄ μ€μ ν΅ν΄ 보μ μνμ μλ°©ν μ μλ€.