본문 바로가기
공부/html --- css

21일차

by 샤샤샤샤 2022. 12. 12.

html 은 근본적으로 재미가 없다.

거기에 외워야할 태그는 산더미여서 더더욱 재미가 없다.

 

<img> 태그 : 이미지를 넣는다.

src속성 : 이미지의 주소나 파일 이름을 넣는다.

alt 속성 : 이미지가 없을때 대신 나오는 문구

width height : 이미지의 가로/세로를 정하는 속성

이미지 늘리거나 줄이기 : 본래 해상도의 비율에 맞춰서 늘리거나 줄인다.

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <!-- ex15 -->
  <title>이미지 출력 : img태그</title>
  <!-- 이미지파일 종류 : png, jpg, jpeg, webp, gif, bmp -->
  <!-- png : 무손실압축, 6-70% 주로 모바일에서 사용, 작은 아이콘이미지 등에 사용  -->
  <!-- jpg : 손실압축, 50%, 큰 이미지(배경)를 압축할 때, 주로 PC에서 사용  -->
  <!-- jpeg : 손실압축, 예전포맷이나 요즘은 사용하지 않음. -->
  <!-- webp : 무손실압축, 최신 포맷, 점점 사용이 늘어감. -->
  <!-- gif : 손실압축, 저용량(256컬러), 애니메이션 gif, 움직이는 이미지 용도 -->
  <!-- bmp : 원본파일, 압축없음, 용량 크다, RGBA(Red 1B, Green 1B, Blue 1B, Alpha 1B) -->
  <!--                                           2^8=256 0~255 색의 농도  -->
  <!-- svg : 벡터형식 파일, 확대/축소 손실이 없음. 만들때(일러) 어려움이 있다. -->
  <!-- 이미지 다운로드 하기 : 최대 이미지 무료 사이트 - 픽사베이 -->
</head>
<body>
  <!-- src 속성 : 이미지파일 이름 -->
  <!-- alt 속성 : 이미지파일이 없을때 대체 문구 -->
  <img src="image1.jpg" alt="카페이미지1"><br>
  <img src="image2.jpg" alt="카페이미지2"><br>
  <h1>이미지 해상도 1280 x 853</h1>
  <!-- 이미지 해상도를 원본비율에 맞춰서 확대/축소를 해야 -->
  <!-- 일그러짐이 없다. -->
  <img src="image1.jpg" alt="카페이미지1" width="1000" height="300"><br>
  <!-- image1.jpg을 가로 1000으로 출력하려면, 세로 크기는 ? -->
  <!-- 비율식 1280:853 = 1000:x -->
  <!-- x*1280 = 853*1000  -->
  <!-- x = (853*1000)/1280 -->
  <!-- x = 666 -->
  <img src="image1.jpg" alt="카페이미지1" width="1000" height="666"><br>
  <!-- 연습문제 3 -->
  <!-- image2.jpg의 세로 해상도를 500으로 했을때, 가로 해상도는 몇으로 해야 -->
  <!-- 화면비율이 원본에 맞을지? 이미지를 출력하시오. -->
  <!-- 비율식 853:1280 = x:500 -->
  <!-- x = (853*500)/1280 -->
  <!-- x = 333 -->
  <img src="image2.jpg" alt="카페이미지2" width="333" height="500"><br>

  <!-- 이미지(또는 파일) 다운로그 링크 걸기 : a태그 -->
  <!-- href #의 의미 : 기본값 -->
  <a href="#" download="image1.jpg">image1.jpg 다운로드 링크</a> 

  <br>

  <!-- 무료 아이콘 사이트 : Flaticon.com -->
  <!-- PNG 이미지 다운로드 : play-button -->
  <img src="play-button.png" alt="플레이버튼"> <br>
  <!-- 파일경로 : . 현재폴더(html)  .. 상위폴더(내문서) -->
  <img src="./play-button.png" alt="플레이버튼"> <br>

  <!-- 더미 이미지 : 이미지가 아직 준비되지 않았을때, 레이아웃(배치) 잡을때 -->
  <img src="http://via.placeholder.com/600x300" alt="더미이미지1">
  <img src="http://via.placeholder.com/300x500" alt="더미이미지2">

</body>
</html>

 

서버에 데이터를 보내는 2가지 방식

1. form 태그 통신: html을 이용 - GET/POST 만 존재함

get : 주소줄에 데이터를 노출시켜서 같이 보냄.

post :  HTTP body에 데이터를 실어서 보냄

2. JS의 Ajax(비동기통신)/fetch/axios : 리액트.js/Vue.js

    서버의 기본 api형식은 REST API를 이용한다.

     REST API : GET/POST/PUT/DELETE

 

