본문 바로가기
HTML,CSS,JavaScript

HTML 멀티미디어

by 히예네 2023. 5. 2.
728x90
반응형

1. 오디오

속성의 이름과 값이 같다면 생략가능하다

autoplay는 이제 쓰지 않는다.

audio는 다 알아듣는다. 중간에 글씨쓰면 그걸 못알아듣는 브라우저가 있을때 보여준다.

2. 비디오

오디오와 다르게 width, height가 있고, poster화면이 존재한다.

3. iframe

다른페이지를 내거에서 가져온다.

iframe은 네모 박스이다. 그 안에 다른 html을 넣는다.

4. div

그룹핑하는 개념. 레이아웃처럼 요소들을 가둘 수 있다.

 

 

 

 

<!DOCTYPE html>
<html>
    <head></head>
        <title>EX</title>
    </head>
    <body>
        <!-- 오디오 -->
        <!-- 속성의 이름과 값이 같다. controls -->
        <audio src="./audio/old_pop.mp3" controls="controls"></audio>

        <!-- 브라우저마다 호환되는 음원의 파일형식이 다르다. -->
        <!-- 속성명과 값이 같은 글씨라면 속성명만 기입하는 축약설정이 가능함 -->
        <!-- 온라인 컨버터 사이트를 이용하여 다른 파일 형식을 만들기 -->
        <audio controls>
            <!-- 셋중에 하나 틀라는뜻 -->
            <source src="./audio/old_pop.mp3" type="audio/mp3">
            <source src="./audio/old_pop.ogg" type="audio/mp3">
            <source src="./audio/old_pop.wav" type="audio/mp3">
            <!-- 인라인속성, 옆으로 나열된다.  -->
        </audio>

        <hr>

        <!-- 비디오 -->
        <video src="./video/movie.ogv" controls></video>

        <!-- 브라우저 호환성을 고려하여 여러 파일형식을 등록 -->
        <video controls width="640" height="480" poster="./image/coffee.gif" preload="auto">
            <source src="./video/trailer.mp4" type="video.mp4">
            <source src="./video/trailer.mp4" type="video.ogg">
            <source src="./video/trailer.webm" type="video.webm">
        </video>

        <hr>

        <!-- Inline Frame 요소 -->
        <iframe src="../DAY01/Hyeyoung coFFee.html" frameborder="1"></iframe>

        <!-- 다른 서버의 웹문서도 포함 가능함 -->
        <iframe src="http://mrhi2023.dothome.co.kr" frameborder="3"></iframe>
        <iframe src="http://www.mrhi.or.kr" frameborder="0"></iframe>

        <!-- 하이퍼링크요소 앵커 <a>와 <iframe>을 함께 사용. -->
        <!-- 앵커요소에 의해 열리는 웹문서의 target을 iframe으로 지정-->
        <iframe src="" frameborder="1" name="aaa"></iframe>
        <a href="http://www.w3c.org" target="aaa">월드 와이드 웹 공식 사이트</a>
        <a href="http://www.google.com" target="aaa">구글</a>
        
