Html,Jsp,Css_04 Html/Jsp/Javascript 2011. 10. 13. 23:45

전일에 이어 스타일시트 글자속성 중 background img 부터..

style.css 수정 후 link로 style.css파일을 import하는 tag가 입력되어 있는 style2.html에서 확인

 

8. background : 배경 설정 스타일시트

 

 8-1. background-image : 스타일 시트를 적용하는 구간 : Document, 즉 Body

 

        → BODY {background-image: url(..\HTML\img\ Untitled-1_02.gif);}

        ▲ 이미지 가져오기

 

 8-2. background-repeat : 반복여부 결정

 

        → BODY {background-repeat: no-repeat;}

                  ▲ no-repeat: 반복없이 한번만 백그라운드 이미지 사용

 

        → BODY {background-repeat: repeat;}

             ▲ repeat: 전체 무한반복 (기본값)

 

        → BODY {background-repeat: repeat-x;}

             ▲ 상단 X축 한줄만 무한반복

 

        → BODY {background-repeat: repeat-y;}

             ▲ 좌측 Y축 한줄만 무한반복

 

 8-3. background-attachment : 배경고정

 

        → BODY {background-attachment: fixed;}

             ▲ 스크롤바를 내려도 배경은 고정

 

 8-4. background-position : 배경이미지의 위치지정

 

        → background-position:50% 100%;}

             ▲ 이미지의 중심점을 기준으로 X좌표와 Y좌표를 백분율(%)로 표시

          꼭 백분율(%)이 아니라 left, center, right, top, middel, bottom값으로도 표시가능

 

 8-5. 속성의 그룹화 (8-1~8-4) : background 라는 속성명이 같아 그룹화 가능

 

        → BODY {background: url(..\HTML\img\ Untitled-1_02.gif) no-repeat fixed 50% 100%;}

        ▲ 각 속성값의 순서는 바뀌어도 관계 없음

 

# CODE

 

- 그룹을 풀어 놓은 소스

 

BODY {

             background-image:url..\HTML\img\Untitled-1_02.gif);

             background-repeat:no-repeat;

             background-attachment:fixed;

             background-position:50% 100%;

             }

 

- 그룹화 소스

 

BODY {

           background: url..\HTML\img\Untitled-1_02.gif) no-repeat fixed 50% 100%;

          }

 

- body 적용 소스 (style2.html)

 

<link rel="stylesheet" type="text/css" href="style.css">

 

배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림

<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>배경그림<p>

<p>외부스타일 적용하기</p>

<div>외부스타일 적용하기2</div>

<a href="#">외부스타일 적용하기3</a>

 

 

# 결과 ▽

 

 

 

* 스타일시트를 외부에서 불러오기로 위와같이 (style.css에 속성값 저장 후 style2.html에서  <link rel="stylesheet" type="text/css" href="style.css"> 소스를 입력하여 import 하는 방식으로) 테스트 하는데 불편함이 있어 style3.html 을 작성 후 전일 기술했던 1. inLine방식(body안의 태그에 직접입력)  2. style태그를 이용한 방식(head안에 <style>TAG</style>)으로 바로 실행 결과를 볼 수 있도록 한다.

 

A. 스타일시트 (box) : <head>와 </head>사이에 <style>입력</style>

 

 1. box의 여백(margin)설정

 

1-1. 풀어진 소스

 

        → .margin1{margin-top:50px;}

             ▲ .클래스명{속성명:크기} : 본문 위쪽 기준 50px 여백 설정

 

        → .margin1{margin-right:50px;}

             ▲ .클래스명{속성명:크기} : 본문 오른쪽 기준 50px 여백 설정

 

        → .margin1{margin-bottom:50px;}

             ▲ .클래스명{속성명:크기} : 본문 아래쪽 기준 50px 여백 설정

 

        → .margin1{margin-left:50px; }

             ▲ .클래스명{속성명:크기} : 본문 왼쪽 기준 50px 여백 설정

 

1-2. 합쳐진 그룹소스

 

        → .margin2{margin:50px 20px 50px 20px;}

             ▲ .클래스명{속성명:top right bottom left;} : top기준 시계방향

 

# CODE

 

- 그룹을 풀어 놓은 소스

 

.margin1{

                margin-top:50px;

                margin-right:50px;

                margin-bottom:50px;

                margin-left:50px;

              }

 

- 그룹화 소스

 

.margin2{

                margin:50px 20px 50px 20px;

               }

 

- body 적용 소스 (style3.html)

 

<p class="margin1" style="background-color:#ffff66">margin1 p</p>

<div class="margin2" style="background-color:#ffcc00">margin2 div</div>

 

# 결과 ▽

 

 

 

 

 2. box의 border(선)설정

 

2-1. border-style : 선의 전체 모양

 

         → .border1{border-style: dotted;} : 점선 ▽

          

 

         → .border1{border-style: solid;} : 실선 ▽

          

 

         → .border1{border-style: dashed;} : 긴 점선 ▽

          

 

         → .border1{border-style: double;} : 이중 실선 ▽

          

 

         → .border1{border-style: groove;} : 오목하게 들어간 선 ▽

          

 

         → .border1{border-style: ridge;} : 볼록하게 나온 선 ▽

           

 

         → .border1{border-style: inset;} : 왼쪽에 빛이 비춰져 오목한 모양의 명암 ▽

         

 

         → .border1{border-style: outset;} : 왼쪽에서 빛이 비춰져 볼록한 모양의 명암 ▽

          

 

              ▲ .클래스명{속성명: 선종류;} : 상하좌우 그룹화

 

  ※ 시계방향 속성이 적용되며 1개 입력시 전체적용 / 2개 상하 좌우 / 3개 입력시 상 우좌 하 / 4개 입력시 상 우 좌 하 적용 : 스타일시트내 그룹화 소스에 적용되나 그룹의그룹(2-7) 에는 각 그룹의 한 속성까지만 가져올 수 있어 불가능하다

 

