✿∘˚˳°∘°

32일차 : 테이블 / 영역분할 / 하이퍼링크 / 폼 본문

국비수업/HTML+CSS

32일차 : 테이블 / 영역분할 / 하이퍼링크 / 폼

_HYE_ 2023. 1. 11. 09:40

20230110

 

1. 테이블태그

<!DOCTYPE html>
<html lang="ko">
<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>테이블태그</title>
</head>
<body>
    <!-- 구조를 유지해서 만들어야함! table태그안에 tr, tr태그안에 td -->
    <table border="1"> <!--border:윤곽선-->
        <tr>
            <!-- 한 열의 넓이는 우리가 작성한 글씨 만큼-->
            <!-- 열의 크기는 같은 열의 데이터중 가장 긴 길이를 기준으로 만들어짐 -->
            <!-- 행별로 열의 개수는 동일해야 함 -->
            <td>내용11111111111</td>
            <td>내용2</td>
            <td>내용3</td>
        </tr>
        <tr>
            <td>내용4</td>
            <td>내용5</td>
            <td>내용6</td>
        </tr>
    </table>
    <hr>
    <table border="1">
        <!-- caption : 테이블을 설명하는 내용 작성-->
        <caption>브라우저 종류</caption>
        <tr>
            <!-- th : td와 같은 역할이지만 1.볼드체 2.가운데정렬 행의 대표를 의미한다(타이틀로 이용)-->
            <th>브라우저 이름</th>
            <th>개발회사</th>
            <th>홈페이지</th>
        </tr>
        <tr>
            <td>크롬</td>
            <td>google</td>
            <td>https://www.google.com</td>
        </tr>
        <tr>
            <td>사파리</td>
            <td>apple</td>
            <td>https://www.apple.com</td>
        </tr>
        <tr>
            <td>파이어폭스</td>
            <td>Mozilla</td>
            <td>https://www.mozilla.org</td>
        </tr>
    </table>
    <hr>
    <table border="1">
        <tr>
            <!-- th 3개 합쳐서 사용(컬럼을 합침) -->
            <!-- 기본적으로 같은 열의 개수를 맞춰두고 합쳐서 사용 -->
            <!-- 세칸짜리이기 때문에 th(또는td)를 또 만들면 네번째 칸에 생성됨 -->
            <th colspan="3">회원정보</th>
        </tr>
        <tr>
            <th>이름</th>
            <th>나이</th>
            <th>주소</th>
        </tr>
        <tr>
            <td>이름1</td>
            <td>20</td>
            <td>서울시 영등포구</td>
        </tr>
        <tr>
            <td>이름2</td>
            <td>21</td>
            <td>서울시 강남구</td>
        </tr>
        <tr>
            <td>이름3</td>
            <td>22</td>
            <td>서울시 동작구</td>
        </tr>
    </table>
    <hr>
    <table border="1">
        <tr>
            <!-- 행(row)를 합침 -->
            <th rowspan="3">이름</th>
            <td>이름1</td>
        </tr>
        <tr>
            <td>이름2</td>
        </tr>
        <tr>
            <td>이름3</td>
        </tr>
        <tr>
            <!--이름4에는 rowspan의 영향이 미치지 못하므로 4행1열에 생성된다-->
            <td>이름4</td>
        </tr>
    </table>
    <hr>
    <table border="1">
        <tr>
            <!-- 사이즈 지정 가능(단, 같은 열(넓이)/행(높이)도 영향을 받는다.) -->
            <th width="200px">제목1</th>
            <th height="50px">제목2</th>
            <th>제목3</th>
        </tr>
        <tr>
            <td>내용1</td>
            <!-- 같이 지정 가능 -->
            <!-- 다른 열/행도 영향을 받는다는 것만 기억하면된다 -->
            <td width="100px" height="100px">내용2</td>
            <td>내용3</td>
        </tr>
        <tr>
            <td>내용4</td>
            <td>내용5</td>
            <td>내용6</td>
        </tr>
    </table>
    <hr>
    <table border="1">
        <thead>
        <!-- thead/tbody/tfoot : 구조를 나눠주는 코드(표에 직접적인 영향이 있는건 아니다) -->
            <tr>
                <th>이름</th>
                <th>나이</th>
                <th>주소</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>유저1</td>
                <td>21</td>
                <td>서울시 영등포구</td>
            </tr>
            <tr>
                <td>유저2</td>
                <td>22</td>
                <td>서울시 강서구</td>
            </tr>
            <tr>
                <td>유저1</td>
                <td>23</td>
                <td>서울시 마포구</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <th colspan="2">총 인원</th>
                <td>3명</td>
            </tr>
        </tfoot>
    </table>

    <!-- 구조를 지정해주지 않은 코드는 모두 tbody가 자동으로 적용된다. -->
    <!-- 디자인을 위해 thead tbody tfoot을 지정해 주는 것 -->
    <style>
        thead{
            background-color:pink;
        }
        tbody{
            background-color: antiquewhite;
        }
        tfoot{
            background-color: cornflowerblue;
        }
    </style>
