์•ž์„œ ์†Œ๊ฐœ ํ–ˆ๋˜ UserInfo๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

๐Ÿฅ ๋งˆ์น˜๋Š” ๊ธ€์— ๋ฐํ˜”๋˜ ๊ฒƒ๊ณผ ๊ฐ™์ด ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ํŽ˜์ด์ง€ / ์ฃผ์†Œ์— ๋Œ€ํ•œ
๊ฐœ๋…์ด ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜๊ณ  ๋งŒ๋“ค ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

1. index. html ํŒŒ์ผ ์ƒ์„ฑ

๊ธฐ๋ณธ์ ์œผ๋กœ html ํŒŒ์ผ ํ•˜๋‚˜๋ฅผ ์ƒ์„ฑ ํ•ด๋ด…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” font-awesome์˜ ์•„์ด์ฝ˜๋“ค์„
๊ฐ€์ ธ๋‹ค ์“ธ ์ƒ๊ฐ์ด๋‹ˆ ์ถ”๊ฐ€๋กœ ๋“ฑ๋กํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ cdn์„ ๊ฐ€์ง€๊ณ  ์จ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ ๊ฐ€์žฅ ํŽธํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์ด ๋ฐฉ๋ฒ•์„ ์ฃผ๋กœ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ตฌ๊ธ€์— fontawesome cdn ์ด๋ผ๊ณ  ๊ฒ€์ƒ‰์„ ํ•ด๋ด…๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰์„ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œน๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ƒ๋‹จ์˜ ํ™ˆํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€์ค๋‹ˆ๋‹ค.
ํ•ด๋‹น ์ฃผ์†Œ๋Š” https://cdnjs.com/libraries/font-awesome
๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ƒ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๊ฐ€์ ธ์™€์ค๋‹ˆ๋‹ค.

๊ฐ€์ ธ์˜จ cdn์„ html ์˜ head ๋ถ€๋ถ„์— ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•ด์ค๋‹ˆ๋‹ค

<!DOCTYPE html>
<html lang="ko">
<head>
  	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css" integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ==" crossorigin="anonymous" referrerpolicy="no-referrer">
</head>

์ด๋ ‡๊ฒŒ ํ•ด์ฃผ์‹œ๋ฉด ์ผ๋‹จ ์•„์ด์ฝ˜์„ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š” ๋‹จ๊ณ„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” css ์™€ javascript๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ์“ฐ์ง€ ์•Š๊ณ  ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ
์“ฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

๊ณ„์ธต ๊ตฌ๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒ๋ฅผ ์ž˜ ํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ index.html์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


2. ๊ณตํ†ต์ ์œผ๋กœ ์“ฐ์ผ css ์š”์†Œ๋ฅผ ๊ด€๋ฆฌ

์ด ๋ง์€ ์˜ˆ๋ฅผ ๋“ค์–ด ์ „์ฒด์ ์ธ ์š”์†Œ์˜ ํฐํŠธ๋‚˜ box-sizing, li ๋‚˜ ul์˜ list-style
์ด๋ผ๋˜์ง€ ๊ธฐ๋ณธ์ ์ธ margin ๊ฐ’๋“ฑ์„ ๋ฏธ๋ฆฌ ์„ ์–ธํ•ด์„œ ์“ฐ๋Š” ๊ฒƒ์ธ๋ฐ
์ด ๊ฒƒ์„ ์šฐ๋ฆฌ๋Š” common.css ๋กœ ๊ด€๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค.


*::-webkit-scrollbar {
    width: 5px; // ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์Šคํฌ๋กค๋ฐ”์˜ ๊ธฐ๋ณธ ๋„ˆ๋น„๋ฅผ ์žก์•„์ค€๋‹ค
} 

*::-webkit-scrollbar-thumb {
    background-color: #dbdbdb;  // ์Šคํฌ๋กค๋ฐ”์˜ ๋ชธํ†ต๋ถ€๋ถ„์˜ ๋ฐฐ๊ฒฝ์ƒ‰๊ณผ ํ…Œ๋‘๋ฆฌ์˜ ์›ํ˜•์„ ์žก์•„์ค€๋‹ค.
    border-radius: 5px;
}