2-2. border-방향-style :  선의 일부 모양

 

         → .border1{

                              border-top-style: solid;

                              border-right-style: dashed;

                              border-bottom-style: double;

                              border-left-style: groove;

                              }

              ▲ 상 : 실선 / 우 : 긴 점선 / 하 : 이중 실선 / 좌 : 오목하게 들어간 선.

                  그룹을 풀어 놓은 형태

 

# 결과

 

 

 

 

2-3. border-width : 선의 전체 두께, 대개는 1px로 사용

 

         → .border1{border-width:10px;}

              ▲ .클래스명{속성명:선두께;} : 상하좌우 그룹화

 

2-4. border-방향-width : 선의 일부 두께

 

         → .border1{

                              border-top-width: 5px;  

                              border-right-width: 20px;

                              border-bottom-width: 5px;

                              border-left-width: 20px;

                              }

              ▲ 상 : 5px / 우 : 20px / 하 : 5px / 좌 : 20px.

                  그룹을 풀어 놓은 형태

 

# 결과  (style은 solid적용)

 

 

 

 

2-5. border-color : 선의 전체 색상

 

         → .border1{border-color: red;}

             ▲ .클래스명{속성명:선색상;} : 상하좌우 그룹화

 

2-6. boder-방향-color : 선의 일부 색상

 

         → .border1{

                              border-top-color: #ffcc00;

                              border-right-color: #ff9900;

                              border-bottom-color: #cc9900;

                              border-left-color: #ccff33;

                              }

             ▲ 상 : 5px / 우 : 20px / 하 : 5px / 좌 : 20px.

                  그룹을 풀어 놓은 형태

 

# 결과

 

 

 

 

2-7. 선(border)의 색상/두께/모양의 그룹화 : 그룹의 그룹이라 해야 될까.....?

 

       → .border1{border: green 10px solid;}

           ▲ .클래스명{속성명:색상 두께 모양} : 순서는 관계 없으나 속성은 한가지씩!

 

# 결과 ▽

 

 

 

B. 스타일시트 : <body>와 </body> 사이에 inLine방식입력

 

 1. div style

 

1-1. 객체의 위치설정 : static(기본값), relative(인접객체와의 상대위치설정), absolue(본문기준의 절대위치설정)

 

         → <div style="position:absolute; top:100; left:100; background:white; width:350; height:500">

             <img src="..\html\img\week\sun.jpg"></div>

             ▲ background는 설정하지 않아도 기본이 투명이라 없게하고 싶다면 
                 white라도 적용 해야 한다.
객체의 위치값에는 음수도 입력 가능

# 결과 ▽

 

 

 

 

  1-2. Exam : 공통속성=solid외곽선 박스의 사이즈 가로세로 200

                        다음과 같은 형태를 구현하라

 

 

         → <head>와</head>사이에 <style>여기에 입력</style>

         → DIV {position:absolute; width:200; height:200; border:solid 1px black;}

             .one {top:100; left:100; z-index:731564832145967;}

             .two {

                      top:250; left:160; text-align:center; vertical-align:50%;

                      background:#3399cc; font-size:30pt; letter-spacing:10px;

                      z-index:731554832145967; vertical-align:bottom}

              .three {top:180; left:50; z-index:730554832145967}

             ▲ 레이어의 순위설정 : z-index:양의 정수, 값이 클 수록 위쪽

                레이어의 표시여부 결정 : visibility=visible(보임), hidden(숨김)

 

         → <body>와</body>사이에 div 태그 입력

             <div class="one">

              <table border="1" width="100%" height="100%">

              <tr>

                           <th align="center">좋아하는<br>과일이름</th>

                           <th align="center">싫어하는<br>과일이름</th>

              </tr>

              <tr align="center">

                           <td>과일별로</td><td>과일별로</td>

              </tr>

              <tr align="center">

                           <td>과일별로</td><td>과일별로</td>

              </tr>

              <tr align="center">

                           <td>과일별로</td><td>과일별로</td>

              </tr>

              </table>

              </div>

 

              <div class="two">

              <br><br><br><br><br><br><b>엄기백</b>

              </div>

 

              <div class="three">

              <img src="..\html\img\week\sun.jpg" width="200" height="200">

              </div>

 

# 결과 ▽

 

 

 

  1-3. Exam : 1-2. Exam 의 style소스를 수정하고 input 태그를 넣어 버튼을 활성화 후

         이미지를 보이거나 숨기는 버튼을 만들어본다.

 

         - 함수에 클래스명을 쓸 수 없어 아이디로 style태그의 id명과 body태그도
            class대신
id로 수정하고 body태그내에 input태그로 버튼을 만들되
            onClick이벤트에
onClick="함수명('상수','상수')" 를 넣고 script함수
            선언시 변수를 두개 선언한다.

 

         - 이유인즉, body의 onClick시 실행되는 함수의 상수가 스크립트내에 함수명()
            괄호안에 변수값에 저장되며
if else 구문으로 두번째 값인 1,2 가 즉 n이
            1과 같을때 visible(보이기)을 실행하도록 하고
그것이 아닐때 hidden(숨기기)
            을 실행하도록 짜 놓은 스크립트....-_-a 인것 같다.

           
