fieldset ==> 입력요소들을 그룹으로 묶어서 표현할 때 사용

legend ==> fieldset의 제목을 지정할 때 사용

입력요소의 새로운 속성

placeholder ==> 입력 힌트를 희미하게 표시

autofocus ==> 페이지가 로딩되면 자동으로 해당 입력폼을 활성화시킨다


checkbox나 radio객체와 '문자열'과 연결하려면 문자열을

label태그로 감싸고, checkbox나 radio객체에는 id속성을 설정한다.

그리고 label태그에 for속성과 연결하려는 id속성값을 대입한다.



내부 CSS의 기본 형식

셀렉터 { 스타일 속성:값; 스타일 속성2:값2;}

-셀렉터 ==> 문서에서 스타일을 적용할 대상을 선택하는 명령

셀렉터의 종류

1. * : 모든 엘리먼트에 스타일을 적용한다.

* { font-size:15pt; color:green;}

2. 태그명 { 스타일 정의 }

==>지정한 태그명이 해당되는 곳에 스타일을 적용한다.

p { font-size:18pt; color:green;}

div { color:red; font-size:12pt; font-family:궁서체;}

3. 태그명.class속성값 {스타일 정의}

==>지정한 태그명에 해당하는 것들 중 class속성값이 일치하는 곳에 스타일을 적용한다.

p.test { font-size:18pt; color:green; }

4. .class속성값 {스타일 정의}

==> 모든 태그들 중에서 class의 속성값이 일치하는 곳에 스타일을 적용한다.

.test { font-size:18pt; color:green; }

5.태그명#id속성값 {스타일정의}

==>지정한 태그명들 중에서 id속성값이 일치하는 곳에 스타일을 적용한다.

p#myid { font-size:18pt; color:green; text-decoration: underline;}

6.#id속성값{스타일 정의}

==>모든 태그들 중에서 id속성값이 일치하는 곳에 적용한다. 

#identify { color:red; font-size:12pt; font-family:궁서체; }

7.셀렉터1, 셀렉터2, 셀렉터3{스타일정의}

==> 각각의 셀렉터에 해당하는 모든 곳에 스타일을 적용한다.

8.셀렉터1 셀렉터2 {스타일정의}

==>셀렉터1의 자손 중에서 셀렉터2에 해당하는 모든 곳에 스타일을 적용한다.

div span { font-size:18pt; color:green; text-decoration: underline;}

9.셀렉터1>셀렉터 {스타일 정의}

==>셀렉터1의 자식들 중에서 셀렉터2에 해당하는 모든 곳에 스타일을 적용한다.

10.셀렉터1 + 셀렉터2 {스타일정의}

==>셀렉터1의 바로 다음에 오는 형제중 셀렉터2에 해당되는 곳에 스타일을 적용한다.

11.셀렉터1 ~ 셀렉터2{스타일정의}

==>셀렉터1의 뒤에 오는 형제들 중에서 셀렉터2에 해당되는 모든 곳에 스타일을 적용한다.    



-의사클래스 ==> 클래스 정의된 것처럼 간주되어 처리되는 것

형식) 셀렉터:의사클래스명{스타일 정의}

a:link

==>방문한 내역이 없는 링크걸린 글자에 스타일 적용

a:visited

==>방문한 내역이 있는 링크걸린 글자에 스타일 적용

셀렉터:hover

==>셀렉터에 해당하는 곳에 마우스 커서가 놓였을 때에 스타일을 적용한다

셀렉터:active

==>셀렉터에 해당하는 곳에서 클릭이 발생하는 순간에 스타일을 적용한다.

a { border:1px solid gray;}

a:link { font-size:20pt; color:red;}

a:visited { font-size:30pt; color:green;}

a:hover { background-color: cyan}

a:active { background-color: pink}


소리재생 ==> audio태그를 사용한다.

형식) <audio src="경로명/파일명.확장자"></audio>

속성) controls ==> 음악을 재생, 정지, 볼륨 조절 등을 할 수 있는

객체를 나타낸다.

autoplay ==> 자동 재생

loop ==> 반복 재생

muted ==> 무음 처리(볼륨 0)

volume ==> 볼륨값을 조절한다(0~1사이의 값)

preload ==> 오디오 파일을 미리 다운 받아놓는다.

지원파일) mp3, wav, ogg


동영상 재생 ==> video태그를 이용하여 재생한다.

형식) <video src="경로명/파일명.확장자"></video>

속성) controls

autoplay

loop

muted

volume

preload

width ==> 재생 화면의 너비

height ==> 재생 화면의 높이

poster ==> 재생하기 전의 재생 화면에 나타날 그림을 설정한다.

지원파일) mp4, ogv, webm


source태그 ==> audio나 video태그를 구성할 때 재생할 파일들을 설정하는 태그로 source태그가

여러개 있으면 위에서부터 차례로 재생할 수 있는지 여부를 검사하여 재생할 수 있는 파일이

있으면 그 파일을 재생한다.

(호환성을 높이기 위해 사용한다.)

(audio태그나 video태그의 하위태그로 사용한다.)

div와 span