<hr>

        <!-- 영역 그룹 요소 : div(블럭), span(인라인) -->
        <div style="background-color: darkolivegreen; border: 2px; padding-left: 10px;">
            <h2>title</h2>
            <p>this is message</p>
        </div>

        <!-- div을 알아보자 -->
        <p>
            안녕하세요. 나는 <div style="color: aqua;">홍길동</div>입니다
        </p>


        <!-- span을 알아보자 (div와 차이점은?) -->
        <p>
            안녕하세요. 나는  <span style="color: aqua;">홍길동</span>입니다
        </p>

    
    </body>
    </html>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>input element</title>
    </head>
    <body>
        <!-- 텍스트입력기 - text는 한줄입력만 가능하다 -->
        <!-- 너비를 넘어가면 자동 스크롤, size는 글자수 -->
        <input type="text" size="10"><br>
        <!-- password는 인라인요소, 자동 마스킹처리됨 -->
        <input type="password"><br>

        <hr>
        <!-- radio, 하나의 그룹이 되어야만 싱글초이스가 된다.  -->
        <!-- 라디오 버튼의 name 속성값을 같은 값으로 지정하면 그룹이 된다. -->
        라디오 버튼 : <input type="radio" name="rg"> 남자 <input type="radio" name="rg"> 여자 <br>
        
        <!-- 라벨이라는 요소를 이용하면 글씨를 눌렀을때도 라디오버튼이 선택된다. id로 연결한다. -->
        <input type="radio" name="rg2" id="rb1">  <label for="rb1">남자</label>
        <input type="radio" name="rg2" id="rb2" checked="checked">  <label for="rb2">여자</label>
    
        <hr>
        <!-- 체크박스 - 멀티초이스 -->
        <label><input type="checkbox">Apple</label>
        <label><input type="checkbox">Banana</label>
        <label><input type="checkbox">Orange</label>

        <hr>
        <!-- 제출, 초기화 버튼 : <form>요소 안에 있을때만 기능함-->
        <input type="submit" value="전송">
        <input type="reset"> 

        <hr>
        
        <!-- 버튼 만들기-->
        <!-- 1. input요소의 type이 버튼 -->
        <input type="button" value="중복체크" onclick="alert('clicked~ 저리가')"> 

        <hr>
        <!-- 2. button요소 -->
        <button onclick="alert('중복된 id입니다.')">중복체크</button>
        <!-- 2.1 이미지버튼 -->
        <button><img src="./image/ms17.png" alt="ms20" width="50"></button>
        <!-- 2.2 input type 이미지요소를쓴다. form요소의 제출용 이미지버튼. -->
        <input type="image" src="./image/ms17.png" alt="ms20" onclick="alert('경고')" width="50">

        <hr>
        <!-- 여려줄 입력 -->
        <textarea cols="40" rows="5">고양이</textarea>

        <hr>
        <!-- 콤보박스  -->
        <select>
            <option>aaa</option>
            <option>bbb</option>
            <option selected>ccc</option>
        </select>

        <!-- 콤보박스 옵션 그룹 -->
        <select>
            <optgroup label="중식">
                <option>자장면</option>
                <option>짬뽕</option>
                <option>볶음밥</option>
            </optgroup>
            <optgroup label="한식">
                <option>김치찌개</option>
                <option>김밥</option>
                <option>갈비</option>
            </optgroup>
        </select>

        <hr>

        <!-- 입력박스 영역을 시각적으로 보여주는 요소 , 레전드는 위 경계선에 이름표가 박힘-->
        <fieldset>
            <legend>인적사항</legend>
            <label>이름 : <input type="text"></label>
            <label>주소 : <input type="text"></label>
            <label>별명 : <input type="text"></label>
        </fieldset>

    </body>

</html>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Form element</title>
    </head>

    <body>
        <!-- form요소 : anchor처럼 다른 문서 실행하지만 데이터를 전달할 수 있고, 이동을 위한 별도의 input요소가 필요함 -->
        
        <!-- HTTP Request 프로토콜의 2가지 요청 방식 : get, post -->
        <!-- 1. get방식 연습 -->
        <form action="./getTest.php" method="get">
            <!-- name속성 : 서버에 보낼 데이터를 구별하는 식별자 키값 지정 -->
            <input type="text" name="title"> 
            <input type="text" name="msg">
            <input type="submit">
        </form>
  
        <!-- 2. post방식 연습 -->
        <form action="./postTest.php" method="post">
            <fieldset>
                <legend>POST방식 HTTP 요청</legend>
                <label for="in1">name : </label>
                <input type="text" name="name" id="in1"> <br>
                <label>password : <input type="password" name="pw"></label> <br>

                <p>
                    <!-- name속성이 같아야 같은 그룹이다.  -->
                    <!-- 서버로 보내지는 글씨는 value -->
                    gender : 
                    <label><input type="radio" name="rg" value="male">male</label>
                    <label><input type="radio" name="rg" value="female" checked>female</label>
                </p>

                <p>
                    <!-- []배열이라고 서버에게 말해줘야한다. 가장 마지막걸 읽는다 -->
                    fruits:
                    <label><input type="checkbox" name="fruits[]" value="apple" checked>사과</label>
                    <label><input type="checkbox" name="fruits[]" value="banana">바나나</label>
                    <label><input type="checkbox" name="fruits[]" value="orange">오렌지</label>
                </p>

                <p>
                    message :
                    <textarea name="msg" cols="40" rows="5"></textarea>

                </p>

                <p>
                    <select name="brand">
                        <optgroup  label="자동차브랜드">
                            <option value="현대">현대</option>
                            <option selected value="기아">기아</option>
                            <option value="쌍용">쌍용</option>
                        </optgroup>
                    </select>
                </p>

                <!-- 화면에 보이지는 않지만 서버에 데이터를 보내고 싶을때 -->
                <input type="hidden" name="id" value="aaaa">

                <div>
                    <input type="submit">
                    <input type="reset">
                </div>


            </fieldset>
        </form>

    </body>