설명을 들어도 잘 이해가 가지 않아 그냥 그렇겠거니 한 결론..

 

         → #one{top:100; left:100; z-index:731564832145967;}

              #two{

                           top:250; left:160; text-align:center; vertical-align:50%;

                           background:#3399cc; font-size:30pt; letter-spacing:10px;

                           z-index:731554832145967; vertical-align:bottom}

              #three{top:180; left:50; z-index:730554832145967}      

             ▲ <head>내의 <style> 태그 수정

 

         → <script language="javascript"> // language="javascript"는 생략가능

              function show(p,n){

                           if(n==1){

                           document.all[p].style.visibility = "visible"; // 스타일시트 적용은 자바스크립트에서 .all['이름'].

                           }else{

                           document.all[p].style.visibility = "hidden"; // 함수명(변수,변수)

                                    }

                           }           

              </script>

              ▲ <head>내의 <script> 태그 수정 

 

         → <input type="button" value="이미지보이기" onClick="show('three','1')"> <!-- 함수명('상수','상수') -->

             <input type="button" value="이미지숨기기" onClick="show('three','2')">

             <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>

             <input type="button" value="표보이기" onClick="show('one','1')"> <!-- 1번을 show, 2번을 hidden의

              역할로 지정-->

             <input type="button" value="표숨기기" onClick="show('one','2')">

             <input type="button" value="글자보이기" onClick="show('two','1')">

             <input type="button" value="글자숨기기" onClick="show('two','2')"> 

              ▲ <body>내에 <input> 태그 입력

 

         → <div class="one">

              <table border="1" width="100%" height="100%">

              <tr>

                           <th align="center">좋아하는<br>과일이름</th>

                           <th align="center">싫어하는<br>과일이름</th>

              </tr>

              <tr align="center">

                           <td>과일별로</td><td>과일별로</td>

              </tr>

              <tr align="center">

                           <td>과일별로</td><td>과일별로</td>

              </tr>

              <tr align="center">

                           <td>과일별로</td><td>과일별로</td>

              </tr>

              </table>

              </div>

 

              <div class="two">

              <br><br><br><br><br><br><b>엄기백</b>

              </div>

 

              <div class="three">

              <img src="..\html\img\week\sun.jpg" width="200" height="200">

              </div>

             ▲ <body>내의 <div> 태그 수정

 

# 결과 ▽

 

 

 

C. 스크롤바 스타일시트 : <style>태그 (<head>사이에 입력)

 

 1. 속성 : face(전체), shadow(그림자:오른쪽아래), hightlight(밝은곳:왼쪽위),
                track(스크롤트랙),
arrow(화살표)

     → BODY,TEXTAREA {

                                        scrollbar-face-color:white; /* 전체 색깔 */

                                        scrollbar-shadow-color:black; /* 그림자 색깔 */

                                        scrollbar-highlight-color:gray; /* 밝은곳 왼쪽 위 빛 */

                                        scrollbar-track-color:white; /* 스크롤 트랙 */

                                        scrollbar-arrow-color:#cc0000; /* 화살표 */

                                        }

        ▲ A,B와 같은 속성이겠지만 C라 따로 적었다. 자세한 설명은 필요 없을 듯.

 

# 결과 ▽

 

부분적용 face ▽

 

 

부분적용 shadow ▽

 

 

부분적용 highlight ▽

 

 

부분적용 track ▽

 

 

부분적용 arrow ▽

 

 

전체적용 ▽

 

 

 

D. A링크 스타일시트 : <style>태그 : <head>사이에 입력 후 적용 html tag <body>사이 입력

 

 1. 속성 : link(기본값), visited(방문이력이있는링크), hover(마우스롤오버), 
               active(클릭시)

 

     → A:link {color:gray; text-decoration:none;} /*기본 값☆ */

         A:visited {color:gray; text-decoration:none;} /*이미 방문 */

         A:hover {color:green; text-decoration:underline;} /*마우스 롤오버*/

         A:active {color:red; text-decoration:underline;} /*클릭했을 때*/

 

         DIV {

                 position:absolute; width:200; height:200;

                 border:solid 1px black;          

                }

        ▲ A,B,C와 같은 속성이겠지만 D라고 따로 적었다. 자세한 설명은 필요 없을 듯.

           순서(link→visited→hover→active)도 영향을 받는다.        

           : ←는 가상요소. 즉 소스☆를 읽어보면 "링크라는 A태그의 가상요소(링크된
           객체의 속성지정)"

           위 태그는 <style>태그로 <head>사이에 입력되는 소스

 

     → <a href="http://www.naver.com/" target="_blank">A링크 테스트 A링크 네이버</a><br>

         <a href="http://www.daum.net/" target="_blank">A링크 테스트 A링크 다음</a><br>

         <a href="http://www.paran.com/" target="_blank">A링크 테스트 A링크 파란</a><br>

         <a href="http://www.chol.com/" target="_blank">A링크 테스트 A링크 천리안</a><br>

         <a href="http://www.yahoo.co.kr/" target="_blank">A링크 테스트 A링크 야후</a><br>

         <a href="http://www.google.co.kr/" target="_blank">A링크 테스트 A링크 구글</a><br>

        ▲ 위 태그는 <body>사이에 입력되는 소스

 

# 결과 ▽

 

기본값 (=이미 방문) ▽

 

 

마우스 롤오버 ▽

 

 

클릭했을 때 ▽

 

 

 

