화면구현/HTML

스타일 사용법(내부와 인라인과 배열)

psys 2020. 6. 23. 10:41
728x90

*** 스타일은 단위 명시!!***

속성에서는 명시 안 해줘도 됨

 

외부 스타일

페이지를 따로 만들어

 

내부스타일

<style>
        #id_ball {
            background-image: url('./images/222.jpg');
            background-size: 100px 100px;
            position: absolute;
            width: 100px;
            height: 100px;
            /* left: 100px;
            right: 100px;
            top: 100px; */
            right: 20px;
            bottom: 30px;
            border-radius: 50px 50px;
            background-color: yellowgreen;
        }
    </style>

 

인라인 스타일 접근법

(-하이픈 들어간것)

하이픈빼고 대문자

권장 사용법

    <div id="id_ball" style="left: 60px;top: 60px;
                            background-image: url('./images/222.jpg');
                            background-size: 100px 100px;">
    </div>
    <script>
        alert("배경: "+v_ball.style.backgroundImage+" 사이즈: "+v_ball.style.backgroundSize);
    </script>

 

배열접근법

    <div id="id_ball" style="left: 60px;top: 60px;
                            background-image: url('./images/222.jpg');
                            background-size: 100px 100px;">
    </div>
    <script>
        alert("배경: "+v_ball.style["backgroundImage"]+"\n사이즈: "+v_ball.style["backgroundSize"]);
    </script>

 

>> 움직이며 이미지가 변경되게

더보기

이전코드

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #id_ball {
            position: absolute;
            width: 100px;
            height: 100px;
            /* left: 100px;
            right: 100px;
            top: 100px; */
            right: 20px;
            bottom: 30px;
            border-radius: 50px 50px;
            background-color: yellowgreen;
        }
    </style>
</head>

<body>
    <input type="button" value="저절로 움직이기" onclick="f_proxy()">
    <div id="id_ball" style="left: 60px;top: 60px;
                            background-image: url('./images/222.jpg');
                            background-size: 100px 100px;">
    </div>
    <script>
        // 새로운 키워드 javascript 브라우져를 참조하는 식별자 window
        var v_ball = document.getElementById("id_ball");
        // alert("배경: "+v_ball.style.backgroundImage+"\n사이즈: "+v_ball.style.backgroundSize);
        //alert("배경: "+v_ball.style["backgroundImage"]+"\n사이즈: "+v_ball.style["backgroundSize"]);
        var v_wWidth = window.innerWidth;
        var v_hHeight = window.innerHeight;
        var v_mvW = 10;  // 좌우 방향 컨트롤
        var v_mvH = 10;  // 상하 방향 컨트롤
        var isRun = false; //아직 실행되고 있지 않은 상황

        function f_proxy() { // proxy는 대리인이라는 뜻
            if (!isRun) {
                f_mv1();
                isRun = true;
            }
        }
        function f_mv1() {
            var v_left = parseInt(v_ball.style.left);
            var v_top = parseInt(v_ball.style.top);
            v_ball.style.left = v_left + v_mvW + "px"; // 단위를 빼먹으면 동작 안함!
            v_ball.style.top = v_top + v_mvH + "px"; // 단위를 빼먹으면 동작 안함!
            v_left = parseInt(v_ball.style.left);
            v_top = parseInt(v_ball.style.top);
            // 오른쪽 벽에 닿거나 넘어선다면
            if ((v_left + 100) >= v_wWidth || v_left <= 0) {
                v_mvW = -v_mvW;   // +10 을 -10으로 바꾸어 줌!
            }
            // 위아래 부딪혔을 때
            if ((v_top + 100) >= v_hHeight || v_top <= 0) {
                v_mvH = -v_mvH;   // +10 을 -10으로 바꾸어 줌!
            }
            setTimeout(f_mv1, 3);
        }
    </script>
</body>

</html>

1) 틀잡기

            v_ball.style.backgroundImage="url("+경로+")";

2) 경로만들기

<script>
    var v_number = 0;
    function f_mv1(){
	    if(v_number>7){
                v_number=0;
            }
            var v_path = "./images/all"+(v_number++)+".jpg";
            v_ball.style.backgroundImage="url("+v_path+")";
            setTimeout(f_mv1, 300);
    }