1.블록요소

==> 1) 줄바꿈기능이 있다.

2) 영역의 크기를 지정할 수 있다.

3) 영역의 크기를 지정하지 않는 한 줄을 전부 차지한다.

2.인라인요소

==> 1) 줄바꿈기능이 없다.

2) 영역의 크기는 내용(contents)의 크기와 같다.

(즉, 임의로 크기를 지정할 수 없다.)


iframe태그 ==> 한 문서의 본문 영역에 다른 문서를 넣을 수 있는 태그

형식)

속성) width ==> 프레임 영역의 너비

height ==> 프레임 영역

name ==> 프레임의 이름


a태그의 target속성에 설정할 수 있는 값

1._self : 기본값으로 현재프레임 영역에 결과가 나타난다

2._blank : 새창 또는 새탭에 결과가 나타난다.

3._parent : 부모프레임 영역에 결과가 나타난다.

4._top : 무조건 현재창의 전체영역에 결과가 나타난다.

5.프레임명 : 해당 프레임명에 해당하는 프레임영역이 없으면 _blank기능



form태그 ==> 사용자가 form태그의 하위태그인 입력요소들을

이용하여 작성한 데이터들을 서버로 전송하는 담당하는 태그이다.

형식) <form name="폼이름" action="처리할 문서명" method="전송방식" enctype="인코딩방식">

입력 요소들

</form>

*처리할 문서명 ==> 폼에서 보내온 데이터들을 서버단에서 받아서 처리해 줄 문서를 지정한다.

*전송방식 ==> get 또는 post 방식이 있다.

1.get방식 ==> method속성이 생략되면 기본값이 된다.

==> url주소 뒤에 데이터들을 붙여서 전송하는 방식

(데이터가 노출되고 적은 양의 데이터를 전송할 때 주로 사용된다.)

2.post방식 ==> http프로토콜의 body영역에 데이터를 넣어서 전송하는 방식

(데이터의 양이 많거나 데이터를 감춰서 전송할 때 주로 사용된다.)

*인코딩방식 ==> 보통의 데이터를 전송할 때에는 생략한다.

인코딩방식을 생략하면 기본값으로 application/x-www-form-urlencoded

(데이터를 문자로 전송한다)

==> 파일을 전송할 경우 : 'multipart/form-data'로 설정한다.

=============================================================================

*입력 요소에 사용되는 태그들

input태그, textarea태그, select태그, button태그


/*

[3-1] 다음 연산의 결과를 적으시오.

[연습문제] /ch3/Exercise3_1.java

*/


class Exercise3_1 {

	public static void main(String[] args) {

		int x = 2;

		int y = 5;

		char c = 'A'; // 'A' 65 의 문자코드는

		System.out.println(1 + x << 33);	//덧셈먼저(3) 시프트(int 32bit)는 2의n제곱* 

		System.out.println(y >= 5 || x < 0 && x > 2);//true

		System.out.println(y += 10 - x++);	//y = 5+10-2 = 13

		System.out.println(x+=2);			//x = 3+2

		System.out.println( !('A' <= c && c <='Z') );//!(true&&true) 대문자인지 판별

		System.out.println('C'-c);	//c는 'A'를 담고있고 int로 표현하면 67-65 = 2

		System.out.println('5'-'0');//0에서 5까지의 값 차이

		System.out.println(c+1);	//c에 저장된 'A'(65)의 값을 불러온후 1을 더함

		System.out.println(++c);	//값 증가 후에 명령 실행

		System.out.println(c++);	//명령 실행 후에 값 증가

		System.out.println(c);		//윗줄에서 증가된 값이 보여지게 됨

	}

}

/*

[3-2] 아래의 코드는 사과를 담는데 필요한 바구니 버켓 의 수를 구하는 코드이다 만일 사과의 수가 123개이고

하나의 바구니에는 10개의 사과를 담을 수 있다면 13개의 바구니가 필요할 것이다

[연습문제] /ch3/Exercise3_2.java

*/


class Exercise3_2 {

	public static void main(String[] args) {

		int numOfApples = 123; // 사과의 개수

		int sizeOfBucket = 10; // ( ) 바구니의 크기 바구니에 담을 수 있는 사과의 개수

		int numOfBucket = ( numOfApples/sizeOfBucket+1 ); // 모든 사과를 담는데 필요한 바구니의 수

		System.out.println("필요한 바구니의 수 :"+numOfBucket);

	}

}

//[실행결과] 13


/*

[3-3] 아래는 변수 의 값에 따라 num ‘양수’, ‘음수’, ‘0’을 출력하는 코드이다 삼항연산자로 알맞은 코드

[Hint] 삼항 연산자를 두 번 사용하라.

[연습문제] /ch3/Exercise3_3.java

*/

class Exercise3_3 {

	public static void main(String[] args) {

		int num = 10;

		System.out.println(num < 0 ? "음수" : (num > 0 ? "양수" : 0));

	}//조건 연산자?와 :이용, 연산의 우선순위를 정리하기 위해 괄호 사용 

}

//[실행결과] 양수


