HTML5, CSS3/HTML5, CSS3

23-02-15 HTML5

모건이삼촌 2023. 2. 15. 18:13

※ 스피너바 레인지바 드롭다운

 

※input태그

<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
  <style>
    form {width: 500px; margin: 0 auto;}
    form input:not([type="checkbox"]), form button {width:90%; padding: 8px; margin: 10px 0;}
    form output {font-size: 11px; color: red;}
  </style>
  </head>
<body>
  <form name="frm">
    <legend>로그인</legend>
    <label for="id">ID</label><br>
    <input id="id" name="userid" placeholder="아이디를 입력하세요"><br>
    <label for="pw">비밀번호</label><br>
    <input type="password" id="pw" name="password" placeholder="비밀번호를 입력하세요"><br>
    <label><input type="checkbox">아이디 저장</label><br>
    <output name="result"></output>
    <!-- <button>로그인</button> -->
    <input type="submit" value="로그인">
  </form>
  <script>
    let frm = document.frm;
    frm.addEventListener("submit", function(e) { // 기본이벤트 제거
      frm.result.innerHTML = "";
      event.preventDefault(); 
      if(!frm.userid.value.trim()) {
        frm.result.innerHTML = "아이디를 입력하세요";
      }
      else if(frm.password.value.trim().length == 0) { // !와 .length==0은 같음
        frm.result.innerHTML = "비밀번호를 입력하세요";
      }
      else {
        frm.submit(); // form타입에 대한 서식전송
      }
    })
  </script>
</body>
</html>

form 태그

 1) 속성

  - 텍스트를 입력할 수 있는 form태그는 길이를 제한할 수 있다

  - action : 서식에 대한 통신을 할 시 수신할 페이지

  - method : http프로토콜에는 메서드가 있으며 통신수단에는 method가 사용되고 4가지정도가 사용됨

                   form태그에 사용되는 method는 post(create / 데이터 생성), get(read / 데이터 조회) 이며 기본값은 get이다

                   사용자의 입력값을 서버에서 처리할 때 post를 사용한다 (get방식은 쿼리스트링에 노출되기 때문)

 2) novalidate

  - form타입에 대한 유효성검증을 하지 않겠다는 의미

<form novalidate>

 3) readonly

 4) disabled

 5) textarea

<textarea name="content" cols="30" rows="10"></textarea>

  <input type="text" name="result" size="50" maxlength="10" minlength="3">

size는 입력칸의 사이즈, min, max는 입력값의 범의 조절이다.

<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
  <form>
    <p><input type="color" name="color"></p>
    <button>전송</button>
  </form>  
</body>
</html>

 

컬러피커에서 색상을 선택한 후 전송버튼을 누르면 

%23ff0000

%23 = #

ff0000 = 색상 (16진수)

<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
  <form>
    <p><input type="color" name="color"></p>
    <p>month<input type="month" name="month"></p>
    <p>week<input type="week" name="week"></p>
    <p>date<input type="date" name="date"></p>
    <p>time<input type="time" name="time"></p>
    <p>datetime-local<input type="datetime-local" name="datetime-local"></p>
    <button>전송</button>
  </form>  
</body>
</html>

 

color=%23000000&month=2023-02&week=2023-W07&date=2023-02-15&time=10%3A42&datetime-local=2023-02-15T10%3A42

 

T를 이용하여 연월일과 시분초를 구분

 

* min, max 속성값 사용

<p>date<input type="date" name="date" min="2023-02-03" max="2023-02-22"></p>

datepicker

 <p>tel<input type="tel" name="tel"></p>
    <p>url<input url="time" name="url"></p>
    <p>email<input type="email" name="email"></p>
    <p>search<input type="search" name="search"></p>
    <button>전송</button>

유효성검사도 해줌

 

    <p>number<input type="number" name="number"></p>
    <p>range<input type="range" name="range"></p>

number, range는 min, max, step의 속성값을 사용할 수 있음

 

    <p>file<input type="file" name="file"></p>
    <p>hidden<input type="hidden" name="hidden"></p>
    <p>image<input type="image" name="image"></p>

file을 전송할수 있는 기능이며 메서드가 post이고 enctype이 multipart/form-data이여야 파일 스트림이 전송된다

만약 메서드에 기본값인 get이라면 파일명만 전송된다.

속성값으로는 multiple이 있으며 사용하게되면 여러개의 파일을 한번에 전송할 수 있다.

 

hidden은 안보이지만 전송해야 하는 값이 있어야할 때 사용한다. hidden은 사용할 때 value값도 같이 사용해줘야 한다.

image는 submit과 같으며 이미지를 통한 전송을 ?? 항상 속성값에 src를 사용하여 경로를 지정해줘야 한다.

    <p>image<input type="image" name="image" src="../img/brando-iicon.png"></p>

 

<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
<form>
  <fieldset>
    <legend>
      <h3>수강 형태</h3>
    </legend>
    <label><input type="radio" name="sugang" value="day"> 주간 </label>
    <label><input type="radio" name="sugang" value="night"> 야간 </label>
    <button>전송</button>
  </fieldset>