</script>

 

3) 전체는?

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #id_ball {
            position: absolute;
            width: 100px;
            height: 100px;
            /* left: 100px;
            right: 100px;
            top: 100px; */
            right: 20px;
            bottom: 30px;
            border-radius: 50px 50px;
            background-color: yellowgreen;
        }
    </style>
</head>

<body>
    <input type="button" value="저절로 움직이기" onclick="f_proxy()">
    <div id="id_ball" style="left: 60px;top: 60px;
                            background-image: url('./images/222.jpg');
                            background-size: 100px 100px;">
    </div>
    <script>
        // 새로운 키워드 javascript 브라우져를 참조하는 식별자 window
        var v_ball = document.getElementById("id_ball");
        // alert("배경: "+v_ball.style.backgroundImage+"\n사이즈: "+v_ball.style.backgroundSize);
        // alert("배경: "+v_ball.style["backgroundImage"]+"\n사이즈: "+v_ball.style["backgroundSize"]);
        var v_wWidth = window.innerWidth;
        var v_hHeight = window.innerHeight;
        var v_mvW = 10;  // 좌우 방향 컨트롤
        var v_mvH = 10;  // 상하 방향 컨트롤
        var isRun = false; //아직 실행되고 있지 않은 상황

        function f_proxy() { // proxy는 대리인이라는 뜻
            if (!isRun) {
                f_mv1();
                isRun = true;
            }
        }
        var v_number=0;
        function f_mv1() {
            var v_left = parseInt(v_ball.style.left);
            var v_top = parseInt(v_ball.style.top);
            v_ball.style.left = v_left + v_mvW + "px"; // 단위를 빼먹으면 동작 안함!
            v_ball.style.top = v_top + v_mvH + "px"; // 단위를 빼먹으면 동작 안함!
            v_left = parseInt(v_ball.style.left);
            v_top = parseInt(v_ball.style.top);
            // 오른쪽 벽에 닿거나 넘어선다면
            if ((v_left + 100) >= v_wWidth || v_left <= 0) {
                v_mvW = -v_mvW;   // +10 을 -10으로 바꾸어 줌!
            }
            // 위아래 부딪혔을 때
            if ((v_top + 100) >= v_hHeight || v_top <= 0) {
                v_mvH = -v_mvH;   // +10 을 -10으로 바꾸어 줌!
            }
            if(v_number>7){
                v_number=0;
            }
            var v_path = "./images/all"+(v_number++)+".jpg";
            v_ball.style.backgroundImage="url("+v_path+")";
            setTimeout(f_mv1, 300);
        }
    </script>
</body>

</html>

 

transform

    v_ball.style.transform="rotate("+각도+"deg)";

 

<script>
    var v_gak=0;
    function f_mv1(){
    	    v_gak=v_gak+10;
            v_ball.style.transform="rotate("+v_gak+"deg)";
    }   
</script>

360 넘어가면 값이 너무 커져! 필요없는 값들이 생성이된다

    v_gak=(v_gak+10)%360;

>> 전체

더보기
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #id_ball {
            position: absolute;
            width: 100px;
            height: 100px;
            /* left: 100px;
            right: 100px;
            top: 100px; */
            right: 20px;
            bottom: 30px;
            border-radius: 50px 50px;
            background-color: yellowgreen;
        }
    </style>
</head>