</html>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Form element 2</title>
    </head>
    <body>
        <!-- 파일 전송, 미디어 데이터는 post방식이다.  -->
        <!-- 서버작업에는 꼭 2개가 필수이다. type="file" name="aaa" -->
        <form action="./file.php" method="post" enctype="multipart/form-data">
            <input type="file" name="aaa" accept="image/png">
            <input type="submit" value="전송">
        </form>
        
        <hr>
        <!-- 여러개의 파일 전송 -->
        <form action="./file2.php" method="post" enctype="multipart/form-data">
            <input type="file" name="bbb[]" multiple>
            <input type="image" src="./image/ms17.png" width="50">
        </form>



    </body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>input element 2</title>
    </head>
    <body>
        <!-- 새로이 추가된 type들 -->
        <input type="date"> <br>
        <input type="datetime-local"> <br>
        <input type="month"> <br>
        <input type="week"> <br>
        <input type="time"> <br>
        <input type="color"> <br>

        <!-- 모바일에서 소프트 키보드의 모양을 결정함 -->
        <input type="email"> <br>
        <input type="tel"> <br>
        <input type="url"> <br>

        <input type="search"> <br>
        <input type="range" min="1" max="10" value="2" step="2"> <br>

        <input type="number" min="220" max="280" step="5" value="220">
        <hr>

        <!-- 새로이 추가된 속성들 -->
        <form>
            <!-- 힌트 -->
            <input type="text" placeholder="힌트입니다."><br>

            <!-- 반드시 입력해야하는 요소 [필수입력란]-->
            <input type="text" required><br>

            <!-- 읽기전용 -->
            <input type="text" readonly value="안혜영님"><br>

            <!-- 자동 포커싱 -->
            <input type="text" autofocus> <br>

            <!-- 글자수제한 -->
            <textarea cols="30" rows="10"></textarea> <br>
            <textarea cols="40" rows="5">고양이</textarea>

            <!-- 자동완성기능, <datalist>요소와 함께 써야함 -->
            <input type="text" autocomplete list="datas"><br>
            <datalist id="datas">
                <option value="canada"></option>
                <option value="china"></option>
                <option value="korea"></option>
            </datalist>

            <input type="submit">
        </form>

    </body>
</html>

<!DOCTYPE html>
<html>
    <head>
        <title>lesson 1 </title>
    </head>
    <body>
        <h3>HTML5 요소 데모 화면</h3>
        이름 : <input type="text"> <br>
        이메일 : <input type="email"> <br>
        웹사이트 : <input type="text"> <br>
        정수 : <input type="number"> <br>
        범위 : <input type="range"> <br>
        메세지 :  <textarea cols="40" rows="5">고양이</textarea>

        <input type="submit">

    </body>
</html>

<!DOCTYPE html>
<html>
    <head>
        <title>lesson 2</title>
    </head>
    <body>
        
       <fieldset>
        <legend>카드 정보 입력</legend>
        1. <fieldset>
            <legend>카드 타입</legend>
            1. <input type="radio" name="rg"> VISA <br>
            2. <input type="radio" name="rg"> AmEx <br>
            3. <input type="radio" name="rg"> MasterCard <br>
        </fieldset>
        2. 카드번호 <input type="number"><br>
        3. CRC소유자 <input type="number"><br>
        4. 카드 소유자 이름 <input type="text" placeholder="카드 상의 이름"><br>
       
       </fieldset>
        <fieldset>
            <input type="submit" value="구매">
        </fieldset>
    </body>
</html>