<form> 태그 : 서버에 데이터(요청)을 보내는 태그. input태그의 데이터를 전송함.

                      기본 메소드는 GET 방식

action 속성 : 데이터를 받는 서버의 주소를 입력

method 속성 : GET/ POST 둘중 원하는 통신 방식을 입력

<input> : 보내고자 하는 데이터를 입력받는 태그

type 속성 : 입력받는 데이터의 형식을 지정

name 속성 : 서버에서 받아들이는 변수 이름

                     서버와 연결되는 변수의 이름

id 속성 : html파일 안에서 유일한 아이디

value 속성 : 텍스트 파일에서는 먼저 입력되어 있는 값.

                    버튼에서는 반환, 리턴값.

 <!--   예) http://myserver.com?id=hong&pw=1234 -->
  <!--       http : 통신방식(ftp,smtp,telnet)  -->
  <!--        :// : 구분자 -->
  <!--       myserver.com : 서버 주소(URL) -->
  <!--       ? : 구분자 (서버주소와 데이타) -->
  <!--      id pw : name역할 -->
  <!--      hong 1234 : 데이터 -->
  <!--      = : 구분자 -->
  <!--      & : 구분자 -->

 

<label> 태그 : 입력 태그의 이름, 제목

for 속성 : 입력태그의 id와 연결되어, label이 그것을 지칭하게 됨.

placeholder 속성 : 힌트문구. 검색창 같은 곳의 반투명한 설명 문구.

 

 

 

type(타입)의 속성들

 

sumit 속성 : 서버로 데이터를 전송함.

checkbox 속성 : 다중체크가 되는 체크박스.

                          서버에서 String[] checkBon 배열로 받는다.

                          여러개를 동시 선택하고자 하면  name을 통일한다.

 <input type="checkbox" id="check1" name="checkBtn" value="ch1"> <label for="check1">
 체크박스1</label> <br>
 <input type="checkbox" id="check2" name="checkBtn" value="ch2"> <label for="check2">
 체크박스2</label> <br>

radio 속성 : 단 하나만 체크할수  하는 박스.

                   서버 String radioBtn = "rb1" 하나로 받는다.

                   여러개 중 하나만 선택하고자 하면 name을 통일한다.

<input type="radio" id="radio1" name="radioBtn" value="rb1"> <label for="radio1">
라디오버튼1</label> <br>
<input type="radio" id="radio2" name="radioBtn" value="rb2"> <label for="radio2">
라디오버튼2</label> <br>
<input type="radio" id="radio3" name="radioBtn" value="rb3"> <label for="radio3">
라디오버튼3</label> <br>

버튼, 체크박스, 라디오들은 from 태그가 존재하더라도 summit 타입이 아니라면 데이터 전송이 안된다.

 

image 속성 : 이미지를 표현하는 동시에 summit기능도 같이 수행한다.

 

formaction 속성 : 서버주소를 다르게 지정할 수 있음.

<input type="submit" value="Input submit2 수정" formaction="http://myserver2.com"><br>
<input type="submit" value="Input submit3 삭제" formaction="http://myserver3.com"><br>

range : 범위를 입력할수 있는 속성.

            min과 max를 통해 최대값과 최솟값을 지정가능하다. step를 통해 간격 조절 가능하다.

 

<select> 태그 : 선택목록 태그.

<option> 태그 : select태그의 선택지를 만든다.

                         value값을 통해 순서를 지정한다.

<textarea> 태그 : 많은 양의 텍스트를 입력할때 사용한다. clos와 row를 통해 가로 세로줄의 갯수를 지정할수 있다.

 

그외의 input type들

color : 색상 선택

date : 날짜 선택

datetiem - local : 날짜-시간 선택

email : 이메일을 보냄. 이때 multiple 속성을 같이 써주면 여러개를 입력해도 배열형식으로 서버로 넘어가게 됨.

month : 달 입력

number : 숫자입력 min 과 max로 최대값과 최소값을 지정해줄수 있으며 step로 간격도 지정 가능하다.

 

 

<a> 태그를 이용해 이미지를 통한 바로가기 링크를 만들수 있다.

<a> 태그에 주소값을 넣고, <a> 태그 내부에 <img> 태그를 이용해서 이미지를 넣으면 된다.

새창에서 열리게 하고 싶으면 target속성에 '_blank'를 넣으면 된다.

 

 

<div> 태그 : 공간을 나눈다. 이를 사용하기 위해서 style태그도 필요하다.