<body>
    <input type="button" value="저절로 움직이기" onclick="f_proxy()">
    <div id="id_ball" style="left: 60px;top: 60px;
                            background-image: url('./images/222.jpg');
                            background-size: 100px 100px;">
    </div>
    <script>
        // 새로운 키워드 javascript 브라우져를 참조하는 식별자 window
        var v_ball = document.getElementById("id_ball");
        // alert("배경: "+v_ball.style.backgroundImage+"\n사이즈: "+v_ball.style.backgroundSize);
        // alert("배경: "+v_ball.style["backgroundImage"]+"\n사이즈: "+v_ball.style["backgroundSize"]);
        var v_wWidth = window.innerWidth;
        var v_hHeight = window.innerHeight;
        var v_mvW = 10;  // 좌우 방향 컨트롤
        var v_mvH = 10;  // 상하 방향 컨트롤
        var isRun = false; //아직 실행되고 있지 않은 상황

        function f_proxy() { // proxy는 대리인이라는 뜻
            if (!isRun) {
                f_mv1();
                isRun = true;
            }
        }
        var v_number=0;
        var v_gak = 0;
        function f_mv1() {
            var v_left = parseInt(v_ball.style.left);
            var v_top = parseInt(v_ball.style.top);
            v_ball.style.left = v_left + v_mvW + "px"; // 단위를 빼먹으면 동작 안함!
            v_ball.style.top = v_top + v_mvH + "px"; // 단위를 빼먹으면 동작 안함!
            v_left = parseInt(v_ball.style.left);
            v_top = parseInt(v_ball.style.top);
            // 오른쪽 벽에 닿거나 넘어선다면
            if ((v_left + 100) >= v_wWidth || v_left <= 0) {
                v_mvW = -v_mvW;   // +10 을 -10으로 바꾸어 줌!
            }
            // 위아래 부딪혔을 때
            if ((v_top + 100) >= v_hHeight || v_top <= 0) {
                v_mvH = -v_mvH;   // +10 을 -10으로 바꾸어 줌!
            }
            if(v_number>7){
                v_number=0;
            }
            var v_path = "./images/all"+(v_number++)+".jpg";
            v_ball.style.backgroundImage="url("+v_path+")";
    	    v_gak=(v_gak+10)%360;
            v_ball.style.transform="rotate("+v_gak+"deg)";
            setTimeout(f_mv1, 300);
        }
    </script>
</body>

</html>

 

transform에 대해 자세히 알아보자

1) 사진 넣기

<body>
    <img src="images/all0.jpg" width="200" height="200">
    <img src="images/all1.jpg" width="200" height="200">
    <img src="images/all2.jpg" width="200" height="200">
</body>

 

2) 버튼생성

<body>
    <input type="button" value="눌러봐" onclick="f_rot()"><br><br>
    <img id="all0" src="images/all0.jpg" width="200" height="200">
    <img id="all1" src="images/all1.jpg" width="200" height="200">
    <img id="all2" src="images/all2.jpg" width="200" height="200">
</body>

 

3) onclick함수 구현

    <script>
        var v_mon0 = document.getElementById("all0");
        var v_mon1 = document.getElementById("all1");
        var v_mon2 = document.getElementById("all2");
        var v_gak = 0;
        function f_rot() {
            v_gak = (v_gak + 15) % 360;
            v_mon0.style.transform = "rotateX(" + v_gak + "deg)";
            v_mon1.style.transform = "rotateY(" + v_gak + "deg)";
            v_mon2.style.transform = "rotateZ(" + v_gak + "deg)";
        }
    </script>

>> z축으로 도는 것이 default값!!

 

4) setTimeout

        setTimeout(f_rot, 50);
더보기

>> 전체

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input type="button" value="눌러봐" onclick="f_rot()"><br><br>
    <img id="all0" src="images/all0.jpg" width="200" height="200">
    <img id="all1" src="images/all1.jpg" width="200" height="200">
    <img id="all2" src="images/all2.jpg" width="200" height="200">
    <script>
        var v_mon0 = document.getElementById("all0");
        var v_mon1 = document.getElementById("all1");
        var v_mon2 = document.getElementById("all2");
        var v_gak = 0;
        function f_rot() {
            v_gak = (v_gak + 15) % 360;
            v_mon0.style.transform = "rotateX(" + v_gak + "deg)";
            v_mon1.style.transform = "rotateY(" + v_gak + "deg)";
            v_mon2.style.transform = "rotateZ(" + v_gak + "deg)";
            setTimeout(f_rot, 50);
        }
    </script>
</body>
</html>

 

 

'화면구현 > HTML' 카테고리의 다른 글

오버플로우  (0) 2020.06.24
Position2  (0) 2020.06.23
Position  (2) 2020.06.22
타이머  (0) 2020.06.22
Text Area  (0) 2020.06.22