.container {
    position: relative;
    margin: 50px auto;	 //์šฐ๋ฆฌ์˜ ์ฝ”๋“œ๋Š” container๋ผ๋Š” div์•ˆ์— ์ „๋ถ€ ๋“ค์–ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ์†์„ฑ์œผ๋กœ ๋นผ์„œ ๊ด€๋ฆฌํ•œ๋‹ค.
    border: 2px solid #dbdbdb;
    width: 600px;
    height: 800px;
    background-color: white;
    overflow: hidden;
}

input, textarea {
    border: none;
    padding: 5px;		// ๊ธฐ๋ณธ์ ์œผ๋กœ border๊ฐ€ ์žกํ˜€์žˆ๊ธฐ ๋•Œ๋ฌธ์— noneํ•ด์ค€๋‹ค
    outline: none;    
}

input:focus, textarea {
    background-color: #fafafa;
}

input:-webkit-autofill { -webkit-box-shadow: 0 0 0 30px #fff inset ; -webkit-text-fill-color: #000; }
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active { transition: background-color 5000s ease-in-out 0s; }

// ์œ„์˜ ์ฝ”๋“œ ๊ฐ™์€๊ฒฝ์šฐ ์ด๋ฒˆ์— ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ์ž๋™์™„์„ฑ๊ธฐ๋Šฅ์ด ๋ธŒ๋ผ์šฐ์ €์— ์ผœ์ ธ์žˆ์„๊ฒฝ์šฐ์— ์ž๋™์™„์„ฑ์„ ํ†ตํ•ด 
// input๊ฐ’์— ๊ฐ’์„ ๋„ฃ์„ ๊ฒฝ์šฐ์— ์šฐ๋ฆฌ๊ฐ€ ์ง€์ •ํ•ด๋†“์€ ๋ฐฐ๊ฒฝ์ƒ‰์ด ์žกํžˆ์งˆ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๊ณ 
// ๊ทธ ํ•ด๋‹ต์œผ๋กœ ๋‹ค์Œ๊ณผ๊ฐ™์€ ์ฝ”๋“œ๋กœ ์ˆ˜์ •์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ์œ„์˜ ์ฝ”๋“œ๋‚ด์šฉ์œผ๋กœ ๋ณด๋ฉด
// ๋’ท๋ฐฐ๊ฒฝ์˜ ์ƒ‰์„ ํŠธ๋žœ์ง€์…˜์„ ํ†ตํ•ด 5000์ดˆ ์ดํ›„์— ์ƒ‰์ด ๋ณ€ํ•˜๋„๋ก ํ•ด๋‘ ์œผ๋กœ์จ
์•„์˜ˆ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋กœ๊ทธ์ธ์ด๋‚˜ ๊ธ€์„ ์“ธ๋•Œ ์˜ค๋ž˜ ๋จธ๋ฌผ์ง€ ์•Š๋Š”๋‹ค ์ƒ๊ฐ์ด
๋“ค๊ธฐ๋•Œ๋ฌธ์— ๊ดœ์ฐฎ์€ ์„ ํƒ์ด์—ˆ๋˜๊ฒƒ ๊ฐ™๋‹ค.

button {
    border: 1px solid #dbdbdb;
    padding: 5px 10px;
    background-color: #fff;
    font-weight: 600;
    cursor: pointer;
}

button:hover {
    background-color: #fafafa;
}

button:active {
    background-color: #f0f0f0;
}

//์œ„์˜ ๋ฒ„ํŠผ ์‚ผํ˜•์ œ css๋Š”
//๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฒ„ํŠผ์— ํ•ญ์ƒ ๊ณตํ†ต์ ์œผ๋กœ ์ฃผ๋˜ ์†์„ฑ์„
//๋ฏธ๋ฆฌ common ์—์„œ ์ •์˜ํ•˜๊ณ 
//์“ฐ๊ธฐ ์œ„ํ•ด common์— ๋‘์—ˆ๋‹ค.

3. index.html userInfo ์ฝ”๋“œ

	<div class="container">
        <main class="main-container ">
            <header class="main-header">
                <h1 class="main-title">User Information</h1>
            </header>
            <div class="info-photo">
                <form class="photo-form">
                    <input type="file" class="photo-file" name="file">
                </form>
                <img src="">
                <div class="change-nav">
                    ํด๋ฆญํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ
                </div>
            </div>
            <div class="info-main">
                <h1 class="info-title">
                    About Me
                    <button class="modify-button m-aboutme">
                        <i class="fa-regular fa-pen-to-square"></i>
                    </button>
                    <button class="modify-button s-aboutme button-hidden">
                        <i class="fa-regular fa-square-check"></i>
                    </button>
                </h1>
                <div class="info-detail">
                    <div class="detail-left">
                        <div class="info-input-container">
                            <label for="name">Name</label>
                            <input type="text" id="name" class="info-input" disabled>
                        </div>
                        <div class="info-input-container">
                            <label for="email">E-Mail</label>
                            <input type="text" id="email" class="info-input" disabled>
                        </div>
                    </div>
                    <div class="detail-right">
                        <div class="info-input-container">
                            <label for="phone">Phone</label>
                            <input type="text" id="phone" class="info-input" disabled>
                        </div>
                        <div class="info-input-container">
                            <label for="github">GitHub</label>
                            <input type="text" id="github" class="info-input" disabled>
                        </div>
                    </div>
                </div>
                <div class="info-introduce">
                    <h1 class="info-title">
                        Self Introduction
                        <button class="modify-button m-introduce">
                            <i class="fa-regular fa-pen-to-square"></i>
                        </button>
                        <button class="modify-button s-introduce button-hidden">
                            <i class="fa-regular fa-square-check"></i>
                        </button>
                    </h1>
                    <textarea class="introduce-input" disabled></textarea>
                </div>
            </div>
        </main>
    </div>

์œ„์˜ ์ฝ”๋“œ๋Š” ์•„์ฃผ ๋‹จ์ˆœํ•œ html ์ฝ”๋“œ์ด๊ณ  ๋ฐ˜์‘ํ˜• ๊ฐ™์€๊ฒƒ์œผ๋กœ ์งœ์—ฌ์ง€์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.
๋‹ค๋งŒ ๋ด์•ผํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์ตœ์ƒ๋‹จ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ
form tag ๋ฅผ ์ด์šฉํ•ด์„œ input type์ด file์ธ ์ž์‹์„ ๊ฐ์‹ธ๊ณ  ,
imgํƒœ๊ทธ๋ฅผ ๋”ฐ๋กœ๋‘์–ด ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ด๋‘๊ฒŒ ๋œ๋‹ค. ์ถ”ํ›„์— ์ € src๋กœ ๊ฒฝ๋กœ๊ฐ€ ๋“ค์–ด๊ฐˆ ์˜ˆ์ •์ด๋‹ค.

๊ฒฐ๊ตญ! ์ด๋ฏธ์ง€๊ฐ€ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ณณ์€ img ํƒœ๊ทธ์ด๊ณ  ํŒŒ์ผ์„ ๋ฐ”๊พธ๊ธฐ์œ„ํ•œ ๋„๊ตฌ๋Š”
input type file๋กœ ์ดํ•ดํ•˜๋ฉด ํŽธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๋งˆ์น˜๋ฉฐ...

๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ์ œ์ž‘ํ•˜๊ธฐ ์•ž์„œ
์œ„์˜ html์— ๋Œ€ํ•œ css์™€ js๋ถ€๋ถ„๋“ค์„ ์•Œ์•„๋ณด๊ณ 
์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ์ง„ํ–‰ํ•˜๋„๋ก ํ• ๊ฒŒ์šฉ

profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ค€๋น„์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€