E. document : <script>와 </script>사이에 입력

 

 1. write : 화면상에 값을 출력하는 태그이며 주석문으로 전체 내용 기술함

 

 <script>

  a = 10+'20'; // 자동으로 형선언

  document.write("<b>"+a+"<b>"+'<font color="red">홍길동</font>') // body에 출력 / 문자는 ""안에 / 숫자+문자=숫자문자 연결된다,

   // 즉 +는 연결하는 기호다

   // 자바스크립트안에서 html 태그를 입력하기 위해서는 반드시 "" 안에 들어가야 한다. 위에서 속성값을 "red"로 쓰니 오류 나네..

   // 따옴표를 쓰면 안되지만 죽어도 해야겠다 하면 바깥이 '싱글따옴표일때 해당구간을 "더블로 바깥이 "더블이라면 반대

   // 변수는 ""따옴표 안에 들어가면 안된다. // 스크립트에서만 해당되는것: " 와 ' 중 무엇을 써도 관계 없다. 자바에서는 안됨

 

   document.write("<br><img src ='..\HTML\img\blog_img.jpg' style='border:solid 1px green'>"); // 경로에 역슬러쉬x는 스크립트 오류 발생.

   // 16진수를 표시하는 0x라는 수식 때문인듯 한다지만 \x 라는 말이 붙음으로 오류가 나는건 이해가 잘 안됨.. \n 이라면 모를까

   // \n은 오류 없음 , \0은 오류 없고 이미지 표시만 안됨.. 프로그램 창시자가 8진수에 안좋은 추억이 있는듯?

   // 특정 이미지명 + 역슬러쉬 = 스크립트 오류. 결론은 경로에 역슬러쉬를 쓰지 말고 만약 쓴다면 x라는 단어가 폴더나 파일명에 첫글자로 오지 않게 할것;;

 

   b="<br><img src = ../HTML/img/blog_img.jpg style='border:solid 1px green'>"

 

   document.write(b);

 

   // 연산자 (+, -, *, /, %(나머지), ++(1씩증가), --(1씩감소) )

 

   num=5;

   num += 1; //num=num+1; //num++;

   num -= 1; //num=num-1; //num--; 대입연산자(+=, -=, *=, /=, %=, =): 4칙연산이 다 된다.

 

   document.write("<br><br>"+num);

   //관계연산자 ( >, >=, <, <=, ==, != )

   c=10>20;

   document.write("<br>"+c);

 

   //논리연산자 ( &&(and), ||(or), !(not))

 

   //조건연산자 if문없이 조건을 비교 후 둘중 참 또는 거짓을 출력하는 연산

   //result = (조건식)? 조건식의결과가True일때 : 조건식의결과가False일때 ;

   result=(num>5)? num*2: num;

   document.write("<br>"+result);

   </script>

 

# 결과

 

 

 

F. if ~ else : 만약에 OO하다면 if 다음을 실행하고 그렇지 않다면 else 다음을 실행

 

<script>

num = prompt("1~100사이의 값을 입력하세요..","") // 사용자가 입력할 수 있는 대화상자

// 입력한 값이 짝수 인지 홀수 인지 구별해서 결과 출력

if(num%2==1){ //참

                                                     document.write(num+"은(는) 홀수입니다.....");

                                        }

else{ //거짓

                  document.write(num+"은(는) 짝수입니다.....");

             }

</script>

 

# 결과 ▽

 

 

 

G. eval : 문자열의 속성이 가지고 있는 값으로 자동으로 형 변환

 

<script>

                  result = eval(prompt("수식을 입력하세요..",""));

             // eval위치 : 아래에 위치해도 위와 아래 둘다 같은 의미, 적용은→ write((eval(result));

            document.write(result);  // 화면상에 출력을 원하지 않을 땐 삭제

</script>

 

# 결과 ▽

 


'Html/Jsp/Javascript' 카테고리의 다른 글

[Test] 회원가입 폼 만들기  (1) 2011.10.16
Html,Jsp,Css_05  (0) 2011.10.14
Html,Jsp,Css_04  (0) 2011.10.13
Html,Jsp,Css_03  (0) 2011.10.12
Html_02  (0) 2011.10.11
Html_01  (0) 2011.10.10
Html,Jsp,Css_03 Html/Jsp/Javascript 2011. 10. 12. 22:59

1. 전일 Login Form Tag 복습 및 Html의 한계성

 

1-1. 전일 내용 복습 및 추가내용 기술

 

* <form> Tag

 

  - action : 폼에서 submit 이 발생할 경우 실행될 다음 파일명 기술 → <form action="login.jsp">

  - method : URL의 정보공개 유무 → <form method="post">

    · get : 정보공개

    · post : 정보비공개

 

    * tip : 단, A Tag를 이용하여 다음과 같이 링크시 method 값은 항상 get (정보공개)이 될 수 있다...라지만,

             자바 등에서 숨김이 가능하지 않을까 싶기도 하다. 일단 예시

             ex) <a href="http://www.naver.com/index.jsp?uid=abcd">네이버</a>

    * tip : 주소표시줄에 URL분석- 한글은 %등으로 알수없는 text로 변환되어 표시됨

             컴퓨터가 인식하여 출력하는 text의 기준과 사용자가 입력하는 text의 기준이 다름

 

* <input> Tag : 입력 Box 생성

 

  - type 속성

    · 값 : text, password 등이 있다. 추가적인 부분은 하단()에서 추가 기재

 

1-2. Html, Client Language의 한계성

* Login화면에 내용을 입력 하여 Sever Language인 login.jsp를 호출하는 것 까지만 가능