```html
<!DOCTYPE html>
<html lang="ko">
<head>
  <title>공간분할 태그</title>
  <!-- 줄바꿈이 있는 태그 - 한줄 차지 속성 - block속성 -->
  <!-- div태그 -->
  <!-- 줄바꿈이 없는 태그 - 한칸 차지 속성 - inline속성 -->
  <!-- span태그 -->
  <!-- div, span은 다른 태그를 감싸는 속성 - 포장지 -->
  <!-- *--------------------*  -->
  <!-- |        DIV         |  -->
  <!-- *--------------------*  -->
  <!-- | SPAN | SPAN | SPAN |  -->
  <!-- *--------------------*  -->
  <style>
    * { border: 1px solid red; }
  </style>
</head>
<body>
  <div>더미문구입니다.</div>
  <div>더미문구입니다.</div>
  <div>더미문구입니다.</div>
  <span>더미문구입니다.</span>
  <span>더미문구입니다.</span>
  <span>더미문구입니다.</span>
</body>
</html>
```

 

block태그 : 자동 줄바꿈이 됨

                  h1~h6, div, p, hr, table, ol, ul, li, form ...

inline태그 : 줄바꿈이 안됨

                  span, a, input, label, text의 모든 속성(b, i, small...) img, select...

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <title>입력양식태그의 종류 1/2</title>
</head>
<body>
  <!-- 기본 method는 GET방식 -->
  <form action="http://myserver.com" name="myForm" >
    <!-- label태그 : 입력태그의 제목 -->
    <!-- for속성 : 입력태그 id속성과 연결  -->
     <label for="name">이름</label> 
     <!-- id속성 : html파일 안에서 유일한 아이디  -->
     <!-- name속성 : 서버와 연결되는 변수 이름 -->
     <!-- value속성 : 입력된 값 -->
     <input type="text" name="name" id="name" value=""> <br>
     <!-- placeholder : 힌트 문구 -->
     <input type="text" placeholder="주소를 입력하세요." value=""> <br>

     <label for="pw">암호</label> 
     <input type="password" name="pw" id="pw" placeholder="암호입력"> <br>

     <input type="button" value="클릭하세요!" onclick="jsFunc();"> <br>

     <!-- submit : 서버로 데이타 전송 개시!  -->
     <input type="submit" value="서버로 전송!"> <br>

     <!-- 체크박스 : 여러개를 동시 선택할 때 - name을 통일한다. -->
     <!-- 서버 String[] checkBon 배열로 받는다. -->
     <input type="checkbox" id="check1" name="checkBtn" value="ch1"> <label for="check1">체크박스1</label> <br>
     <input type="checkbox" id="check2" name="checkBtn" value="ch2"> <label for="check2">체크박스2</label> <br>
     <input type="checkbox" id="check3" name="checkBtn" value="ch3"> <label for="check3">체크박스3</label> <br>
     <!-- 라디오버튼 : 여러개중 하나만 선택할 때 - name을 통일한다. -->
     <!-- 서버 String radioBtn = "rb1" 하나로 받는다. -->
     <input type="radio" id="radio1" name="radioBtn" value="rb1"> <label for="radio1">라디오버튼1</label> <br>
     <input type="radio" id="radio2" name="radioBtn" value="rb2"> <label for="radio2">라디오버튼2</label> <br>
     <input type="radio" id="radio3" name="radioBtn" value="rb3"> <label for="radio3">라디오버튼3</label> <br>

  </form>
</body>
  <script>
    function jsFunc( ){
      alert("클릭되었습니다!");
      //자바 스크립트로 form태그 submit하기
      var myForm = document.myForm;
      myForm.submit();
    }
  </script>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
  <!-- ex19 -->
  <title>입력양식태그의 종류 2/3</title>
  <!-- input type-button과 button type-button 차이 -->
</head>
<body>
  <form action="http://myserver.com">
    <input type="text" value=""> <br>
    <!-- button 클릭 효과만 있음. 통신안됨. -->
    <input type="button" value="Input button"><br>
    <!-- input태그의 입력값을 초기화. 통신안됨 -->
    <input type="reset" value="Input reset"><br>
    <!-- form태그 통신이 이루어짐. -->
    <input type="submit" value="Input submit 로그인"><br>
    <!-- formaction : 서버주소를 다르게 지정할 수 있음. -->
    <input type="submit" value="Input submit2 수정" formaction="http://myserver2.com"><br>
    <input type="submit" value="Input submit3 삭제" formaction="http://myserver3.com"><br>

    <!-- button 태그는 HTML 4.0부터 소개됨. -->
    <!-- button submit과 동일함. 통신됨. -->
    <button>Button</button><br>
    <!-- 통신됨. -->
    <button type="submit">Button submit</button><br>
    <button type="submit" formaction="http://myserver4.com"></button>
    <!-- button 효과만 있음. 통신안됨 -->
    <button type="button">Button button</button><br>
    <!-- 입력값을 초기화. 통신안됨 -->
    <button type="reset">Button reset</button><br>

    <!-- 이미지 버튼 : submit기능을 하면서 이미지표현 -->
    <!-- input type-image가 submit기능을 한다. -->
    <input type="image" src="play-button.png" width="100" height="100" 
          formaction="http://myserver5.com">
    <button type="submit"width="100" height="100" formaction="http://myserver5.com">
      <img src="play-button.png">
    </button>

  </form>
  
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
  <title>입력양식태그의 종류 3/3</title>