<?php
    header('Content-Type:text/html; charset=utf-8');
    //사용자로부터 전달받은 파일의 실제데이터는 임시저장소에 배치되고
    //이 php에는 파일정보만 전달되어 옴. [5개의 정보]
    //파일정보 배열 받기
    $file=$_FILES['aaa'];

    //이 밑에 5개의 [식별자]는 이미 정해져는 키워드이다.
    $srcName=$file['name']; //원본파일명
    $type=$file['type'];
    $size=$file['size'];
    $tmpName=$file['tmp_name']; //임시저장소 위치
    $error=$file['error']; //에러정보 
    
    //5개의 정보를 잘 받았는지 응답
    echo $srcName."<br>";
    echo $type."<br>";
    echo $size."<br>";
    echo $tmpName."<br>";
    echo $error."<br>";

    //임시저장소에 있는 파일을 영구히 저장하기 위해 이동시켜야함
    $dstName = "image/".date('YmdHis').$srcName;
    move_uploaded_file($tmpName,$dstName);


?>

<?php
    $file=$_FILES['bbb'];

    //전송된 파일의 개수
    //'tmp_name' 스네이크 표기법임
    //$fileNum = count($file);은 5개로 나온다. 파일의 요소 개수를 불러옴
    $fileNum = count($file['name']);

    for($i=0; $i<$fileNum; $i++){
        $srcName=$file['name'][$i];
        $size=$file['size'][$i];
        $tmpName=$file['tmp_name'][$i];
    }

    //잘 받았는지 echo
    echo "$srcName <br> ";
    echo "$size <br> ";
    echo "$tmpName <br>";
    echo "================================== <br> ";

    //임시저장소 파일들 이동
    $dstName="./image/".date('YmdHis').$srcName;
    $result= move_uploaded_file($tmpName,$dstName);
    if($result) echo "upload success";
    else echo "upload fail";

    echo "================================== <br> ";



?>

<?php
// 내가 보내는 형식은 html형식일거야
    header("content-Type:text/html; charset=utf-8");

    //사용자로부터 (form요소)로부터 GET방식으로 전달된 데이터 받기
    //$_ : 슈퍼전역변수 여기안에 모든 데이터를 받는다
    $title=$_GET['title'];
    $message=$_GET['msg'];

    //잘 받았는지 확인하고자 사용자에게 응답(Response)
    echo "제목 : $title <br>"; 
    echo "메세지 : $message";

    // 이대로 실행하면 php를 해독못함 -> 해독하려면 php를 설치해야하는데.. 웹호스팅으로 가야함

?>

<?php
    header("content-Type:text/html; charset=utf-8");
    //POST 방식으로 전달된 값들 받기

    //php에서는 사용자가 보낸데이터를 쉽게 받을수있다.
    //POST은 배열변수이다. 한두개가 아니다. 연관배열로 받는다. 키값은 글자로
    $name=$_POST['name'];
    $password=$_POST['pw'];
    $gender=$_POST['rg'];
    $message=$_POST['msg'];
    $brand=$_POST['brand'];
    $id=$_POST['id'];
    
    //실무에서는 이 데이터들을 DB에 저장하는 작업

    //메세지의 경우 여러줄일 수 있음. 이때, 줄바꿈문자 \n을 브라우저에서는 <br>태그로 변경하여 보여줘야함.
    //php는 c언어로 만들었다.
    //nl to br ->이건 너무 많이쓰는 !
    $message= nl2br($message);

    //잘 받았는지 확인하는 목적으로 데이터들 출력(응답 : Response)
    echo "<h2>$name</h2>";
    echo "<p>$password</p>";
    echo "<p>$gender</p>";
    echo "<p>$message</p>";
    echo "<p>$brand</p>";
    echo "<p>$id</p>";


    //멀티 초이스에 의해 선택된 값들은 배열로 전달받기에 반복문으로 값 echo
    //후르츠[]을쓰지 않는다.
    $fruits=$_POST['fruits'];
    $num= count($fruits);
    for($i=0; $i<$num; $i++){
        echo "$fruits[$i],";
    }


?>
728x90
반응형

'HTML,CSS,JavaScript' 카테고리의 다른 글

CSS 회원가입 창 만들기  (0) 2023.05.03
CSS 레이아웃2  (0) 2023.05.03
CSS 레이아웃  (0) 2023.05.03
CSS3  (0) 2023.05.02
HTML WebUI 구현  (0) 2023.05.02