* <input type="file"> : 업로드할 파일이 어디에 있는지 표시하는 것 까지만 구현 가능

* 위 외에도 서버에 직접 접근 하는 것은 클라이언트 언어인 Html의 한계..

 

2. Form Tag 내에 기술되는 속성 Tag

 

* <form> Tag : form tag내에 기술되어 지는 tag는 서버로 보내지는 Data 덩어리라 보면 될 것 같다.

  - action : jsp파일을 호출하는 기능, 다음에 실행될 파일이나 명령어가(?) 정해지지 않았을 땐 일반적으로 #으로

                 표기한다 → <form action="mem.jsp">

  - method : URL의 정보공개 유무, → <form method="post">

 

2-1. <input type> Tag : type(속성)="OOOO(변수)" 방식으로 입력, input box의 유형

 

  - text : 회원가입시 ID, 이름 등 말 그대로 text를 입력하는 box → <input type="text">

 

  - password : 회원가입시 비밀번호 등을 입력하는 box → <input type="password">

 

  - radio : name을 같은 명으로 지정하여 같은 그룹으로 보므로 중복선택이 안되는 버튼(원형)이 된다...

                라고는 하지만 checkbox 또한 name을 같은 명으로 지정하는걸 보면 radio라는 type속성때문에

                중복으로 선택이 되지 않는지도 모르겠다.

                value값이 서버로 전달되어지는 값이며 input태그 바깥쪽에 radio버튼에 해당되는 text를 적어

                사용자의 식별을 돕는다. 미선택 후 submit 시 Null값이 전송된다.

                기본체크값 설정 : checked 입력 (속성없는 Tag)

                → <input type="radio" name="sports" value="농구">농구

                    <input type="radio" name="sports" value="축구">축구

                    <input type="radio" name="sports" value="배구">배구

 

  - checkbox : 위와 같은 속성Tag를 입력하나 type명만 다르다.

                      체크항목의 제한을 두거나 중복된 값으로 처리 되는 것은 Javascript에서 배열로써 처리가능

                      → <input type="checkbox" name="hobby" value="쇼핑">쇼핑

                          <input type="checkbox" name="hobby" value="시체놀이">시체놀이

                          <input type="checkbox" name="hobby" value="음주가무">음주가무

 

  - file : 업로드할 파일이 어디에 있는지 표시하는 것 까지만 구현 (Server전송: jsp)

             → <input type="file" name="filename" size="50">

 

  - reset : 입력된 값을 초기화.

                reset의 범위- reset이 포함된 <form></form> 사이의 값

                한페이지에 여러 폼이 있다면 reset 이 기술되어 클릭되어진 각자의 폼에만 영향을 준다 보면 된다.

                → <input type="reset" name="res" value="지우기">

 

  - image : submit과 같이 클릭되어지면 선택/입력된 정보를 서버로 전송하는 기능

                 → <input type="image" src="img\cafe_img\button_membership.gif">

 

  - submit : 클릭되어지면 선택/입력된 정보를 서버로 전송하는 기능

                  → <input type="submit" value="등록"> 

 

  - button : 외형은 submit과 같아 보이지만 아무런 기능이 구현이 안되며 자바스크립트에서 구현이 가능하다.

                  → <input type="button" value="등록">

 

  - hidden : 웹페이지상에서는 사용자의 화면(실행결과 화면)상에 안보이더라도 프로그램상에서 서버로 데이터를

                  가지고 가야 할 경우가 많이 있는데 이때 필요 속성만 hidden으로하여 그 데이터를 서버로 전송한다

                  → <input type="hidden" value="비밀자료임" name="secret">

  - maxlength : 최대로 입력할 수 있는 글자 수 제한- ex) 주민번호 입력시 자동으로 다음탭으로 이동되는 박스 생각

                     → <input type="text" maxlength="5">

  - readonly : 속성이 없는 태그- 사용자가 수정할 수 없도록 하는것 ex) 회원정보 수정시 id수정 불가

 

2-2. <textarea> Tag : 여러줄의 글 내용을 입력할 수 있다.

 

  - name : name은 C언어로 보자면 일종의 pointer 같다. 모든 form 내의 모든 data에 이름을 부여함으로 html내에 삽입되는

               스크립트에서 if 구문을 통한 data의 접근이 이루어 진다. → <textarea name="content">

  - rows : 한꺼번에 보여질 행의 수 → <textarea rows="10">

  - cols : 한꺼번에 보여질 열의 수 → <textarea cols="50">

 

  * tip : 코딩시 식별의 용이함을 위해 들여쓰기를 하는데, textarea같은 경우엔 끝태그를 시작태그에 붙여쓰지 않으면 들여쓰기

           공간만큼 화면에 공란으로 출력되므로 불필요한 공백까지 서버에 전송되거나 사용자 측에서 불편을 야기할 수 있으므로

            들여쓰기를 무시하고 꼭 끝태그를 붙여쓰도록 한다. 스크롤바는 글자 입력에 따라 자동으로 생성된다.

 