/*

[3-4] 아래는 변수 num의 값 중에서 백의 자리 이하를 버리는 코드이다 만일 변수 num의 값이 ‘456’이라면

‘400’이 되고, ‘111’이라면 ‘100’이 된다 에 알맞은 코드를 넣으시오.

[연습문제] /ch3/Exercise3_4.java

*/


class Exercise3_4 {

	public static void main(String[] args) {

		int num = 456;

		System.out.println(num/100*100);

	}

}

//[실행결과] 400


/*

[3-5] 아래는 변수 의 값 중에서 일의 자리를 1로 바꾸는 코드이다 만일 변수 num의 값이 333이라면 331이 되고

777이라면 771이 된다 에 알맞은 코드를 넣으시오

[ ] 연습문제 /ch3/Exercise3_5.java

*/



/*

[3-6] 아래는 변수 num의 값보다 크면서도 가장 가까운 10의 배수에서 변수 num의 값을 뺀 나머지를 구하는 코드이다

예를 들어 24의 크면서도 가장 가까운 10의 배수는 30이다 19의 경우 20이고 81의 경우 90이 된다 30에서 24를 뺀

나머지는 6이기 때문에 변수 num의 값이 24라면 6을 결과로 얻어야 한다 에 알맞은 코드를 넣으시오

[Hint] 나머지 연산자를 사용하라.

[연습문제] /ch3/Exercise3_6.java

*/

class Exercise3_6 {

	public static void main(String[] args) {

		int num = 24;

		System.out.println(10 - num%10);

	}

}

//[실행결과]6



/*

[3-7] 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다 변환공식이

'C =5/9 ×(F - 32)'라고 할 때 알맞은 코드를 넣으시오 단 변환 결과값은 소수점 셋째자리에서 반올림해야한다

(Math.round()를 사용하지 않고 처리할 것)

[연습문제] /ch3/Exercise3_7.java

*/

class Exercise3_7 {

	public static void main(String[] args) {

		int fahrenheit = 100;

		float celcius = 5/9F *(fahrenheit -32);

		System.out.println("Fahrenheit:"+fahrenheit);

		System.out.println("Celcius:"+((int)(celcius*100+0.5)/100F));

	}

}

//[실행결과]	Fahrenheit:100

//			Celcius:37.78



/*

[3-8] 아래 코드의 문제점을 수정해서 실행결과와 같은 결과를 얻도록 하시오.

[ 연습문제 ]/ch3/Exercise3_8.java

*/

class Exercise3_8 {

	public static void main(String[] args) {
		byte a = 10;
		byte b = 20;
		byte c = (byte) (a + b);	//jvm에서 연산을 위해 자동으로 int 형변환, 다시 byte로
		
		char ch = 'A';
		ch = (char) (ch + 2);		//jvm에서 연산을 위해 자동으로 int 형변환, 다시 char로
		
		float f = 3F / 2;			//적어도 하나는 F
		long l = 3000*3000*3000L;	//적어도 하나는 L
		
		float f2 = 0.1f;
		double d = 0.1;
		
		boolean result = (float)d==f2;		//유효자리수가 큰 double은 오차가 커질 수 있어 float으로
		
		System.out.println("c="+c);
		System.out.println("ch="+ch);
		System.out.println("f="+f);
		System.out.println("l="+l);
		System.out.println("result="+result);
	}

}

//[실행결과]

//c=30

//ch=C

//f=1.5

//l=27000000000

//result=true



/*

[3-9] 다음은 문자형 변수 ch가 영문자 (대문자 또는 소문자)이거나 숫자일 때만 변수  b의 값이 true가 되도록

[연습문제] /ch3/Exercise3_9.java

*/


class Exercise3_9 {

	public static void main(String[] args) {

		char ch = 'z';		//char은 ''로 표시, 논리연산자 ||이용

		boolean b = ('A' <= ch && ch <= 'Z' || 'a' <= ch && ch <= 'z' ||

				'0' <= ch && ch <= '9');

		System.out.println(b);

	}

}

//[실행결과]	true


/*

[3-10] 다음은 대문자를 소문자로 변경하는 코드인데 문자 ch에 저장된 문자가 대문자인 경우에만 소문자로 변경한다

문자코드는 소문자가 대문자보다 32만큼 더 크다 예를 들어 'A‘의 코드는 65이고 ’a'의 코드는 97이다

[연습문제] /ch3/Exercise3_10.java

*/

class Exercise3_10 {

	public static void main(String[] args) {

		char ch = 'A';	//대문자인지 판별한 뒤에 32만큼 합한다, 계산은 int로 이루어지기 때문에 변환

		char lowerCase = ( 'A' <= ch && ch <= 'Z' ) ? (char)(ch+32) : ch;

		System.out.println("ch:"+ch);

		System.out.println("ch to lowerCase:"+lowerCase);

	}

}

//[실행결과]

//	ch:A

//	ch to lowerCase:a







'먼지 낀 책장사이 > Java' 카테고리의 다른 글

4장 조건문과 반복문  (0) 2017.08.04
자바의 정석 연습문제 2장 변수  (0) 2017.07.25