input을 사용할 때 form을 사용했었는데


form은 내용을 서버에 전달할 때 핵심인 개념이다.


저번 게시글에서 form으로 input 항목들을 묶었을 때 reset 버튼을 만들어 누르면 전부 리셋되는걸 확인 했었을 것이다.


이렇게 form으로 묶어 속성에 보낼 서버와 보낼 방식을 지정하고


특정 버튼을 누르면 작동이 된다.


방식에는 아래와 같이 두가지 지정 방법이 있다


get 방식은 url 그대로 보내 빠르지만 보안이 안좋다.


post 방식은 head와 붙여 보내 느리지만 보안에 좋다.



마지막으로 데이터가 전송된 것을 확인하려면 서버가 필요하지만 우선 서버는 생략한다.



form을 선언할 때 <form action="" method="POST">와 같이 만들면 된다.



아래의 예제를 확인해 get과 post의 차이를 확인해보자



<html>
    <head>
        <meta charset="UTF-8">
        <title>Input</title>
        <link rel="icon" href = "btn.png">
    </head>
    <body>
        <!--action="보낼 서버", method="GET|POST"-->
        <form action="" method="GET">
            First Name<input type="text" name="firstname"/>
            <br/>
            Last Name<input type="text" name="lastname"/>
            <br/><br/>
            <input type="submit"/>
        </form>

    </body>

</html>







주소줄을 보면 내가 입력한 정보가 제출을 눌렀을때 url에 전부 나오는게 보인다.


이러한 이유로 보안에 안좋다.


참고로 한글을 입력하면 url에는 한글로 보이긴 한데 복사해서 붙여넣으면 url 코딩 방법으로 이상하게 나온다.






<html>
    <head>
        <meta charset="UTF-8">
        <title>Input</title>
        <link rel="icon" href = "btn.png">
    </head>
    <body>
        <!--action="보낼 서버", method="GET|POST"-->
        <form action="" method="POST">
            First Name<input type="text" name="firstname"/>
            <br/>
            Last Name<input type="text" name="lastname"/>
            <br/><br/>
            <input type="submit"/>
        </form>

    </body>

</html>




method를 post로 바꾸면 url에 뜨지 않는다.