2-3. Select, option Tag : 드롭다운기능 구현

 

  - select : 드롭다운 되는 기능의 세로 사이즈와 name지정

    · name : 2-2에서 기술 → <select name="food">

    · size : 한번에 볼 수 있는 행 결정. 폭은 조절 불가하며 현재는 중복선택(개별:Ctrl+Click/범위:Shift+Click)이 안됨

               → <select size="1">

    · multiple : 속성이 없는태그, size를 1이상의 숫자로 설정 한 뒤, multiple입력시 목록갯수N의 N-1만큼 화면에 출력

                   → <select size="3" multiple>

  - option : 드롭다운기능에 펼쳐질 행의 내용을 입력한다. 이역시 value값(작성자만 알아볼 수 있는 값 또는 식별 가능한 값)

                으로 전송될 값을 입력하며 체크박스나 라디오버튼처럼 사용자가 식별이 가능하도록 <option></option>안에

                해당 text를 입력한다. 또한 default값을 선택해 놓고 싶다면 option에 selected를 입력한다.

                → <select name="food" size="1"> 

                    <option value="not">----선택----</option>

                    <option value="water">생수먹고배채울래</option>

                    <option value="soju" selected>소주마시고취할래</option>

                    <option value="beer">맥주마시고꺼어억</option>

                    <option value="susi">참치회엔역시소주</option>

                    <option value="chicken">치킨에는역시소맥</option>

                    </select>

 

# CODE

 

<form action="mem.jsp" method="post">

Text Box <input type="text" name="name" value="aaaa" size="10" maxlength="5" readonly>
<br>
<br>
Password Box <input type="password" name="pass">
<br>
<br>
Radio Button <input type="radio" name="sports" value="농구">농구
    <input type="radio" name="sports" value="축구">축구
    <input type="radio" name="sports" value="배구" checked>배구
<br>
<br>
Check Box <input type="checkbox" name="hobby" value="쇼핑">쇼핑
    <input type="checkbox" name="hobby" value="시체놀이">시체놀이
    <input type="checkbox" name="hobby" value="음주가무" checked>음주가무
<br>
<br>
File Upload <input type="file" name="filename" size="50">
<br>
<br>
Reset(취소) <input type="reset" name="res" value="지우기">
<br>
<br>
Image, Submit, Button, Hidden<br>
<br>
Image <input type="image" src="img\cafe_img\button_membership.gif"><br>
<br>
Submit <input type="submit" value="등록"><br>

<br>
Button <input type="button" value="등록"><br>

<br>
Hidden <input type="hidden" value="비밀자료임" name="secret"><br>
<br>
TextArea 태그 - 여러줄의 글 내용을 입력할 수 있다
<br>
 <textarea name="content" rows="10" cols="50">rows: 한꺼번에 보여질 행의 수
cols: 한거번에 보여질 열의 수
여기에 글을 쓰면 이 글이 초기값이 된다.</textarea>
<br>
<br>
Select, option Tag - 드롭다운기능 구현
 <select name="food" size="1"> 
  <option value="not">----선택----</option>
  <option value="water">생수먹고배채울래</option>
  <option value="soju" selected>소주마시고취할래</option>
  <option value="beer">맥주마시고꺼어억</option>
  <option value="susi">참치회엔역시소주</option>
  <option value="chicken">치킨에는역시소맥</option>
 </select>

 <br><br><br><br>
</form>

 

# 결과 

구현이 안되어 스크린샷으로 대체

 

3. 회원등록 폼 만들기 : 부연설명은 Code내에 주석문으로 처리 (Html + Javascript)

 

# CODE

 

<html>
 <head>
  <title> 회원등록 폼만들기 </title>
 </head>

 <body>
 <script language="javascript">
 // 자바스크립트 구문의 위치는 form 위에 있건 밑에 있건 관계 없다. 사용자가 입력 후 호출하는 것이므로..
 //함수생성 function 함수명(){.....}
 function memChk() //함수명은 변수 만들듯 내 맘대로
 {
  // 자바에서는 Body → Document 생략가능
  
  //데이타 입력유무 확인하는 기능 구현
  /*
   if문 : >, >= , <, <=, ==, !=(!는 not)
   형식
    if(조건식){

    }

  */
  if(document.frm.name.value == "") // = frm.nam.value , 확인:alert(변수) , 빈따옴표""는 내용이 없다는 뜻
  // 이름값이 없는 것이 True : True일 때 {}안 실행, False일 때 {}의 다음 구문 실행
  {
   alert("이름이 없는건가..") //확인 누르면 다음줄 명령어 실행
   document.frm.name.focus(); // name이란 이름이 있는 컴퍼넌트에 포커스(커서)를 맞춘다.
   return false; // form태그에 onsubmit="return memChk()"가 false가 되는 것: 다음페이지로 안넘어간다
  }
  if(document.frm.uid.value == "")
  {
   alert("아이디가 있어야겠지..")
   document.frm.uid.focus();
   return false;
  }
  if(document.frm.pwd.value == "")
  {
   alert("비밀번호도 있어야겠지..")
   document.frm.pwd.focus();
   return false;
  }
  if(document.frm.pwdChk.value == "")
  {
   alert("비밀번호 한번 더..")
   document.frm.pwdChk.focus();
   return false;
  }
  if(frm.pwd.value != frm.pwdChk.value) // document 생략
  {
   alert("까먹었나?");
   frm.pwd.value = ""; // 비밀번호가 틀렸을 때 pwd의 값 초기화
   frm.pwdChk.value = ""; // 비밀번호가 틀렸을 때 pwdChk의 값 초기화
   frm.pwd.focus(); // document.frm.pwd.focus(); 와 같다 → 커서 위치 이동
   return false;
  }
  if(frm.hand1.value == "Not") // hand1의 value값이 Not과 같다면 (Not은 밑에 =번호선택= 값)
  {
   alert("번호를 선택하세");
   return false;
  }
  if(document.frm.hand2.value == "")
  {
   alert("핸드폰도 없나..")
   document.frm.hand2.focus();
   return false;
  }
  if(document.frm.hand3.value == "")
  {
   alert("핸드폰번호 안넣으면 가입못함")
   document.frm.hand3.focus();
   return false;
  }
  // submit, image 일땐 return true; submit 실행
  // return true; // if값이 False일때 {}안의 내용을 건너뛰고 다음 구문인 이것을 실행
  
 document.frm.submit(); // *** 버튼으로 쓸 땐 return true; 대신 이걸 쓰고 form시작 구문에 onsubmit="return memChk()"
          //불필요하여 삭제 ***

 } // {}안에 데이타 입력유무를 확인하는 코드 입력!
 // 조건식에는 true / false 의 결과의 식을 입력
 </script> <!-- language="javascript"는 생략가능, script태그 안에 체크 항목을 입력해준다.
 체크항목: 이름/아이디/비밀번호(비밀번호끼리의 확인)/전화번호(첫자리(010)는확인필요없음) 누락없이 썼는지 확인 후 submit 기능 -->
           <!-- *** ↙ 요기에 입력되었던 onsubmit="return memChk()" 이 삭제: button submit -->  