</body>
</html>

 

2. 영역분할태그

2 - 1 ) 영역분할태그 기본 - 블록 / 인라인

div : block형식의 송간을 분할(수직으로 공간분할)

span : inline 형식의 공간을 분할(수평으로 공간분할)

<!DOCTYPE html>
<html lang="ko">
<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>영역분할태그</title>
</head>
<body>
    <h2>iframe</h2>
    <!-- 가져올 youtube영상의 소스코드를 복사 -->
    <iframe>소스코드를 복붙해서 넣으면 알아서 들어간다</iframe>
    <hr>
    <!-- h2태그 : 한줄전체를 차지하는 블록요소이기 때문에 안녕하세요만 따로 줄로 빠짐 -->
    abc<h2>안녕하세요</h2>가나다라
    <hr>
    <!-- b태그 : 인라인 요소이기 때문에 여전히 한줄로 나옴-->
    abc<b>안녕하세요</b>가나다라
    <hr>
    <!-- div태그 : 영역분할태그 좌우에 아무것도 못오게(수직형태로 공간을 분할) 영역을 끝까지차지 -->
    <!-- div는 영역을 끝까지 차지하기 때문에 색을 입히면 한줄전체에 적용된다. -->
    <!-- 단, 크기를 지정해주면 지정한 만큼만 사용(옆에 아무것도 못오는건 동일함) -->
    abc<div style="background-color: antiquewhite; width: 100px;height: 100px;">안녕하세요</div>가나다라
    <hr>
    <!-- span : 공간만 분할해주고 싶을 때 사용-->
    <!-- 한줄로 보이게 하면서 특정부분(안녕하세요)에만 다른 효과를 주고싶은 경우 사용 -->
    <!-- 인라인태그는 크기변경이 불가능하므로 크기지정을 해줘도 콘텐츠내용까지만 지정됨 -->
    abc<span style="background-color: antiquewhite;">안녕하세요</span>가나다라
</body>
</html>

2 - 2 ) 멀티미디어 태그

<img> : 웹페이지에 사진이나 그림을 삽입할 때 사용하는 태그(닫는 태그가 존재하지 않음)

 

- 이미지를 가져오고 싶을 때

복붙, 다운로드 X

개발자 도구에서 이미지를 선택해보면 경로가 나와있다 이걸받으면 안깨지는 파일로 받을 수 있음!

iconmonstr.com 등에서 로고 이미지 다운

<!DOCTYPE html>
<html lang="ko">
<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>멀티미디어태그</title>
</head>
<body>
    <!-- 폴더를 생성해서 사용할 이미지/음악/비디오파일을 넣기 -->
    <!-- 이미지크기도 지정할 수 있지만 작은이미지를 키우면 화소가 깨짐 -->
    <img src="img/HTML_logo.png" alt="html로고" width="200px" height="200px">
    <img src="img/like.png" width="100px" height="100px">
    <hr>
    <!-- controls를 사용하면 재생바가 생성됨 / preload 파일의 어느정도까지 가져올건지(음악분) -->
    <audio src="파일경로" controls loop preload="auto"></audio>
    <hr>
    <!-- poster로 썸네일지정이 가능 -->
    <video src="파일경로" controls width="500px" height="500px" poster="img/like.png"></video>
</body>
</html>

 

3. 하이퍼링크