</form>  
</body>
</html>

이름값이 같으면 하나만 선택 할 수 있고 이름값이 다르면 둘다 선택할수 있으며 체크는 해제할 수 없다.

 

<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
<form>
  <fieldset>
    <legend>
      <h3>수강 형태</h3>
    </legend>
    <label><input type="radio" name="sugang" value="day"> 주간 </label>
    <label><input type="radio" name="sugang1" value="night"> 야간 </label>
  </fieldset>
  <fieldset>
    <legend>
      <h3>수강 과목</h3>
    </legend>
    <label><input type="checkbox" name="subject" value="java"> 자바프로그래밍 </label>
    <label><input type="checkbox" name="subject" value="db"> 데이터베이스 </label>
    <label><input type="checkbox" name="subject" value="html"> HTML5 </label>
  </fieldset>
  <button>전송</button>
</form>  
</body>

sugang=day&subject=java&subject=db&subject=html

 

※select 태그

단일선택

<fieldset>
    <legend>
      <h3>성별</h3>
    </legend>
    <select name="gender">
      <option value="male">남</option>
      <option value="female">녀</option>
    </select>
  </fieldset>
  <button>전송</button>

gender=female

 

다중선택 (multple 속성 사용)

 <fieldset>
    <legend>
      <h3>취미</h3>
    </legend>
    <select name="hobby" multiple>
      <option value="exec">운동</option>
      <option value="sing">노래</option>
      <option value="read">독서</option>
      <option value="game">게임</option>
    </select>
  </fieldset>
  <button>전송</button>

Ctrl을 누른 상태로 클릭하면 다중선택이 된다.

 

 6) kbd 태그

  - 

 

 7) label 태그

 

 8) map 태그

  - 링크와 이미지태그의 합성

  - 이미지태그를 써서 a태그 내부에 링크를 썼음

  - 하나의 거대한 이미지 내에서 링크의 영역을 구분

  - rect, circle, poly

 

 

※ 주의사항

usemap 사용시 이름앞에 #을 사용해야함

<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
  <div>
    <img src="../img/restaurant-img4.jpg" width="744" height="710" usemap="#rectmap">
    <map name="rectmap">
      <area shape="rect" coords="20m 180, 340, 602" href="https://www.naver.com">
    </map>
  </div>  
</body>
</html>

사격형은 좌표를 4개 사용하며

20, 180은 이미지 크기의 시작점 340,602는 끝점이다.

 

 

<area shape="circle" coords="540, 50, 40" href="https://www.google.com">

원은 좌표 3개를 사용하며

중심값과 반지름값만 있으면 된다

<area shape="circle" coords="540, 50, 40" href="https://www.google.com">

http://maschek.hu/imagemap/imgmap/ 맵 좌표 만들어주는 사이트

 

 

9)Object 태그 (거의안씀)

외부플러그인을 사용하기 위한 태그

 

10) samp 태그 (사용안함)

 

11)small 태그 (사용안함 / css사용)

 

 12) script 태그

html과 css가 결합되고 웹페이지에 로드된 후 브라우저 자바스크립트 엔진에 의해 실행됨

태그위치에 대한 제한이 없음 (아무곳에서나 사용 가능)

속성은 src = 'URL/파일명.js

 

 13) span태그

 인라인 요소를 묶을때 사용함

 

 14)sub태그 (잘안씀 / css사용)

  아래첨자 태그

 

 15) textarea

  여러줄의 텍스트를 입력할때 사용

드래그앤 드롭하면 크기가 변경되는데 resize:none로 설정하면 크기조절을 안함

 

 16)ruby 태그 (많이 사용함)

윗주를 정의함

  <h2><ruby>大<rt>대</rt>韓<rt>한</rt>民<rt>민</rt>國<rt>국</rt></ruby></h2>

 * sass

 

 16) ins

추가된 글자 아래에 밑줄이 생김

 

 17)del

글자 중간에 가로줄이 생김

 

※ 블록 요소

1. 개념

 - 줄 바꿈이 발생하는 요소

 - 너비와 높이값을 조정할 수 있음 (인라인은 불가)

 - 블록 요소안에는 ㅡ인라인요소, 블록요소를 포함할 수 있음

 - 블록요소를 text-align으로 가로정렬할 수 있다

 - 블록요소를 vertical-align으로 세로정렬할 수 없음

 - 블록요소를 display속성으로 인라인요소로 변경할 수 있음

 

2. 헤딩요소

 - 헤딩은 제목 또는 부제목

 - <h1>가장 큰 제목 ~ <h6>가장 작은 제목

 -

<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
  <h1>프론트앤드</h1>  
  <h2>프론트앤드</h2>  
  <h3>프론트앤드</h3>  
  <h4>프론트앤드</h4>  
  <h5>프론트앤드</h5>  
  <h6>프론트앤드</h6>  
</body>
</html>

border - 테두리

margin - 테두리를 기준으로 외부지역의 경계