<form action="memberOK.jsp" method="post" name="frm"> <!-- onsubmit="return memChk()" 설명:submit 이벤트가 발동되면 memChk()을 구현하라 -->
<!-- name은 자바스크립트에서 필요 --> 
<!-- action으로 자바스크립트로 이동하기전 이벤트(onsubmit, 작동이 일어나는 모든 요소) 발생 필요
클릭시: onclick
submit이 발생하면 : onsubmit,
페이지 로드시 : onload (onload alert - body tag에서 했었음)
-->
<table border="1">


 <caption><font face="굴림" color="#232323"><h2><b>회원등록</b></h2><font></caption>
  <tr>
   <td width="80" align="right">이 &nbsp;&nbsp;름</td>
   <td>
    <input type="text" name="name" size="16" maxlength="28"> <!-- 긴이름까지 생각해서 maxlength 설정 --> 
   </td>
  </tr>

  <tr>
   <td align="right">아이디</td>
   <td>
    <input type="text" name="uid" size="16">
   </td>
  </tr>

  <tr>
   <td align="right">비밀번호</td>
   <td>
   <input type="password" name="pwd" size="10"> &nbsp;&nbsp;비밀번호확인 <input type="password" name="pwdChk" size="10"> <!-- 비밀번호확인: input에 name만 다르게 -->
   </td>
  </tr>

  <tr>
   <td align="right">휴대전화</td>
   <td>
    <select name="hand1">
    <option value="Not">=번호선택=</option>
    <option value="010">010</option>
    <option value="011">011</option>
    <option value="017">017</option>
    <option value="016">016</option>
    <option value="018">018</option>
    </select>
     &nbsp;-&nbsp;
    <input type="text" name="hand2" size="5" maxlength="4">
     &nbsp;-&nbsp;
    <input type="text" name="hand3" size="5" maxlength="4">
   </td>
  </tr>

  <tr>
   <td valign="top" align="right">자기소개</td>
   <td>
    <textarea name="intro" rows="3" cols="50"></textarea>
   </td>
  </tr>

  <tr>
   <td colspan="2" align="center">
    <input type="button" value="등록" onClick="memChk()"> <!-- 클릭되면 memChk()라는 함수 호출(기능실행) -->
    <!-- <input type="image" src="img\cafe_img\button_membership.gif"> -->
    <!-- image로 input 버튼을 만들었을 때***와 submit으로 input버튼을 만들었을 때의 기능은 똑같다 -->
    <!-- <input type="submit" value="등록"> submit: 서버로 전송 -->
    &nbsp;&nbsp;&nbsp;
    <input type="reset" value="다시쓰기">
   </td>
  </tr>
</table>
</form>
 </body>
</html>

 

# 결과

 

 

4. CSS

 

* 스타일시트 표기법 → 속성명:속성값;

 

  1. inLine방식 : html 태그에 직접 적용, font-family:'폰트명1' '폰트명2' '폰트명3' → 1이 없다면 2, 2가 없다면3.

                       클라이언트의 운영체제에 해당 글자체가 없을 때를 대비하여 대체폰트 지정

                       → <font style="color:#0099cc;font-size:50pt;font-family:'궁서' '돋움' '굴림';font-style:italic">

                            스타일시트 inLine방식

                           </font>

                       → <p style="color:#0099cc;font-size:50pt;font-family:'궁서' '돋움' '굴림';font-style:italic">

                            낙성대역으로 오세요

                            </p>

                        ▲ 위에서 보듯 어떤 태그이건 간에 다 적용된다(테이블이건 어디건). 필요할때마다 구간별로 다 넣어야 해서

                            불편하다. 그래서 나온것이 2. style태그를 이용한 방식, 현시점에서 봤을 때 inLine방식>style방식: 별도

                            지정된 방식은 해당 구역에만 우선순위로 적용

 

# CODE

 

<font style="color:#0099cc;font-size:50pt;font-family:'궁서' '돋움' '굴림';font-style:italic">스타일시트 inLine방식</font>

<p style="color:#0099cc;font-size:50pt;font-family:'궁서' '돋움' '굴림';font-style:italic">낙성대역으로 오셈</p>

 

# 결과

스타일시트 inLine방식