<!DOCTYPE html>
<html lang="ko">
<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>하이퍼링크</title>
</head>
<body>
    <h1 id="top">문서 시작위치 </h1>
    <!-- 클릭 시 시스템 내부에 있는 페이지로 이동할 때 -->
    <!-- 같은 폴더에 있으면 이름만 작성하면 되지만, 다른폴더에 있을경우 경로입력 -->
    <a href="01_글자태그.html" target="_self"> 01.글자태그 페이지로 이동</a><br>
    <a href="02_목록태그.html" target="_blank">02.목록태그 페이지로 이동</a><br>
    <a href="img/dog.jpg">03.이미지로 이동</a><br>
    <!-- 
        taget : href경로에 지정된 파일이 열리는 위치 지정
        _self : 현재창을 변경
        _blank : 새창을 띄워서 문서 열기
        _parent : 부모창에서 문서열기( 부모창 -> 현재창을 열어준 창 )
        _top : 최상위 창
    -->
    <!-- 클릭 시 시스템 외보에 있는 페이지로 이동할 때 -->
    <!-- 웹페이지 주소를 작성해 주면 된다. -->
    <a href="http://www.naver.com">네이버로 이동</a><br>
    <!-- href 뒤에 http가 붙어있으면 링크를 전체를 받아서 이동 / 아니라면 맨뒤에만 입력한 해당링크로 입력되어 이동-->
    <a href="http://www.naver.com"><img src=img/like.png width="50px"></a>
    <!-- a태그 사이에 있는걸 눌렀을 때 이동, 위의경우 이미지를 클릭하면 이동된다. -->
    <hr>
    <!-- 이미지에서 영역을 나눠서 특정영역을 클릭했을 때 이동 -->
    <img src="img/dog.jpg" usemap="#dog"> <!--usemap으로 img와 map을 연결-->
    <map name="dog">
        <!-- 좌표 계산 사이트 : http://maschek.hu/imagemap/imgmap/ -->
        <area shape="circle" coords="272,100,57" href="img/head.jpg" target="_self">
        <area shape="circle" coords="447,277,38" href="img/disk.jpg" target="_self">
        <area shape="circle" coords="539,374,36" href="img/leg.jpg" target="_self">
    </map>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <!-- 해당문서 내부로 이동 href="#아이디"-->
    <a href="#top">제일위로</a>
</body>
</html>

 

4. 폼태그

