[WIL]Web開発総合クラス第1週


今まで、勉強の中の1つの体得は総括して私に理解しやすいことです.他の人から見れば、分かりやすく、整理しにくいですが、私にとっても整理しやすいです.

🦧HTMLとCSSの概念


🔥HTML(Hyper Text Markup Language)
  • <>を使用して領域とテキストを表すコードをマークすることで、スケルトンとして機能します.
  • HTMLドキュメントでは、<style></style>タグを使用して基本的な修飾を行うことができます.
    問題は、装飾が必要なものが多くなると、HTMLドキュメントがごちゃごちゃになり、汚れたパスタコードのようになります.(実力は足りないが)
  • 親子構造なので、「誰が誰の中にいるか」を理解するには、コードに貼り付けても、コードの構造を整理していなければ、すぐに整理しなければなりません.
    位置決め領域の後、Ctrl + Alt + lを押して並べ替え、tabキーを押してインデントする
  • 🔥 CSS(Cascading Style Sheets)
    キャプチャされた領域を
  • HTMLで装飾し、前述したスタイルラベルの要素を入力すればよい.
  • CSSファイルの作成は、コードを入力するだけでページを飾るわけではないことに注意してください.HTML文書<head></head>に次のコードを入力してください.<link rel="stylesheet" type="text/css" href="css파일명.css">
  • 前述したように、<head></head>タグ内に<style></style>タグが作成され、その空間内にコードが入力される.
    <head>
      	<style>
    		.mytitle {
          		background-color: green;
                width: 300px;
                height: 200px;
          	}
        </style>
    </head>
    
    <body>
     	<div class="mytitle">
            <h1>nikevapormax.log</h1>
        </div>
    </body>
  • 常用CSS
  • 背景関連background-color background-image background-size
  • コードwidth height
  • フォントfont-size font-weight font-family color
  • 間隔margin padding
  • 🦧ログインページの作成

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>로그인페이지</title>
        <link href="https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@700&display=swap" rel="stylesheet">
    
        <style>
            * {
                font-family: 'Nanum Gothic', sans-serif;
            }
            .mytitle {
                background-color: green;
                width: 300px;
                height: 200px;
    
                background-image: url("https://www.ancient-origins.net/sites/default/files/field/image/Agesilaus-II-cover.jpg");
                background-size: cover;
                background-position: center;
    
                border-radius: 10px;
    
                color: white;
                text-align: center;
                padding-top: 20px;
            }
            .wrap {
                width: 300px;
                margin: auto;
            }
            .mybtn {
                width: 100px;
                margin: auto;
                display: block;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="mytitle">
                <h1>로그인 페이지</h1>
                <h5>아이디, 패스워드를 입력해주세요</h5>
            </div>
    
            <p>ID : <input type="text"/></p>
            <p>PW : <input type="text"/></p>
            <button class="mybtn">로그인하기</button>
        </div>
    </body>
    </html>
  • の関連実習で、グーグルはフォントをページにロードした.
    次のサイトではフォントを選択できます.https://fonts.google.com/?subset=koreanフォントを選択した後、<head></head>に以下の内容を記入してください.
  • <head>
    	<link href="https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@700&display=swap" rel="stylesheet">
      
        <style>
          * {
               font-family: 'Nanum Gothic', sans-serif;
          }
        </style>
    </head>
  • コードを入力し、コメントを入力したい場合は、領域をつかんでキーを押します.Ctrl + /
  • 🦧 手帳

    <!doctype html>
    <html lang="en">
    
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
              integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
                integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
                crossorigin="anonymous"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
                integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
                crossorigin="anonymous"></script>
    
        <title>스파르타코딩클럽 | 부트스트랩 연습하기</title>
        <link href="https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@700&display=swap" rel="stylesheet">
        <style>
            * {
                font-family: 'Nanum Gothic', sans-serif;
            }
            .wrap {
                width: 900px;
                margin: auto;
            }
            .titlecolor {
                color: dodgerblue;
            }
            .pcolor {
                color: blue;
                font-weight: bold;
            }
            .posting-box {
                border: 3px solid black;
                border-radius: 10px;
                width: 500px;
                padding: 50px;
                margin: 0px auto 30px auto;
            }
        </style>
        <script>
            let count = 1;
            function hey() {
                if (count % 2 == 0) {
                    alert("짝수입니다.")
                } else {
                    alert("홀수입니다.")
                }
                count += 1;
            }
        </script>
    </head>
    
    <body>
    <div class="wrap">
        <div class="jumbotron">
            <h1 class="display-4">나홀로 링크 메모장!</h1>
            <p class="lead">중요한 링크를 저장해두고, 나중에 볼 수 있는 공간입니다.</p>
            <hr class="my-4">
            <p class="lead">
                <a onclick="hey()" class="btn btn-primary btn-lg" href="#" role="button">포스팅박스 열기</a>
            </p>
        </div>
        <div class="posting-box">
            <div class="form-group">
                <label for="exampleInputEmail1">아티클 URL</label>
                <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="">
            </div>
            <div class="form-group">
                <label for="exampleFormControlTextarea1">간단 코멘트</label>
                <textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea>
            </div>
            <button type="submit" class="btn btn-primary">기사저장</button>
        </div>
        <div class="card-columns">
            <div class="card">
                <img class="card-img-top"
                     src="https://m.nongmin.com/upload/bbs/202108/20210821005357060/20210821005357060.jpg"
                     alt="Card image cap">
                <div class="card-body">
                    <a href="https://www.naver.com" class="card-title titlecolor">여기 기사 제목이 들어가죠</a>
                    <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                    <p class="card-text pcolor">여기에 코멘트가 들어갑니다.</p>
                </div>
            </div>
            <div class="card">
                <img class="card-img-top"
                     src="https://m.nongmin.com/upload/bbs/202108/20210821005357060/20210821005357060.jpg"
                     alt="Card image cap">
                <div class="card-body">
                    <a href="https://www.naver.com" class="card-title titlecolor">여기 기사 제목이 들어가죠</a>
                    <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                    <p class="card-text pcolor">여기에 코멘트가 들어갑니다.</p>
                </div>
            </div>
            <div class="card">
                <img class="card-img-top"
                     src="https://m.nongmin.com/upload/bbs/202108/20210821005357060/20210821005357060.jpg"
                     alt="Card image cap">
                <div class="card-body">
                    <a href="https://www.naver.com" class="card-title titlecolor">여기 기사 제목이 들어가죠</a>
                    <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                    <p class="card-text pcolor">여기에 코멘트가 들어갑니다.</p>
                </div>
            </div>
            <div class="card">
                <img class="card-img-top"
                     src="https://m.nongmin.com/upload/bbs/202108/20210821005357060/20210821005357060.jpg"
                     alt="Card image cap">
                <div class="card-body">
                    <a href="https://www.naver.com" class="card-title titlecolor">여기 기사 제목이 들어가죠</a>
                    <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                    <p class="card-text pcolor">여기에 코멘트가 들어갑니다.</p>
                </div>
            </div>
            <div class="card">
                <img class="card-img-top"
                     src="https://m.nongmin.com/upload/bbs/202108/20210821005357060/20210821005357060.jpg"
                     alt="Card image cap">
                <div class="card-body">
                    <a href="https://www.naver.com" class="card-title titlecolor">여기 기사 제목이 들어가죠</a>
                    <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                    <p class="card-text pcolor">여기에 코멘트가 들어갑니다.</p>
                </div>
            </div>
            <div class="card">
                <img class="card-img-top"
                     src="https://m.nongmin.com/upload/bbs/202108/20210821005357060/20210821005357060.jpg"
                     alt="Card image cap">
                <div class="card-body">
                    <a href="https://www.naver.com" class="card-title titlecolor">여기 기사 제목이 들어가죠</a>
                    <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                    <p class="card-text pcolor">여기에 코멘트가 들어갑니다.</p>
                </div>
            </div>
        </div>
    </div>
    </body>
    
    </html>
    
  • Bootstrapサイトのテンプレートを利用しました.https://getbootstrap.com/docs/4.0/components/buttons/
  • javascriptの機能は以下の通りです.
  • <script>
            let count = 1;
            function hey() {
                if (count % 2 == 0) {
                    alert("짝수입니다.")
                } else {
                    alert("홀수입니다.")
                }
                count += 1;
            }
    </script>
    結果は、
  • です.
  • 🦧Javascript


    🔥 機能を使用するためにHTMLファイルに<script></script>タグを作成するか、jsファイルを作成して使用することができます.크롬개발자 도구のコンソールウィンドウを使用して、Webページで簡単な機能を直接表示し、テストすることもできます.f12または마우스 오른쪽 클릭→ 검사 → consoleを使用
    🔥基本構文
    let num = 20
    num = 'Bob'
    // 한 번 선언했으면, 다시 선언하지 않고 값을 넣음
    
    let a = 1
    let b = 2
    
    a+b // 3
    a/b // 0.5
    
    let first = 'Bob'
    let last = 'Lee'
    
    first+last // 'BobLee'
    
    first+' '+last // 'Bob Lee'
    
    first+a // Bob1 -> 문자+숫자를 하면, 숫자를 문자로 바꾼 뒤 수행
    let a_list = []  // 리스트를 선언. 변수 이름은 역시 아무렇게나 가능!
    
    // 또는,
    
    let b_list = [1,2,'hey',3] // 로 선언 가능
    
    b_list[1] // 2 를 출력
    b_list[2] // 'hey'를 출력
    
    // 리스트에 요소 넣기
    b_list.push('헤이')
    b_list // [1, 2, "hey", 3, "헤이"] 를 출력
    
    // 리스트의 길이 구하기
    b_list.length // 5를 출력
    let a_dict = {}  // 딕셔너리 선언. 변수 이름은 역시 아무렇게나 가능!
    
    // 또는,
    
    let b_dict = {'name':'Bob','age':21} // 로 선언 가능
    b_dict['name'] // 'Bob'을 출력
    b_dict['age'] // 21을 출력
    
    b_dict['height'] = 180 // 딕셔너리에 키:밸류 넣기
    b_dict // {name: "Bob", age: 21, height: 180}을 출력
    names = [{'name':'bob','age':20},{'name':'carry','age':38}]
    
    // names[0]['name']의 값은? 'bob'
    // names[1]['name']의 값은? 'carry'
    
    new_name = {'name':'john','age':7}
    names.push(new_name)
    
    // names의 값은? [{'name':'bob','age':20},{'name':'carry','age':38},{'name':'john','age':7}]
    // names[2]['name']의 값은? 'john'
    // 글자를 대문자로
    let myname = 'abcd'
    myname.toUpperCase() // ABCD
    
    // 글자를 소문자로
    let myname = 'ABCD'
    myname.toLowerCase() // abcd
    let email = '[email protected]'
    
    let result = email.split('@') // ['abcd','gmail.com']
    
    result[0] // abcd
    result[1] // gmail.com
    
    let result2 = result[1].split('.') // ['gmail','com']
    
    result2[0] // gmail <- 목표
    result2[1] // com
    
    myemail.split('@')[1].split('.')[0] // gmail
    let txt = '서울시-마포구-망원동'
    
    let names = txt.split('-'); // ['서울시','마포구','망원동']
    let result = names.join('>'); // '서울시>마포구>망원동' (즉, 문자열 바꾸기!)
    🔥条件文と重複文の使用
    <for (let i = 0; i < mise_list.length; i++) {
      let mise = mise_list[i];
      if (mise["IDEX_MVL"] < 40) {
        let gu_name = mise["MSRSTE_NM"];
        let gu_mise = mise["IDEX_MVL"];
        console.log("40보다 작은 구: " + gu_name + ", " + gu_mise);
      }
    }
    function show_gus(index) {
      for (let i = 0; i < mise_list.length; i++) {
        let mise = mise_list[i];
        if (mise["IDEX_MVL"] < index) {
          let gu_name = mise["MSRSTE_NM"];
          let gu_mise = mise["IDEX_MVL"];
    	    console.log(index + "보다 작은 구: " + gu_name + ", " + gu_mise);
        }
      }
    }
    
    // 이러면 아래와 같은 것이 가능!
    show_gus(40) // 40보다 작은 구만 출력!
    show_gus(35) // 35보다 작은 구만 출력!

    🦧ショッピングモール1ページ

  • 第1週目の最終ジョブ
  • <!doctype html>
    <html lang="en">
    
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
              integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
                integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
                crossorigin="anonymous"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
                integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
                crossorigin="anonymous"></script>
    
        <title>homework 1주차</title>
        <link href="https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@700&display=swap" rel="stylesheet">
    
        <style>
            * {
                font-family: 'Nanum Gothic', sans-serif;
            }
            .item-pic{
                width: 500px;
                height: 300px;
    
                background-image: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQDJ9IcNAjp1CdDaPnNoL7xzzCjHz_uYS6GhA&usqp=CAU");
                background-position: center;
                background-size: cover;
            }
            .item-des {
                width: 500px;
                margin : 20px 0px 20px 0px;
            }
            .ordering {
                width: 500px;
            }
            .price-tag {
                font-size: 15px;
            }
            .location {
                width: 500px;
                margin: auto;
            }
            .btn_loc {
                margin: auto;
                display: block;
            }
        </style>
        <script>
            function say_ok() {
                alert('주문 완료!')
            }
        </script>
    
    
    </head>
    
    <body>
        <div class="location">
            <div class="item-pic"></div>
            <div class="item-des">
                <h1>아이폰 13 시리즈 <span class="price-tag">가격 : 950,000원부터</span></h1>
                <p>애플의 최신 핸드폰으로 그린 색상이 추가적으로 발매되었다.</p>
            </div>
            <div class="ordering">
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text" id="basic-addon1">주문자 이름</span>
                    </div>
                    <input type="text" class="form-control" aria-label="Username" aria-describedby="basic-addon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <label class="input-group-text" for="inputGroupSelect01">모델</label>
                    </div>
                    <select class="custom-select" id="inputGroupSelect01">
                        <option selected>-- 모델을 선택하세요 --</option>
                        <option value="1">아이폰 13 mini</option>
                        <option value="2">아이폰 13</option>
                        <option value="3">아이폰 13 pro</option>
                        <option value="4">아이폰 13 pro max</option>
                    </select>
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <label class="input-group-text" for="inputGroupSelect01">색상</label>
                    </div>
                    <select class="custom-select" id="inputGroupSelect01">
                        <option selected>-- 모델을 선택하세요 --</option>
                        <option value="1">스타라이트</option>
                        <option value="2">미드나이트</option>
                        <option value="3">블루</option>
                        <option value="4">핑크</option>
                        <option value="4">그린</option>
                        <option value="4">레드</option>
                    </select>
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <label class="input-group-text" for="inputGroupSelect01">수량</label>
                    </div>
                    <select class="custom-select" id="inputGroupSelect01">
                        <option selected>-- 수량을 선택하세요 --</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text" id="basic-addon1">주소</span>
                    </div>
                    <input type="text" class="form-control" aria-label="Username" aria-describedby="basic-addon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text" id="basic-addon1">전화번호</span>
                    </div>
                    <input type="text" class="form-control" aria-label="Username" aria-describedby="basic-addon1">
                </div>
                <input onclick="say_ok()" class="btn btn-primary btn_loc" type="button" value="주문하기">
            </div>
        </div>
    </body>
    
    </html>
    結果は、
  • です.追加したい機能はたくさんありますが、追加していません.
  • で選択した型番によって異なる色選択を実現したいと思います.
  • は最後に주문하기キーを押してalert明示的に符号化され、このウィンドウにサブスクライバによって発行された情報が再び表示されることを望んでいる.