낙성대역으로 오세요

 

  2. style태그를 이용한 방식 

   

    * style태그 기술 : <어떤 때에 무엇을 써야 하나 하는건 자꾸 해봐야 아는 법이라 한다...;

   

   2-1. head태그의 시작태그와 끝태그 안에 속성값 입력 : <style></style>

 

    2-1-1. 특정 태그명(통상적으로 대문자로 표기)에 정의하는 방법 : 같은 속성일 땐 - 대문자속성명1,대문자속성명2 

           이라 입력시 같은 기능이 된다.

           → FONT {color:red; font-size:25pt;}

 

    2-1-2. 클래스로 정의하는 방법 : 같은 속성에서 다른 스타일시트 적용

           → P.a {color:red; font-size:25pt} : 임의로 정한 클래스명 a - 태그명.클래스명

           → P.b {color:blue; font-size:20pt} : 임의로 정한 클래스명 b - 태그명.글래스명

           → .c {color:green; font-size:30pt} : 태그에 구애받지 않고 이 스타일시트를 적용하고 싶은 구간이라면 아무곳에나적용

 

    2-1-3. id로 정의하는 방법 : 위와 같으나 .이 들어가는 자리에 #이 들어간다. 자바스크립트에서 합쳐지면 능력발휘!

          자바 없이는 2-2. 클래스로 정의 방법과 결과는 같다. 태그에 적용시 id="클래스명"

          → #d {color:#ff9900; font-size:15pt} : 전체태그 사용 (2-2의 세번째 정의와 같다)

          → font#e {color:#ff99cc; font-size:20pt} : 특정태그에 사용

 

    2-1-4. 중첩태그에서 사용하는 방법

          → FONT B {color:ping; font-size:20pt} : 폰트태그 안에 있는 볼드에만 적용 - 태그명 태그명 {속성명:속성값; ...}

 

   2-2. body태그의 시작태그와 끝태그 안에 적용 코드 입력 : <body></body>

         → <p class="a">스타일시트 적용되나</p>
             <p id="d">스타일시트 진짜적용되나</p>
              <p >스타일시트 진짜적용되네</p>
              <font class="c">폰트태그에 스타일적용</font><br>
              <font>중첩태그에서 <b>스타일</b>적용</font><br>
              <b>그냥볼드</b>

 

# CODE

 

<head><style>

FONT {color:red; font-size:25pt;}

P.a {color:red; font-size:25pt}

P.b {color:blue; font-size:20pt}

.c {color:green; font-size:30pt}

#d {color:#ff9900; font-size:15pt}

font#e {color:#ff99cc;font-size:20pt}

FONT B {color:pink; font-size:20pt}

</style></head>

 

<body>

<p class="a">스타일시트 적용되나</p>
<p id="d">스타일시트 진짜적용되나</p>
<p >스타일시트 진짜적용되네</p>
<font class="c">폰트태그에 스타일적용</font><br>
<font>중첩태그에서 <b>스타일</b>적용</font><br>
<b>그냥볼드</b>

</body>

 

# 결과

 

 

 

 

 

  3. 외부파일로 만들기 : 2. style태그방식이 똑같이 적용된다 : style.css로 속성을 정의 후 html에서 link를 이용, 불러온다.  

 

   3-1. css파일 만들기 : 2. style태그방식을 참고하여 속성값이 정의 된 페이지를 만들고 style.css로 저장한다

          → P {color:#9900ff; font-size:40pt;}

              TABLE {font-size:1in;}
              DIV {background-color:#99cc00;letter-spacing:20px; font-size:1cm; font-weight:900; text-decoration:overline;

              width:800;}
              A {text-decoration:none}
              INPUT {background-color:#ffccff}

   3-2. html에 외부파일(style.css) 적용하기 : 물론 body의 시작태그와 끝태그 사이에 기술되며 상단에 다음과 같이 입력

          → <link rel="stylesheet" type="text/css" href="style.css"> : rel=relation, 스타일시트와 관계를 맺어보겠다는건가..

 

# CODE

 

<link rel="stylesheet" type="text/css" href="style.css">

<p>외부스타일 적용하기</p>
<div>외부스타일 적용하기2</div>
<a href="#">외부스타일 적용하기3</a>
<table>
 <tr>
  <td>아이디</td>
  <td><input type="text" name="id"></td>
 </tr>
 <tr>
  <td>비밀번호</td>
  <td><input type="password" name="pwd"></td>
 </tr>
 <tr>
  <td colspan="2" align="center">
   <input type="submit" value="전송">
   <input type="reset" value="다시">
  </td>
 </tr>
</table>

 

# 결과

 

 

 

* 글자속성: style.css 외부파일에 만들고 style2.html에서 실행

 

  0. color : 글자색
  1. font-size : 글자의 크기(pt:point) *pt단위 외에도 여러가지(cm, mm 등등 다양)
  2. font-family : 글꼴
  3. font-style : 글자유형(normal:기본, italic:기울임꼴)
  4. font-weight : 글자두께(normal, 100~900 사이의 값), bold(400), lighter(현재글꼴의 두께-100), bolder(+100)
  5. text-decoration : 글자선(none:기본, underline:밑줄, line-through:취소선, overline:윗줄
  6. letter-spacing : 글자간격,자간(px:pixel)
  7. background-color : 적용하는 태그의 배경색
  8. background-image : 적용하는 태그의 배경그림 ...인것 같은데 한개 가지고 끝나지 않으니 내일...

 

'Html/Jsp/Javascript' 카테고리의 다른 글

[Test] 회원가입 폼 만들기  (1) 2011.10.16
Html,Jsp,Css_05  (0) 2011.10.14
Html,Jsp,Css_04  (0) 2011.10.13
Html,Jsp,Css_03  (0) 2011.10.12
Html_02  (0) 2011.10.11
Html_01  (0) 2011.10.10