padding - 

 

2. 디비젼 요소 div

 - 블록요소들과 인라인 요소들의 그룹단위로 정의 

 - 여백이 없음

 

3. p 태그

 - Paragraph의 약어 (문단)

 - 상하여백 존재

 

 

1, 2, 3 혼합예제)

<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
  <style>
    body {margin: 0;}
    #header, #footer {text-align : center; background-color: azure; padding: 20px;}
    #container {min-height: 800px; width: 1130px; padding: 30px; margin-left: auto; margin-right: auto;}
    #section {margin: 0; width: 748px; float: left; border: 1px solid;}
    #aside {margin: 0; width: 348px; float: right; border: 1px solid;}
  </style>
<body>
  <div id="wrap">
    <div id="header">
      <h1>머릿말 부분</h1>
      </div>
      <div id="container">
        <h3 id="section">본문 부분</h3>
        <h3 id="aside">로그인 부분</h3>
      </div>
      <div id="footer">
        <p>copyright &copy; all rights reserved.</p>
    </div>
  </div>  
</body>
</html>

4. figure, figcaption (많이 안씀)

다이어그램, 사진 등과 같이 문서의 주요 흐름과는 독립적인 콘텐츠를 정의할 때 사용

 

5. blockquote (거의 안씀)

블록레벨의 인용?

 

6. address 요소 (많이안씀)

소유자 또는 작성자의 연락처를 나타내는 태그

문서나 문서의 저자/소유자의 연락처 정보를 정의

 

7. pre 요소

정의 텍스트를 미리 포맷

공백처리기법

들여쓰기, 사이 띄우기 칸 띄운 만큼 공백이 생김

 

8. 가로줄 요소 hr  (안씀)

횡긋기

회색, 1px

 

9.ul 태그(ul과 li를 알면 됨)

 1) ul태그 중첩 (2단중첩까지는 많이 사용)

  - ul안에 ul이 있음

 2) 서브메뉴 사용법

 

10. ol, li태그

 

 

11. table

 - tr : 행

 - td : 셀(열)

 

11-1) 병합

 셀병합 : colspan

 행병합 : rowspan

예제)

<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
  <style>
    table {margin: 0 auto;}
    table td {width: 100px; height: 50px; text-align: center;}
  </style>
</head>
<body>
  <table border="1">
    <tr>
      <td colspan="3" rowspan="2">1</td>
      <!-- <td>2</td> -->
      <!-- <td>3</td> -->
      <td>4</td>
      <td>5</td>
    </tr>
    <tr>
      <!-- <td rowspan="2">5</td> -->
      <!-- <td colspan="2" rowspan="2">6</td> -->
      <!-- <td>6</td> -->
      <!-- <td>7</td> -->
      <!-- <td>8</td> -->
      <td rowspan="2">9</td>
      <td>10</td>
    </tr>
    <tr>
      <td>11</td>
      <td>12</td>
      <td>13</td>
      <!-- <td>14</td> -->
      <td>15</td>
    </tr>
    <tr>
      <td colspan="2">16</td>
      <!-- <td>17</td> -->
      <td>18</td>
      <td>19</td>
      <td>20</td>
    </tr>
    <tr>
      <td>21</td>
      <td>22</td>
      <td colspan="3">23</td>
      <!-- <td>24</td> -->
      <!-- <td>25</td> -->
    </tr>
  </table>
  
</body>
</html>

 - tbody : 행별 구획을 짓는 태그

 - tfoot : 합계 등 최하단 셀을 만드는 태그

<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>

</head>
<body>
  <button id="btn">이미지 추가</button>  
  <script>
    let cnt = 0;
    document.getElementById("btn").addEventListener("click", function() {
      let img = document.createElement("img");
      img.src = "../img/html5_icon.png";
      img.title = 'html 로고';
      img.alt = "html 로고" + cnt++;

      document.body.appendChild(img);
    });
  </script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>Page Title</title>
  <meta name='viewport' content='width=device-width, initial-scale=1'>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
  <button id="btn">이미지 추가</button>  
  <script>
    let cnt = 0;
    // document.getElementById("btn").addEventListener("click", function() {
    //   let img = document.createElement("img");
    //   img.src = "../img/html5_icon.png";
    //   img.title = 'html 로고';
    //   img.alt = "html 로고" + cnt++;

    //   document.body.appendChild(img);
    // });
    $("#btn").click(function(){
      $("<img>")
      .attr("src","../img/html5_icon.png")
      .attr("title","html 로고")
      .attr("alt","html 로고" + cnt++)
      .appendTo("body");
    })
  </script>
</body>
</html>

 

'HTML5, CSS3 > HTML5, CSS3' 카테고리의 다른 글

23-02-17 CSS3  (0) 2023.02.17
23-02-16 HTML5  (0) 2023.02.16
23-02-14 HTML5, CSS3  (0) 2023.02.14
23-02-13 html5, css3  (0) 2023.02.13
23-02-10 html5, css3 (설치, 웹표준)  (0) 2023.02.10