<!DOCTYPE html>
<html lang="ko">
<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>폼태그</title>
</head>
<body>
    <!-- 데이터를 주소창(url)을 이용해서 이동하는 방식 : get -->
    <!-- 데이터 크기 제한 O / 보내는 데이터를 볼 수 있음 -->
    <!-- test.html페이지에 get방식으로 데이터를 전송하는 form태그 -->
    <form action="test.html" method="get">
        <fieldset> <!-- 눈에보이게 영역을 잡아주기 위함 -->
            <legend>로그인</legend><!--이름붙여주는 것-->
            <!--input : 입력을 받는 태그 / type과 name은 반드시 작성해줘야한다.-->
            아이디 : <input type="text" name="userId"><br> 
            비밀번호 : <input type="password" name="userPw"><br>
            <input type="submit" value="로그인"><br>
            <!-- input이 속해있는 form태그를 action에 작성한 test.html에 제출 -->
            <!-- 
                input type = "submit"은 전송버튼으로 submit이 속해있는 form태그를 전송하는 기능
                해당하는 form태그 내부의 input에 입력된 값을 name속성으로 구분하여 전송
            -->          
            <!-- 상단의 주소창 확인 -->
            <!-- http://127.0.0.1:5500/front/01_html/test.html?userId=user01&userPw=1234 -->
            <!-- action?userId=입력값userPw=입력값 이동할 때 [ 지정해준name = 입력값 ] 으로 전송된다. -->
            <!--
                test.html : action에 적은 페이지(데이터를 받아서 처리할 페이지)
                ? : 파라미터 구분자(왼쪽-페이지/오른쪽-전달값)
                userId=user01&userPw=1234 : 파라미터(지정한name = 입력값)
            -->
            <!-- input 태그가 submit아래에 있어도 같은 form태그 안에있으므로 같이 전송된다. -->
            <!-- form범위를 넘어가게되면 데이터가 넘어가지 않는다.-->
            <input type="text" name="aaa">
            <!-- 데이터가 전송되려면 반드시 input태그필요 / form태그 내부에 있지만 div이기때문에 111은 전송되지 않는다. -->
            <div name="ccc">111</div>
        </fieldset>
    </form>
    <input type="text" name="bbb"><br><!-- form태그영역의 외부에 있기 때문에 위의 로그인과 함께 전송되지 않는다. -->
    
    <br>

    <!-- http헤더에 데이터를 넣어보내는 방식 : post-->
    <!-- 데이터 크기 제한 X / 보내는 데이터를 볼 수 없음-->
    <!-- test.html페이지에 post방식으로 데이터를 전송하는 form태그 -->
    <form action="test.html" method="post">
        <fieldset>
            <legend>로그인</legend>
            아이디 : <input type="text" name="memberId"><br> 
            비밀번호 : <input type="password" name="memberPw"><br>
            <input type="submit" value="로그인">
            <input type="reset" value="취소">
        </fieldset>
    </form>
    <br><hr><br>

    <form action="test2.html" method="get">
        <fieldset>
            <legend>input 태그 속성 테스트</legend>
            value 속성 : <input type="text" name="input1" value="기본으로대입되는 값"><br><!-- 입력되어있는 값 -->
            placeholder : <input type="text" name="input2" placeholder="아이디"><br><!-- 입력에대한 가이드적용 -->
            <!--http://127.0.0.1:5500/front/01_html/test2.html?input1=%EA%B8%B0%EB%B3%B8%EC%9C%BC%EB%A1%9C%EB%8C%80%EC%9E%85%EB%90%98%EB%8A%94+%EA%B0%92&input2=-->
            <!-- input1은 전송되는 데이터가 있고, input2는 전송되는 데이터가 없다-->
            <!-- readonly : 주소처럼 특정행동을 통해 값을 보낼 때 -->
            readonly : <input type="text" name="input3" value="읽기전용" readonly><br>
            <!-- disabled : 보여주기만하고 값을 전송하지 않을 때 -->
            disabled : <input type="text" name="input4" value="비활성화" disabled><br>
            required : <input type="text" name="input5" required><br><!-- 반드시입력해야함(필수값) -->
            <input type="submit" value="전송">
        </fieldset>
    </form>
    <br><hr><br>
    <form action="test3.html" method="get">
        <fieldset>
            <legend>input type의 종류</legend>
            text : <input type="text" name="a"><br><!--글자입력-->
            password : <input type="password" name="b"><br><!--text와 동일하나 글자를 마스킹처리-->
            hidden : <input type="hidden" name="c" value="숨겨진 값"><br><!-- input이 안보임-->
            <!-- hidden : 값을 숨겨서 전송하고싶을 때(사용자에게 보여주고싶지 않을 때) 사용 -->
            button : <input type="button" value="클릭" onclick="alert('짠')"><br>
            <!-- 기능을 부여할 때 button사용 onclick기능으로 버튼을 누르면 '짠'팝업창이 출력됨-->
            <button onclick="alert('짠')">클릭</button><br><!-- input type의 버튼과 동일한 기능 -->
            <!--
                button태그를 통해서도 기능부여가 가능
                단, form태그 내부에서 button을 사용하는 경우 기본적으로 submit 동작
                submit이 아닌 기능용 버튼이면 type="button" 속성을 반드시 부여해야 함
                기능만 사용하고 submit을 사용하고 싶지 않을 경우 input type = button을 사용해야한다.
            -->
            <!-- 
                input type="file"은 기본적으로 파일1개
                만약, 파일을 여러개 선택하고 싶은 경우 multiple옵션이 필요
            -->
            file : <input type="file" name="d" multiple><br> <!-- 파일선택 -->
            <!-- name속성값이 '동일한' radio중 1개만 선택이 가능 -->
            <!-- name속성이 다르면 중복선택이 가능해진다.-->
            <!-- 주의점 : 전송되는건 일이삼사오라는 눈에보이는 글자가아닌 value값인 12345이다. -->
            radio : <br>
                <input type="radio" name="e" value="1">일<br>
                <input type="radio" name="e" value="2">이<br>
                <input type="radio" name="e" value="3">삼<br>
                <input type="radio" name="e" value="4">사<br>
                <input type="radio" name="e1" value="5">오<br>
            <!-- radio와 차이점 : name속성 값이 동일한 checkbox를 여러개선택 가능 -->
            checkbox : <br>
                <input type="checkbox" name="f" value="1">일<br>
                <input type="checkbox" name="f" value="2">이<br>
                <input type="checkbox" name="f" value="3">삼<br>
                <input type="checkbox" name="f" value="4">사<br>
                <input type="submit" value="보내기">
                <button type="submit">보내기</button>
                <input type="reset" value="취소"><!-- 입력한 모든 값 clear -->
        </fieldset>
    </form>

 

 

    <form action="join.html" method="post">
        <fieldset>
            <legend>회원가입</legend>
            <!--id=속성값을 부여해주고 for="속성값"을 입력해주면 아이디를 입력해도 textbox가 활성화된다. -->
            <label for="memberId">아이디</label> : <input type="text" name="memberId" id="memberId" required>
            <button type="button">중복체크</button>
            <br>
            <label for="memberPw">비밀번호</label> : <input id="memberPw" type="password" name="memberPw">
            <br>
            이름 : <input type="text" name="memberName" required><br>
            성별 : 
                <input type="radio" name="gender" value="M" id="m"><laber for="m">남</laber>
                <input type="radio" name="gender" value="F" id="f"><laber for="f">여</laber>
                <br>
            취미 : 
                <!-- label로 input을 감싸면 id for를 사용하지 않아도 가능 -->
                <!-- 하지만 lable for=속성값 id=속성값을 더 많이 사용한다 -->
                <label><input type="checkbox" name="hobby" value="운동">운동</label>
                <label><input type="checkbox" name="hobby" value="잠">잠</label>
                <label><input type="checkbox" name="hobby" value="게임">게임</label>
                <label><input type="checkbox" name="hobby" value="코딩">코딩</label>
        </fieldset>
    </form>
    
    <br><hr><br>

    <form action = "test5.html" method = "get">
        <fieldset>
                <legend>input type - HTML5양식</legend>
                color : <input type="color" name="a"><br>              
                <!-- 날짜 min : 최소값 / max : 최대값 기간을 제한해줄 수 있다. -->
                date : <input type="date" name="b" min="2023-01-11" max="2023-01-24"><br>
                datetime-local : <input type="datetime-local" name="c"><br>
                month : <input type="month" name="d"><br>
                week : <input type="week" name="e"><br>
                time : <input type="time" name="f"><br>
                <!-- number : 숫자만 입력 가능 value:초기값 step:증가값 -->
                number : <input type="number" name="g" min="1" max="10" value="1" step="2"><br>
                <!-- 입력 시 옆에 x자가 뜬다(보통 모바일에서 많이 사용) -->
                search : <input type="search" name="h"><br>
                <!-- url과 email은 <input type= "text">와 다를게 없어보이지만 전송 시 맞는 형식이 아닐 경우 
                입력 형식을 맞추라고 뜬다(http:// , @) -->
                url : <input type="url" name="i"><br>
                email : <input type="email" name="j"><br>
                <input type = "submit" value="전송">
                <!--전송하면 %23RGB코드날짜 형식으로 넘어간다.문자열로 넘어간다는 의미-->
            </fieldset>
    </form>
    <br><hr><br>
    <from action="test5.html" method="get">
        <fieldset>
            <legend>선택값을 넘기는 기능</legend>
            <select name="a">
                <option value="1">일</option>
                <option value="2">이</option>
                <option value="3">삼</option>
                <option value="4">사</option>
            </select>
        </fieldset><br>
        <!--폼하나에 여러개의 필드셋 사용 가능-->
        <fieldset>
            <!-- 텍스트의 한계점 : 한줄만 전송이 가능하다. 엔터기능이 들어가있지 않음 -->
            <legend>여러줄의 입력값을 전달하는 기능</legend>
            <!-- cols와 rows로 사이즈를 대충 설정해줄 수 있지만 사이지지정은 CSS에서 해준다 -->
            <textarea name="b" cols="40" rows="10"></textarea>
        </fieldset>
    </from>
</body>
</html>

Comments