</head>
<body>
  <form action="http://myserver.com">
    <!-- hidden속성 : 화면에 표시되지 않지만, 서버에서 값을 받을 수 있음 -->
    <!-- 게시물의 DB index같은 값을 value에 가질 수 있다. -->
    <input type="hidden" name="hiddenValue" value="hiddenValue">

    <!-- 선택목록 태그 : select태그 -->
    <select name="drink">
      <option value="1">콜라</option>
      <option value="2" selected>사이다</option>
      <option value="3">오렌지쥬스</option>
      <option value="4">맥심커피</option>
    </select>
    <!-- 수평선(구분선) 태그 : hr태그 Horizontal Row -->
    <hr>
    <!-- 색상 선택 태그 - Color Picker -->
    <!-- # : 16진수  00~FF -->
    <!-- RGB : Red Green Blue 빛의 3원색 - 거의 모든 색상을 구현가능 -->
    <!-- #RGB : R 00~FF G 00~FF B 00~FF -->
    <input type="color" name="color" value="#00FF00"> <br>
    <!-- 날짜 선택 -->
    <input type="date" name="date" value="2022-12-12"> <br>
    <!-- 날짜-시간 선택 -->
    <input type="datetime-local" name="datetime" value="2022-12-12T15:07"><br>
    <!-- 이메일 -->
    <!-- multiple속성을 쓰면 배열로 서버에 전달됨. -->
    <input type="email" name="email" value="aaa@gmail.com,bbb@gmail.com" multiple><br>
    <!-- 달 입력 -->
    <input type="month" name="month" value="2022-12"><br>
    <!-- 숫자 입력 -->
    <input type="number" value="1" name="number" min="1" max="10" step="2"><br>
    <!-- 범위 입력 -->
    <input type="range" value="1" name="range"  min="1" max="10" step="1"><br>
    <!-- 많은 양의 텍스트 입력 : textarea태그 -->
    <textarea name="memo" cols="30" rows="10">많은 양의 문자열을 넣을 수 있음.</textarea>
  </form>
</body>
</html>

<!DOCTYPE html>
<html lang="ko">
<head>
  <title>연습문제6 - 그림과 같이 입력양식을 구현하시오.</title>
</head>
<body>
  <h3>회원가입 폼</h3>
  <form action="" method="GET">
    <label>이름   :</label> 
    <input type="text" placeholder="이름을 입력하세요."/> <br />
    <label>비밀번호 :</label> 
    <input type="password" placeholder="비번을 입력하세요." /> <br />
    <label>핸드폰:</label> 
    <input type="text" placeholder="핸드폰을 입력하세요." value="" /> <br />
    <label>이메일:</label> 
    <input type="text" placeholder="이메일을 입력하세요." value="" /> <br />
    <label>성별 </label>
    <input type="radio" name="gender" value="male" checked /><label>남성</label>  
    <input type="radio" name="gender" value="female"/><label>여성</label><br />
    <label>취미 </label>
    <!-- 문자열 배열로 서버에서 받는다. -->
    <input type="checkbox" name="favorite" value="walk"/><label>걷기</label>  
    <input type="checkbox" name="favorite" value="run" checked/><label>달리기</label> 
    <input type="checkbox" name="favorite" value="cycle" /><label>자전거타기</label><br />
    <label>사는곳:</label> 
    <select>
      <option value="서울" selected>서울</option>
      <option value="경기">경기</option>
      <option value="인천">인천</option>
    </select><br>
    <input type="submit" value="회원가입" /> 
  </form>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
  <title>태그별 공간분할 타입</title>
  <!-- block 타입 태그들 -->
  <!-- div h1~h6 p hr table ol ul li form  -->
  <!-- inline 타입 태그들 -->
  <!-- span a input label text속성(b,i,small...) img select -->
</head>
<body>
  <h1>제목 태그 H1</h1>
  <p>문단 태그 p</p>
  <hr>
  <a href="#">바로가기 태그 a</a>
  <i>이탤릭 태그</i>
  <input type="text">
</body>
</html>

'공부 > html --- css' 카테고리의 다른 글

24일차 복습  (0) 2022.12.15
23일차 복습  (0) 2022.12.14
22일차 복습 -2 css시작  (0) 2022.12.13
22일차 - html 끝  (0) 2022.12.13
20일차  (0) 2022.12.11