HTML 한 걸음 더(2)

2023. 3. 8. 13:39zerobase/HTML&CSS

728x90

사용자 몰래 값을 전달하는 input 태그의 hidden 속성

    ● 동일한 폼이 여러개 있거나 그 폼을 제출하면서 서버가 알아야할게 있다면 hidden속성 사용함

이모티콘 같은 문자는 svg태그

    ● vector data: 그래픽이 어떤 부분에서 어떤 모양으로 휘어지는지, 어떤 색으로 채워지는지 정보를 가지고 있기 때문에 확대해도 깨지지 않음

    ● bitmap data: 확대를 할 때 이미지가 깨짐

    ● svg는 vector data

i태그의 재활용-fontawesome, bootstrap

    ● cdn가지고 와서 link 태그 안에 넣기

    ● fontawesome, bootstrap에서 원하는 아이콘 찾아서 i태그로 복사 붙여넣기

    ● html을 복사해서 body안에 넣어도 되지만 안에 내용이 무엇을 의미하는지 모르기에 cdn방식을 추천함

head태그를 구성하는 요소들

    ● css파일들 (link)

    ● style

    ● title

    ● meta

    ● favicon: ico

인스타그램 회원가입 레이아웃

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <link rel="stylesheet" href="./reset.css">
    <link rel="stylesheet" href="./register.css">
</head>

<body>
    <div class="wrap">
        <section id="formSection">
            <div class="header">
                <img src="" alt="">
                <p>친구들의 사진과 동영상을 보려면 <br>가입하세요.</p>
                <button>Facebook으로 로그인</button>
            </div>
            <div class="divider">
                <div>
                    <hr>
                </div>
                <span>
                    또는
                </span>
                <div>
                    <hr>
                </div>

            </div>
            <div class="form">
                <input type="text">
                <input type="text">
                <input type="text">
                <input type="text">
                <input type="submit" value="가입">
            </div>
        </section>
    </div>
</body>

</html>
.wrap {
    width: 100vw;
    height: 100vh;

    background-color: whitesmoke;

    display: flex;
    justify-content: center;
    align-items: center;
}

#formSection {
    background-color: white;
    border: 1px solid #c6c6c6;
    max-width: 400px;
    padding: 20px;
}

인스타그램 회원가입 구현

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css">
    <link rel="stylesheet" href="./reset.css">
    <link rel="stylesheet" href="./register.css">
</head>

<body>
    <div class="wrap">
        <section id="formSection">
            <div class="header">
                <img src="https://www.instagram.com/static/images/web/logged_out_wordmark.png/7a252de00b20.png" alt="">
                <p class="heading" style="color : rgb(142,142,142)">친구들의 사진과 동영상을 보려면 가입하세요.</p>
                <button class="facebook">
                    <i class="bi bi-facebook" style="margin-right:1em; font-size:16px;"></i>
                    Facebook으로 로그인</button>
            </div>
            <div class=" divider">
                <div>
                    <hr class="hrstyle">
                </div>
                <div style="height: 100%; display: flex; align-items: center; justify-content: center;">
                    <p style="font-size: 12px; color:gray; font-weight:bold;">
                        또는
                    </p>
                </div>
                <div>
                    <hr class="hrstyle">
                </div>

            </div>
            <form action="" class="form">
                <input type="text" class="input-style" placeholder="휴대폰 번호 또는 이메일 주소">
                <input type="text" class="input-style" placeholder="성명">
                <input type="text" class="input-style" placeholder="사용자 이름">
                <input type="text" class="input-style" placeholder="비밀번호">
                <input type="submit" value="가입" class="submit-style">
            </form>
        </section>
    </div>
</body>

</html>
.wrap {
    width: 100vw;
    height: 100vh;

    background-color: whitesmoke;

    display: flex;
    justify-content: center;
    align-items: center;
}

#formSection {
    background-color: white;
    border: 1px solid #c6c6c6;
    max-width: 330px;
    min-width: 330px;
    padding: 40px 20px;
    text-align: center;
}

.header {
    display: flex;
    flex-direction: column;
    align-items: center;

    width: 230px;
    margin: 0 auto;
}

.heading {
    font-weight: bold;
    font-size: 17px;
    text-align: center;
    margin-top: 20px;
    margin-bottom: 20px;
}

.facebook {
    background-color: #0095f6;
    color: white;
    font-weight: bold;
    border: 1px solid #0095f6;
    width: 100%;
    border-radius: 4px;
    font-size: 14px;
    padding: 5px 9px;
}

.divider {
    display: grid;
    width: 230px;
    margin: 0 auto;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 1fr;
    margin-top: 20px;
    margin-bottom: 20px;
}

.hrstyle {
    height: 1px;
    border: none;
    background-color: lightgray;
}

.form {
    width: 230px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.input-style {
    padding: 9px 0px 7px 8px;
    background-color: rgb(250, 250, 250);
    color: rgb(38, 38, 38);
    font-size: 16px;
    margin-bottom: 10px;
    border: 1px solid lightgray;
}

.input-style::placeholder {
    font-size: 12px;
}

input:active,
input:focus {
    outline: none;
    border: 1px solid gray;
}

.submit-style {
    background-color: cornflowerblue;
    font-size: 16px;
    color: white;
    font-weight: bold;
    border: none;
    padding: 9px 0px 7px 0px;
}

유효성 검사

    ● 사용자가 입력창에 입력을 하였는가를 체크하고 다 채워진 후에 가입버튼이 클릭되게 하는 것

    ● 대부분의 유효성검사는 javascript로 함

    ● 간단한 검사는 html에서도 가능 (required를 사용함)

    ● minlegth, maxlegth를 설정해두면 글자수 제한가능

'zerobase > HTML&CSS' 카테고리의 다른 글

에어비앤비 클론코딩  (0) 2023.03.12
CSS 한 걸음 더  (0) 2023.03.09
HTML 한 걸음 더(1)  (2) 2023.03.08
인스타그램 피드 레이아웃  (0) 2023.03.07
CSS 레이아웃  (0) 2023.03.06