이것을 08(https://qdgbjsdnb.tistory.com/136)의 예제에 적용하면 다음과 같다.




<html>
    <head>
        <meta charset="UTF-8">
        <title>로그인 박스</title>
        <style>
                th{
                    width: 50px;
                }
                td{
                    width: 50px;
                }
            </style>
    </head>
    <body>
        <h2>로그인</h2>
        <hr/>
        <form action="" method="GET">
            <fieldset>
            <table>
                <tr><!--행(row)선언-->
                    <th ><b>ID</b></th>
                    <th><input type="text" name = "UserID" value=""placeholder = "아이디를 입력 해주세요."/></th>
                    <th rowspan="2"><input type="submit" value="로그인"/></th>
                </tr>
                <tr><!--행(row)선언-->
                    <th><b>PW</b></th>
                    <th><input type="password" name = "UserPW" value=""placeholder = "비밀번호를 입력 해주세요."/></th>
                </tr>
                <tr><!--행(row)선언-->
                    <th colspan="3"><input type="button" value="회원가입"/> <input type="button" value="아이디/비번 찾기"></th>
                </tr>
            </table>
            </fieldset>
        </form>

    </body>
</html>




<html>
    <head>
        <meta charset="UTF-8">
        <title>회원가입 페이지</title>
        <style>
            td{
                width: 300px;
            }
        </style>
    </head>
    <body>
        <fieldset>
        <h2>회원가입</h2>
        <hr/>
        <form action="" method="GET">
        <table>
            <tr>
                <th>아이디</th>
                <td><input type="text" name = "UserID" value=""/></td>
            </tr>
            <tr>
                <th>비밀번호</th>
                <td><input type="text" name = "UserPW" value=""/></td>
            </tr>
            <tr>
                <th>비밀번호 확인</th>
                <td><input type="text" name = "ReUserPW" value=""/></td>
            </tr>
            <tr>
                <th>이름</th>
                <td><input type="text" name = "Name" value=""/></td>
            </tr>
            <tr>
                <th>이메일</th>
                <td><input type="email" name="mail" required/></td>
            </tr>
            <tr>
                <th>생년월일</th>
                <td>
                    <select name="year">
                        <option value="1995">1995</option>
                        <option value="1996"d>1996</option>
                        <option value="1997" selected>1997</option>
                        <option value="1998">1998</option>
                        <option value="1999">1999</option>
                        <option value="2000">2000</option>
                    </select>
                    <select name="month">
                        <option value="01" selected>01</option>
                    </select>
                    <select name="day">
                        <option value="01" selected>01</option>
                    </select>
                </td>
            </tr>
            <tr>
                <th>성별</th>
                <td>
                    <input type="radio" name="gender" value="male"/> 남자
                    &nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="radio" name="gender" value="female"/> 여자
                </td>
            </tr>
            <tr>
                <th>취미</th>
                <td>
                    <input type="checkbox" name="hobby" value="드라이브"/>드라이브
                    <input type="checkbox" name="hobby" value="스포츠"/>스포츠
                    <input type="checkbox" name="hobby" value="게임"/>게임
                    <input type="checkbox" name="hobby" value="낚시"/>낚시
                </td>
            </tr>
            <tr>
                <th>나이</th>
                <td><input type="number" name="age" min="1" max="200" value="20"/></td>
            </tr>
            <tr>
                <th>보안등급</th>
                <td><input type="range" name="security" min="0" max="100" value="0" step="20"/></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" value="회원가입"/>
                </td>
            </tr>
        </table>
        </form>
        </fieldset>
    </body>
</html>




03(https://qdgbjsdnb.tistory.com/131)에서 사용한 로그인과 회원가입에 적절한 노드들을 사용해보자.


완성된 결과물은 다음과 같다.








02-03의 게시물의 예제와 input을 통해 위의 사진과 같이 만들어보자





-정답-


로그인


<html>
    <head>
        <meta charset="UTF-8">
        <title>로그인 박스</title>
        <style>
                th{
                    width: 50px;
                }
                td{
                    width: 50px;
                }
            </style>
    </head>
    <body>
        <fieldset>
        <table>
            <tr><!--행(row)선언-->
                <th ><b>ID</b></th>
                <th><input type="text" name = "UserID" value=""placeholder = "아이디를 입력 해주세요."/></th>
                <th rowspan="2"><input type="submit" value="로그인"/></th>
            </tr>
            <tr><!--행(row)선언-->
                <th><b>PW</b></th>
                <th><input type="password" name = "UserPW" value=""placeholder = "비밀번호를 입력 해주세요."/></th>
            </tr>
            <tr><!--행(row)선언-->
                <th colspan="3"><input type="button" value="회원가입"/> <input type="button" value="아이디/비번 찾기"></th>
            </tr>
        </table>
        </fieldset>

    </body>
</html>


회원가입


<html>
    <head>
        <meta charset="UTF-8">
        <title>회원가입 페이지</title>
        <style>
            td{
                width: 300px;
            }
        </style>
    </head>
    <body>
        <fieldset>
        <h2>회원가입</h2>
        <hr/>
        <table>
            <tr>
                <th>아이디</th>
                <td><input type="text" name = "UserID" value=""/></td>
            </tr>
            <tr>
                <th>비밀번호</th>
                <td><input type="text" name = "UserPW" value=""/></td>
            </tr>
            <tr>
                <th>비밀번호 확인</th>
                <td><input type="text" name = "ReUserPW" value=""/></td>
            </tr>
            <tr>
                <th>이름</th>
                <td><input type="text" name = "Name" value=""/></td>
            </tr>
            <tr>
                <th>이메일</th>
                <td><input type="email" name="mail" required/></td>
            </tr>
            <tr>
                <th>생년월일</th>
                <td>
                    <select name="year">
                        <option value="1995">1995</option>
                        <option value="1996"d>1996</option>
                        <option value="1997" selected>1997</option>
                        <option value="1998">1998</option>
                        <option value="1999">1999</option>
                        <option value="2000">2000</option>
                    </select>
                    <select name="month">
                        <option value="01" selected>01</option>
                    </select>
                    <select name="day">
                        <option value="01" selected>01</option>
                    </select>
                </td>
            </tr>
            <tr>
                <th>성별</th>
                <td>
                    <input type="radio" name="gender" value="male"/> 남자
                    &nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="radio" name="gender" value="female"/> 여자
                </td>
            </tr>
            <tr>
                <th>취미</th>
                <td>
                    <input type="checkbox" name="hobby" value="드라이브"/>드라이브
                    <input type="checkbox" name="hobby" value="스포츠"/>스포츠
                    <input type="checkbox" name="hobby" value="게임"/>게임
                    <input type="checkbox" name="hobby" value="낚시"/>낚시
                </td>
            </tr>
            <tr>
                <th>나이</th>
                <td><input type="number" name="age" min="1" max="200" value="20"/></td>
            </tr>
            <tr>
                <th>보안등급</th>
                <td><input type="range" name="security" min="0" max="100" value="0" step="20"/></td>
            </tr>
        </table>
        </fieldset>
    </body>
</html>



selected의 값은 많기 때문에 귀찮아서 쓰다가 패스....

link는 페이지를 열었을때 페이지 이름 옆에 나타나는 아이콘을 의미한다.


아래의 예를 들면 <link rel="icon" href = "btn.png">와 같이 사용한다.







input은 type으로 종류를 정하고


value로 내용, 기본값을 설정하고


name을 지정할 수 있다.




input은 기능을 가진 버튼을 만들 수 있기 때문에 제일 중요한 부분이다.




type은



button, submit, password, checkbox, radio, hidden, file, select, email, number, range, color, date, month, datetime-local, image


time, url, week, reset


다양하지만 전부 외울 필요는 없고 필요할 때 찾다보면 익숙해진다.




그 외에


fieldset 블록은 하나의 틀, 프레임을 만든다.(아래 실행 화면 참조.)




<html>
    <head>
        <meta charset="UTF-8">
        <title>Input</title>
        <link rel="icon" href = "btn.png">
    </head>
    <body>
        <input type="button" value="click"/>
        <!--button : 이벤트를 실행하는 트리거 역할-->

        <input type="submit" value="전송"/>
        <!--어떤 값을 제출하는 역할, 서버에 제출-->


        <!--자주 쓰임, 중요!-->
        <fieldset>
            <legend>text & password</legend>
            ID : <input type="text" name = "UserID" value=""placeholder = "아이디를 입력 해주세요."/>
            <br/>
            PW : <input type="password"name = "UserPW" value="">
        </fieldset>
        <!--text : 텍스트 박스-->
        <!--password : 암호 박스-->
        <!--value속성은 기본값을 말함, 처음에 담겨있을 값-->
        <!--placeholder 속성은 커서를 안올리면 보이지만 올리면 사라지는 글-->

        <fieldset>
            <legend>checkbox & radio</legend>
            <input type="checkbox" name="hobby" value="영화"/> 영화
            <input type="checkbox" name="reading" value="독서"/> 독서
            <input type="checkbox" name="game" value="게임"/> 게임
                
            <br/>

            <!--name이 꼭 일치해야 그룹으로 묶여 하나만 선택된다.-->
            <input type="radio" name="gender" value="male"/> 남자
            <input type="radio" name="gender" value="female"/> 여자

            <br/>
                
            <input type="radio" name="number" value="1"/> 1
            <input type="radio" name="number" value="2"/> 2
            <input type="radio" name="number" value="3"/> 3
            <input type="radio" name="number" value="4"/> 4
        </fieldset>

        <fieldset>
            <legend>text & hidden</legend>
            <input type="text" name="userName" value="홍길동" readonly>
            <!--readonly는 읽기전용, 수정 불가하게 바꿈-->
            <input type="hidden" name="userName" value="홍길동">
        </fieldset>

        <fieldset>
            <legend>File</legend>
            <form>
                <input type="file" name="img"/>
                <input type="submit" value="전송"/>
                <!--submit은 value를 빈칸으로 하면 브라우져에 따라 기본값이 다르다.-->
            </form>
            <!--form은 나중에 따로 설명한다.-->
        </fieldset>

        <fieldset>
            <legend>select</legend>
            <select name="cars">
                <option value="volvo">Volvo</option>
                <option value="saab">Saab</option>
                <option value="fiat" selected>Fiat</option>
                <!--selected를 해놓으면 기본값으로 체크 되어 있음-->
                <option value="audi">Audi</option>
            </select>
        </fieldset>


        <!--자주 안쓰임, 유용하지만 HTML5만 지원함, 브라우져에 따라 작동 안됨-->
        <fieldset>
            <legend>e-mail</legend>
            <form>
                E-mail : 
                <input type="email" name="mail" required/>
                <!--required라고 입력하면 정상 값을 입력하지 않으면 오류 풍선이 뜸-->
                <input type="submit"/>
            </form>
        </fieldset>

        <fieldset>
            <legend>number & range</legend>
            나이(1~200) : 
            <input type="number" name="age" min="1" max="200"/>
            <!--숫자형이 아니고 문자형임-->
            <!--min, max로 범위 설정 가능-->
            <br/>
            points(0~100)
            <input type="range" name="point" min="0" max="100" value="50" step="20"/>
            <!--스크롤을 만듦, step으로 한번 당길 때 움직이는 양을 설정할 수 있다.-->
        </fieldset>

        <!--대체품이 있음, bootstrap 등..-->
        <fieldset>
            <legend>color</legend>
            좋아하는 색상 : <input type="color" name="color"/>
            <!--색상 선택 기능-->
        </fieldset>

        <fieldset>
            <legend>date & month</legend>
            날짜:<input type="date" name="day"/>
            <br/>
            월:<input type="month" name="month">
            <br/>
            날짜+시간:<input type="datetime-local"name="time"/>
        </fieldset>

        <input type="image"src="btn.png" alt="버튼 아이콘" width="100"height="100"/>

        <fieldset>
            <legend>time & url & week & reset</legend>
            <form>
                ID:<input type="text"><br/>
                TIME:<input type="time"><br/>
                URL:<input type="url"><br/>
                WEEK:<input type="week"><br/>
                <input type="reset" value="reset">
                <input type="submit" value="로그인"/>
            </form>
        </fieldset>
    </body>

</html>



아래는 실행화면












iframe은 현재 사이트에 다른 사이트의 화면을 띄어주는 틀을 만드는 코드


하지만 보안상 피싱사이트에서 이 기능을 이용해


정보를 빼가 이용하므로 조심해야 한다.


예를들어 사이트 주소를 잘못첫는데 네이버가 나왔다.


그리고 id pw를 입력하면 바로 정보가 유출된다고 보면 된다.




src와 width, height를 이용해 조절한다.




<html>
    <head>
        <meta charset="UTF-8">
        <title>Iframe</title>
    </head>
    <body>
        <iframe src="07_list.html" width="500px" height="300px"></iframe>
        <!--iframe은 다른 사이트를 화면에 띄어주는 코드-->
        <!--iframe은 피싱사이트 연결에 자주 사용되어 보안상 주의해야 할 코드-->
        <!--고로 대형 사이트들은 막아놓음-->

        <iframe src="04_table.html" width="500px" height="200px"frameborder = "0" scrolling="no"></iframe>
        <!--frame의 틀과 스크롤을 없애기-->

        <iframe src="https://www.youtube.com" width="500px" height="300px"></iframe>
        <!--유튜브의 경우는 막아놨기 때문에 안나옴-->
        <!--즉 허용된 사이트만 외부 링크를 가져올 수 있다.-->

        <iframe src="https://youtube.com/embed/nM0xDI5R50E" width="500px" height="300px"></iframe>
        <!--하지만 sns공유기능에서 링크를 따와 맨 뒤의 코드 "nM0xDI5R50E" 부분을-->
        <!--https://youtube.com/embed/ 뒤에 붙이면 해당 유튜브만 따올 수 있다.-->


    </body>

</html>



실행 화면은 다음과 같다.









유튜브 링크의 경우는 다음과 같은 부분을 말한다.























예전에 https://qdgbjsdnb.tistory.com/129 에서 사용한 html 예제 파일을 이용해서 iframe을 활용해보자


기존의 html 파일의 상단에 링크 하나 추가(navi)


기존의 html 파일의 하단에 사이트 링크들 추가(footer)



먼저 압축파일을 받아 각종 사이트 대표 이미지를 받아


HTML 폴더에 img 폴더를 만들어 넣어주자


img.zip


받고나서 아래 코드 입력







navi



<ul>
    <a href="#"><li>HTML</li></a>
    <a href="#"><li>CSS</li></a>
    <a href="#"><li>JAVA-SCRIPT</li></a>
    <a href="#"><li>J-Query</li></a>
    <a href="#"><li>BOOT STRAP</li></a>
</ul>

<!--참조만 할 html 파일은 html영역, head영역 body영역 등 생략이 가능-->




다음으로 footer, 기존 틀은 생략



<a href="http://www.daum.net"target="_blank">
    <img src="img/daum.png" alt="다음 이미지" width="150" height="70"/>
</a>
<a href="http://www.google.com"target="_blank">
    <img src="img/google.png" alt="구글 이미지" width="150" height="70"/>
</a>
<a href="http://www.msn.com"target="_blank">
    <img src="img/msn.jpg" alt="MSN 이미지" width="150" height="70"/>
</a>
<a href="http://www.nate.com"target="_blank">
    <img src="img/nate.png" alt="NATE 이미지" width="180" height="70"/>
</a>
<a href="http://www.naver.com"target="_blank">
    <img src="img/naver.png" alt="네이버 이미지" width="120" height="70"/>
</a>





다음으로 페이지 합치기




<html>
    <head>
        <meta charset="UTF-8">
        <title>메인 Page</title>
    </head>
    <body>
        <iframe src="exercise_03_navi.html" width="100%" height="30" frameborder="0" scrolling="no"></iframe>
        
        <h2>메인 페이지</h2>
        <hr/>
        <br><small>NHH 엔터테인먼트</small>가 <b>가카오</b>를 상대로 특히 침해 소송을 벌인 것과 관련해,<br/>
        <br>가카오가 제기한 <mark>특허 무효</mark> 심판 3건 중 2건에서 가카오가 승소했다.<br/>
        <br><br/>
        <!--br안의 내용을 입력안하면 그냥 Enter키를 누른것과 유사-->
        <br>가카오는 14일 <del>NHH엔터테인먼트</del>의 특허 자회사 <ins>케이이노베이션</ins>이 보요 특허 침해로 제기한<br/>
        <br>특허소송과 관련해 자사가 진행한 <sup>특허 무효심판</sup>에서 승소했다고 밝혔다.<br/>
    
        <iframe src="exercise_03_footer.html" width="100%" frameborder="0" scrolling="no"></iframe>
    </body>
</html>









HTML에서 사용할 수 있는 대표적인 리스트는 3가지가 있다


UL은 리스트 나열 시 번호 대신 특수문자를 사용하고


OL은 리스트 나열 시 번호나 로마자 등 설정이 가능하다.


li는 UL과 OL 사용 시 리스트의 항목들을 감싸는 블록


DL의 경우는 리스트 안에 또 list를 추가하여 표시할 수 있다.


또한 li를 사용하지 않고 dl, dt, dd를 통해 컨트롤 한다.


아래 예제를 통해 확인해보자



<html>
    <head>
        <meta charset="UTF-8">
        <title>리스트</title>
    </head>
    <body>
        <h2>UL - 정렬 넘버가 없는 리스트</h2>
        <ul>
            <li>HTML</li>
            <li>CSS</li>
            <li>Java-Script</li>
            <li>J-Query</li>
        </ul>

        <h2>UL - 리스트 앞의 동그라미(disk) 삭제</h2>
        <ul style="list-style-type:none;">
            <li>HTML</li>
            <li>CSS</li>
            <li>Java-Script</li>
            <li>J-Query</li>
        </ul>
        
        <h2>OL - 정렬 넘버가 있는 리스트</h2>
        <ol>
            <li>HTML</li>
            <li>CSS</li>
            <li>Java-Script</li>
            <li>J-Query</li>
        </ol>

        <h2>OL - 정렬 넘버를 바꾼 OL</h2>
        <ol type="A">
            <li>HTML</li>
            <li>CSS</li>
            <li>Java-Script</li>
            <li>J-Query</li>
        </ol>

        <h2>리스트 안의 리스트 형태</h2>
            <dl>
                <dt>HTML</dt>
                    <dd>a 태그</dd>
                    <dd>img 태그</dd>
                    <dd>li 태그</dd>
                <dt>CSS</dt>
                <dt>JAVA-SCRIPT</dt>
                <dt>J-QUERY</dt>
            </dl>
    </body>


</html>






먼저 인터넷에 사용할 이미지를 아무거나 html 을 작성한 파일들이 담긴 폴더에 복사하자.



필자는 아래 이미지를 사용하였다.





<img>태그는


태그 안에 src를 통해 경로를 설정하고, alt를 통해서 이미지의 이름을 설정한다.


width와 height를 통해서 사이즈 조절도 가능하다.


alt의 경우 시각 장애자를 위해 꼭 명시하는것을 추천한다.


큰 웹사이트의 경우 법적으로 필수로 명시하라고 되있다고 한다.





<a> 태그는 href에 이동할 링크를 입력하고


target="_blank"를 명시하면 새탭에서 열리고


명시하지 않으면 현재 페이지에서 열리게 된다.



아래 예제를 확인해 보자.




<html>
    <head>
        <meta charset="UTF-8">
        <title>이미지</title>
    </head>
    <body>
        <img src="picture.gif" alt="구글 이미지" width="250" height="150"/>
        <!--alt="이미지 설명"은 글을 소리내어 읽어주는 기능을 할 때 이미지라고 읽어주게끔 명시하는 코드-->
        <!--꼭 넣자-->
        <!--이미지 우측 하단에 '_', 언더바처럼 표시가 하나 생기는데 CSS를 이용하면 지울 수 있으나-->
        <!--HTML을 다루고 있으므로 넘어간다.-->
        <br>

        <a href="http://www.naver.com"target="_blank">
            특정 링크로 이동
        </a>
        <!--href를 비워두면 자기 자신을 의미-->
        <!--target="_blank"을 명시하여 새 탭에서 열기, 없다면 현재 페이지를 바꿈-->
        <br>

        <a href="http://www.naver.com"target="_blank">
            <img src="picture.gif" alt="구글 이미지" width="250" height="150"/>
        </a>
        <!--a 태그가 이미지를 감싸면 이미지를 눌렀을때 링크 이동이 됨-->
        <br>

    </body>

</html>



a태그를 사용하면 우측 아래에 '_', 언더바가 생기는데 CSS를 통해서 없앨 수 있다.


하지만 현재 HTML을 다루기 때문에 생략






HTML만 쓸 때는 테이블은 화면에 띄어줄


자료를 배치하는데 있어서 가장 중요하다고 할 수 있다.


배치를 어떻게 하느냐에 따라 화면이 깔끔해진다.


요즘에는 HTML만 쓰는 사이트는 거의 없기 때문에 잘 안쓰이긴 한다.


다음 예제를 보고 테이블의 사용법과


Style 지정을 어떻게 하는지 2가지 방법이 있는데 확인해보자




style - 각종 블록들의 속성을 선언할 때 사용하는 기능, head에 스타일 블록을 만들어 몰아서 써도 된다.


table - 표 선언


tr - 행 선언


th - 헤더, DB로 치면 컬럼을 의미


td - 필드, DB로 치면 데이터 항목들


colspan, rowspan - 셀 병합, 칸 합치기, th와 td의 속성 설정에 사용



border: 1px solid black;

border-collapse: collapse;


위의 두 줄은 스타일 블록에 사용하는데 표의 선을 생성하라는 코드이다. 


만약 table, th, td를 함께 묶지 않는다면 분리되어 표시되고


첫째 줄의 black은 색상을 의미한다.


collapse는 생략





<html>
    <head>
        <meta charset="UTF-8">
        <title>테이블</title>
        <!--이 스타일을 보기 전에 아래 body 아래의 주석 처리된 table의 style을 먼저 보자-->
        <style>
            table{
                width: 300px;
            }
            table, th, td{
                border: 1px solid black;
                border-collapse: collapse;
            }
        </style>
    </head>
    <body>
<!--    <table style="width:300px; border: 1px solid"><!--테이블 선언; 스타일 = 테이블 사이즈 조절; 테두리 줄 생성;-->
        <table>
           <caption>SCORE</caption><!--표 제목 선언-->
            <tr><!--행(row)선언-->
                <th>Firstname</th><!--헤더, (컬럼 이름)-->
                <th>Lastname</th>
                <th>Points</th>
            </tr>
            <tr><!--필드, (항목들)-->
                <td>Eve</td>
                <td>Jackson</td>
                <td>94</td>
            </tr>
        </table>
    </body>
</html>

<!--16번째 줄의 table을 선언할 때 같이 style을 설정 할 수 있지만-->
<!--스타일을 head 안에 따로 설정하는 방법도 있다.-->




스타일은 위와같이 table 선언 시 스타일 선언을 같이하여 속성들을 부여해도 되고


처음부터 head에 부여하여 속성을 부여해도 상관없다.


table의 th, td에 colspan이나 rowspan을 설정하여 칸 병합을 할 수 있다. 아래 예제를 확인해보자



<html>
    <head>
        <meta charset="UTF-8">
        <title>테이블</title>
        <style>
            table{
                width: 300px;
            }
            table, th, td{
                border: 1px solid;
                border-collapse: collapse;
            }
        </style>
    </head>
    <body>
        <table>
            <caption>9월</caption><!--표 제목 선언-->
                <tr><!--행(row)선언-->
                    <th colspan="7"><b>9월 4주차</b></th><!--헤더, (컬럼 이름)-->
                </tr>
                <tr><!--필드, (항목들)-->
                    <td>21</td>
                    <td>22</td>
                    <td>23</td>
                    <td>24</td>
                    <td>25</td>
                    <td>26</td>
                    <td>27</td>
                </tr>
        </table>

        <br><br/>
        <br><br/>

        <table>
                <caption>9월</caption><!--표 제목 선언-->
                    <tr><!--행(row)선언-->
                        <th><b>주차</b></th><!--헤더, (컬럼 이름)-->
                        <th><b>날짜</b></th>
                    </tr>
                    <tr><!--필드, (항목들)-->
                        <td rowspan="8">4</td>
                    </tr>
                    <tr>
                        <td>21</td>
                    </tr>
                    <tr>
                        <td>22</td>
                    </tr>
                    <tr>
                        <td>23</td>
                    </tr>
                    <tr>
                        <td>24</td>
                    </tr>
                    <tr>
                        <td>25</td>
                    </tr>
                    <tr>
                        <td>26</td>
                    </tr>
                    <tr>
                        <td>27</td>
                    </tr>
            </table>
    </body>
</html>


rowspan과 colspan을 활용하여 병합하면 아래와 같이 표시된다.







위의 내용을 바탕으로 아래 그림의 표를 만들어보자








<html>
    <head>
        <meta charset="UTF-8">
        <title>로그인 박스</title>
        <style>
                th{
                    width: 50px;
                }
                td{
                    width: 50px;
                }
                table, th, td{
                    border: 1px solid;
                    border-collapse: collapse;
                }
            </style>
    </head>
    <body>
        <table>
            <tr><!--행(row)선언-->
                <th ><b>ID</b></th>
                <th></th>
                <th rowspan="2"></th>
            </tr>
            <tr><!--행(row)선언-->
                <th><b>PW</b></th>
                <th></th>
            </tr>
            <tr><!--행(row)선언-->
                <th colspan="3">회원가입</th>
            </tr>
        </table>

    </body>
</html>




<html>
    <head>
        <meta charset="UTF-8">
        <title>회원가입 페이지</title>
        <style>
            table, th, td{
                border: 1px solid black;
                border-collapse: collapse;
            }
            td{
                width: 200px;
            }
        </style>
    </head>
    <body>
        <h2>회원가입</h2>
        <hr/>
        <table>
            <tr>
                <th>아이디</th>
                <td></td>
            </tr>
            <tr>
                <th>비밀번호</th>
                <td></td>
            </tr>
            <tr>
                <th>비밀번호 확인</th>
                <td></td>
            </tr>
            <tr>
                <th>이름</th>
                <td></td>
            </tr>
            <tr>
                <th>이메일</th>
                <td></td>
            </tr>
            <tr>
                <th>생년월일</th>
                <td></td>
            </tr>
            <tr>
                <th>성별</th>
                <td></td>
            </tr>
            <tr>
                <th>취미</th>
                <td></td>
            </tr>
            <tr>
                <th>나이</th>
                <td></td>
            </tr>
            <tr>
                <th>보안등급</th>
                <td></td>
            </tr>
        </table>
    </body>
</html>



<html>
    <head>
        <meta charset="UTF-8">
        <title>문서의 제목</title>
    </head>
    <body>
        <p>p 태그는 위 아래로 공백이 발생</p>
        <hr/>
        <p>p 태그는 위 아래로 공백이 발생</p>
        <hr/>
        <p>p 태그는 위 아래로 공백이 발생</p>
        <hr/>
    </body>
</html>

<hr/> - 나눔 줄



01과 02에서 사용한 태그를 이용해 아래의 예제를 직접 작성해보자








<html> <head> <meta charset="UTF-8"> <title>메인 Page</title> </head> <body> <h2>메인 페이지</h2> <hr/> <br><small>NHH 엔터테인먼트</small>가 <b>가카오</b>를 상대로 특히 침해 소송을 벌인 것과 관련해,<br/> <br>가카오가 제기한 <mark>특허 무효</mark> 심판 3건 중 2건에서 가카오가 승소했다.<br/> <br><br/> <!--br안의 내용을 입력안하면 그냥 Enter키를 누른것과 유사--> <br>가카오는 14일 <del>NHH엔터테인먼트</del>의 특허 자회사 <ins>케이이노베이션</ins>이 보요 특허 침해로 제기한<br/> <br>특허소송과 관련해 자사가 진행한 <sup>특허 무효심판</sup>에서 승소했다고 밝혔다.<br/> </body> </html> <!--HTML은 공백(스페이스)을 입력하면 1자밖에 인식이 안된다. ' '가 ' '한칸으로 인식--> <!--&nbsp;를 사용해서 ' '한칸 이상의 공백을 여러개 입력할 수 있다.--> <!--그리고 줄바꿈은 enter을 인식하지 않기 때문에 br이나 p태그를 사용해야 한다.-->



만약 공백을 여러개 넣고 싶다면 &nbsp;를 여러번, 3번 하고싶다면 &nbsp;&nbsp;&nbsp; 라고 입력하면 된다.


1. HTML(Hyper Text Markup Language)은 인터넷 브라우져로 보여지는 화면을 구성하는 문서


2. CSS – HTML 을 보다 세련되게 표현(그래픽 작업이라고 생각하면 된다.)


3. JAVA SCRIPT – HTML에 동적 기능을 구현


4. J QUERY – JAVASCRIPT의 라이브러리



<!--html은 코드라기 보다는 문서-->
<html>
    <head>
        <!--글자 타입 선언-->
        <meta charset="UTF-8">
        <title>문서의 제목</title>
    </head>
    <body>
        <h1>This is Headline</h1>
        <h2>This is Headline</h2>
        <h3>This is Headline</h3>
        <h4>This is Headline</h4>
        <h5>This is Headline</h5>
        <h6>This is Headline</h6>
    </body>
</html>
<!--head는 html의 자식, meta, title은 head의 자식-->
<!--이와 같이 부모 자식 관계를 가진다.-->
<!--꼭 앞에 공백을 넣어 보기 좋게 만들어야 하는데-->
<!--html의 경우 코드가 잘못되도 표시가 되지않기 때문에-->
<!--직접 눈으로 찾아야 한다.-->
<!--그러므로 순서 및 공백이 뒤죽박죽이라면 찾기가 정말 힘들다.-->








<h1~6>, H태그는 글자의 크기가 제각각 다른 강조효과 태그이다.




<html>
    <head>
        <meta charset="UTF-8">
        <title>문서의 제목</title>
    </head>
    <body>
        <h2>HTML <small>Small</small> Formatting</h2>
        <h2>HTML <mark>Marked</mark> <b>Formatting<b></h2>
        <p>My favorite color is <del>blue</del> red.</p>
        <p>My favorite <ins>color</ins> is red.</p>
        <p>This is <sub>subscripted</sub> <b>text</b>.</p>
        <p>This is <sup>superscripted</sup> text.</p>        
    </body>
</html>







<small> - 글자 작게


<mark> - 글자 하이라이트(형광펜)


<b> - 굵게 표시


<del> - 글자 중앙 줄 긋기


<ins> - 글자 밑 줄 긋기


<sub> - subscripted의 약자, 글자 아래에 적기


<sup> - superscripted의 약자, 글자 위에 적기


<p> - 위아래 간격 주고 줄 넘기기


<br> - 줄 넘기기, Enter(간격 없이), 위의 예에는 없음


+ Recent posts