package com.ohj;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MainClass5 {
	
	public static void main(String[] args) {
		String driver_name="com.mysql.jdbc.Driver";
		String db_url="jdbc:mysql://localhost:3306/testdb";
		
		//ERR connect:Unknown database 'testdb6' 데이터베이스명을 잘 못 되었을 경우
	
		String dc_id="root";
		String db_pw="920424";
	
		//ERR connect:Access denied for user 'root'@'localhost' (using password: YES)비밀번호나 아이디를 잘 못 입력했을 경우
	
		Connection conn = null;//java.sql 접속 결과값을 저장받는 곳(추후 자원해제 시 필요)​
		try {
			Class.forName(driver_name); //1번째 해당 드라이버 로딩해주기
			System.out.println(" mySQL Driver Load 성공");
			
			conn=DriverManager.getConnection(db_url,dc_id,db_pw);//2번째 드라이버메니저로 접속주소, 아이디, 비밀번호를 적어 로그인
			System.out.println("DB 접속 성공");//mysql에서 로그인해서 데이터베이스를 만들어 준다.
			
			Statement stmt= conn.createStatement();//java.sql 임포트 시킨다. db명령을 실행할 객체
	
			//삽입 
			/*String insert = "insert into test values('abc','123')";//실행할 db 명령
			int n=stmt.executeUpdate(insert);//db명령을 실제 실행하는 메소드
			//실행한 내용을 정수로 반환.
			System.out.println(n+"개 를 삽입했습니다.");
			
			//삭제 
			String delete = "delete from test";
			int k = stmt.executeUpdate(delete);
			System.out.println(k+"개를 삭제 했습니다.");*/
			/*//id가 ghi인 pw 값을 111로 수정
			
			
			//update테이블명 set 변경필드='변경값' where 검색필드 = '검색값'
			
			String update = "update test set pw ='111' where id='ghi'";
			int m = stmt.executeUpdate(update);
			System.out.println(m+"개가 수정되었습니다.");*/
		
		
				
			/*//테이블 데이터 조회(선택)
			//selsct*from 테이블명
			
			String select = "select*from test";
			
			ResultSet rs = stmt.executeQuery(select);//executeQuery() 반환타입 ResultSet
			
			rs.next();//다음 줄로 내려가라 내부포인터를 다음줄로 변경 / 다음 줄로 갈 수 있으면 true
			
			System.out.println(rs.getString("id"));//re.get데이터타입("필드명")
			
			rs.next();//다음 줄로 내려가라
			
			System.out.println(rs.getString("pw"));*/
	
			String select = "select*from test";
			ResultSet rs = stmt.executeQuery(select);//executeQuery()
			
				while(rs.next()){
				System.out.println(rs.getString("id"+"\t"));
				System.out.println(rs.getString("pw"));
				}
			} catch (ClassNotFoundException e) {
				System.out.println("ERR mySQL Driver Load:"+e.getMessage());
			} catch (SQLException e) {
				System.out.println("ERR connect:"+e.getMessage());
			
				}
	}//main(String[] args) end
}//class MainClass5 end

//select 필드명리스트 from 테이블명
//insert into 테이블명 (필드명리스트) values(데이터리스트)
//delete from 테이블명

//select * from test <= test 테이블의 모든 데이터 조회(선택)
// select id from test <== test 테이블의 아이디 값만 조회
//select pw from test => test 테이블의 비번만 조회
//select id,pw from test=>test 테이블 아이디와 비번을 조회

//insert into test (id) values('ccc')<= test테이블의 아이디 필드에만 ccc문자열을 삽입
//insert into test (pw) values('111')<= test테이블의 pw 필드에만 ccc문자열을 삽입
//insert into test (id,pw) values('dd','11')<= test테이블의 아이디,비번 필드 dd,11문자열을 삽입
//insert into test (pw,id) values('22','ee')<= test테이블의 아이디,비번 필드 '22','ee'문자열을 삽입
//insert into test values('22','ee')<= test테이블 생성시 생성된 필드 순서대로 값들을 삽입

//delete from test <- 모든 테이블 데이터 삭제

':: IT > mySQL' 카테고리의 다른 글

[mySQL] mySQL 데이터타입  (0) 2020.03.28
[mySQL] select, insert, delete  (0) 2020.03.28
20200113[MySQL] 기초  (0) 2020.03.28
//select 필드명리스트 from 테이블명
//insert into 테이블명 (필드명리스트) values(데이터리스트)
//delete from 테이블명

//select * from test <= test 테이블의 모든 데이터 조회(선택)
// select id from test <== test 테이블의 아이디 값만 조회
//select pw from test => test 테이블의 비번만 조회
//select id,pw from test=>test 테이블 아이디와 비번을 조회

//insert into test (id) values('ccc')<= test테이블의 아이디 필드에만 ccc문자열을 삽입
//insert into test (pw) values('111')<= test테이블의 pw 필드에만 ccc문자열을 삽입
//insert into test (id,pw) values('dd','11')<= test테이블의 아이디,비번 필드 dd,11문자열을 삽입
//insert into test (pw,id) values('22','ee')<= test테이블의 아이디,비번 필드 '22','ee'문자열을 삽입
//insert into test values('22','ee')<= test테이블 생성시 생성된 필드 순서대로 값들을 삽입

//delete from test <- 모든 테이블 데이터 삭제

':: IT > mySQL' 카테고리의 다른 글

[mySQL] mySQL 데이터타입  (0) 2020.03.28
[mySQL] JAVA를 이용한 접속, 쿼리 실행 기초  (0) 2020.03.28
20200113[MySQL] 기초  (0) 2020.03.28
	
	1. JDBC 드라이버 로드
		1-1.Class.forName("com.mysql.jdbc.Driver");
		1-2. 예외처리 : ClassNotfoundException

​

	2. 데이터베이스 연결

		2-1. String db_url="jdbc:mysql://localhost:3306/DB명"//127.0.0.1 //포트번호 :3306
	
		String dc_id="root";
		String db_pw="설치시 비밀번호";
		Connection con = unll;
		con = DriverManager.getConnection(db_url,dc_id,db_pw);

		2-2. 예외처리 : SQLException

	3. SQL문실행

		3-1. Statement stmt = null;
		
		stmt= conn.createDtatement();
		String sql="insert into test_table values('abc','1234');
		int i = stmt.executeUpdate(sql);
		
		3-2. 예외처리: SQLException
		
		​

4 조회결과처리

​

5.데이터베이스와 연결해제

​

​

Enter password: ******

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 4

Server version: 5.1.60-community MySQL Community Server (GPL)

​

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

​

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

​

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

​

mysql> create database testdb;

Query OK, 1 row affected (0.00 sec)

​

mysql> create database testdb;

ERROR 1007 (HY000): Can't create database 'testdb'; database exists

mysql> show datadases;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datadases' at line 1

mysql> show databases

->

->

->

-> show databases;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show databases' at line 5

mysql>

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| test |

| testdb |

+--------------------+

4 rows in set (0.00 sec)

​

mysql> use testdb;

Database changed

mysql> create table test (id varchar(10),pw varchar(10));

Query OK, 0 rows affected (0.05 sec)

​

mysql> dsc test;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dsc test' at line 1

mysql> desc test;

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id | varchar(10) | YES | | NULL | |

| pw | varchar(10) | YES | | NULL | |

+-------+-------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

​

mysql> insert into test (id,pw) values('abc','123');

Query OK, 1 row affected (0.03 sec)

​

mysql> insert into test (id,pw) values('def','456')'

'>

'> insert into test (id,pw) values('def','456');

'> insert into test (id,pw) values('def','456')'

->

-> insert into test (id,pw) values('def','456')'

'> insert into test (id,pw) values('def','456')'

-> insert into test (id,pw) values('def','456')'

'> i

'>

'>

'> insert into test (id,pw) values('def','456');

'> insert into test (id,pw) values('def','456');

'>

'> insert into test (id,pw) values('abc','123');

'>

'>

'>

'> '

-> insert into test (id,pw) values('def','456');

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''

​

insert into test (id,pw) values('def','456');

insert into test (id,pw) values' at line 1

mysql> insert into test (id,pw) values('def','456');

Query OK, 1 row affected (0.02 sec)

​

mysql> select*from test;

+------+------+

| id | pw |

+------+------+

| abc | 123 |

| def | 456 |

+------+------+

2 rows in set (0.00 sec)

​

mysql> select*id from test;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id from test' at line 1

mysql> select id from test;

+------+

| id |

+------+

| abc |

| def |

+------+

2 rows in set (0.00 sec)

​

mysql> delete from test;

Query OK, 2 rows affected (0.05 sec)

​

mysql> select*id from test;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id from test' at line 1

mysql> select id from test;

Empty set (0.00 sec)

​

mysql> select id from test;

+------+

| id |

+------+

| abc |

+------+

1 row in set (0.01 sec)

​

mysql> select*from test;

+------+------+

| id | pw |

+------+------+

| abc | 123 |

+------+------+

1 row in set (0.00 sec)

​

mysql>

mysql> select*from test;

Empty set (0.00 sec)

​

mysql> insert into test (id,pw) values('adc','123');

Query OK, 1 row affected (0.05 sec)

​

mysql> insert into test (id,pw) values('def','456');

Query OK, 1 row affected (0.03 sec)

​

mysql> insert into test (id,pw) values('ghi','789');

Query OK, 1 row affected (0.02 sec)

​

mysql> select*from test;

+------+------+

| id | pw |

+------+------+

| adc | 123 |

| def | 456 |

| ghi | 789 |

+------+------+

3 rows in set (0.00 sec)

​

mysql> select pw from test where id='abc';

Empty set (0.00 sec)

​

mysql> select pw from test where id='abc';

Empty set (0.00 sec)

​

mysql> delete from test;

Query OK, 3 rows affected (0.02 sec)

​

mysql> insert into test (id,pw) values('abc','123');

Query OK, 1 row affected (0.03 sec)

​

mysql> insert into test (id,pw) values('def','456');

Query OK, 1 row affected (0.03 sec)

​

mysql> insert into test (id,pw) values('ghi','789');

Query OK, 1 row affected (0.03 sec)

​

mysql> select pw from test where id='abc';

+------+

| pw |

+------+

| 123 |

+------+

1 row in set (0.00 sec)

​

mysql> select pw from test where id='456';

Empty set (0.00 sec)

​

mysql> select pw from test where id='456';

Empty set (0.00 sec)

​

mysql> delete from test where id='abc';

Query OK, 1 row affected (0.03 sec)

​

mysql> select*from test;

+------+------+

| id | pw |

+------+------+

| def | 456 |

| ghi | 789 |

+------+------+

2 rows in set (0.00 sec)

​

mysql> update test set pw='111' where id='jdf';

Query OK, 0 rows affected (0.00 sec)

Rows matched: 0 Changed: 0 Warnings: 0

​

mysql> select*from test;

+------+------+

| id | pw |

+------+------+

| def | 456 |

| ghi | 789 |

+------+------+

2 rows in set (0.00 sec)

​

mysql> update test set pw='111' where id='def';

Query OK, 1 row affected (0.03 sec)

Rows matched: 1 Changed: 1 Warnings: 0

​

mysql> select*from test;

+------+------+

| id | pw |

+------+------+

| def | 111 |

| ghi | 789 |

+------+------+

2 rows in set (0.00 sec)

​

mysql> insert into test (id,pw) values('ghi','789');

Query OK, 1 row affected (0.03 sec)

​

mysql> select*from test;

+------+------+

| id | pw |

+------+------+

| def | 111 |

| ghi | 111 |

| ghi | 789 |

+------+------+

3 rows in set (0.00 sec)

':: IT > mySQL' 카테고리의 다른 글

[mySQL] mySQL 데이터타입  (0) 2020.03.28
[mySQL] JAVA를 이용한 접속, 쿼리 실행 기초  (0) 2020.03.28
[mySQL] select, insert, delete  (0) 2020.03.28

1.ParentClass

package com.ohj.extend;

public class ParentClass {
	private int n=10;// 부모클래스,본인클래스 내부에서만 사용 가능한 변수
	
	boolean b = false;//같은 패키지 내부에서만 사용 가능한 변수
	
	public char c='A';//어디서든 접근 사용 가능한 변수
	
	protected String s ="test";//패키지가 달라도 자식 클래스에게는 허용
	
	public ParentClass() {
		System.out.println("PatrentClass()생성자 내부");
	}
	
	public ParentClass(int n) {
		this.n=n;
		System.out.println(n);
	}
	
	public void ParentMethod() {//어디서든 호출가능
		System.out.println("PatrentMethod()생성자 내부");
	}
	
	void defaultClass(){//같은패키지내에서만 호출가능
		System.out.println("defaultClass()생성자 내부");
	}
	
	private void privateMethod() {//부모 클래스 내부에서만 호출 가능
		System.out.println("privateMethod()생성자 내부");
	}

}

 

2.childClass

package com.ohj.extend;

//new ParentClass();

public class ChildClass extends ParentClass{//extends : 물려받는 것

	public ChildClass() {

		//super();//부모 클래스를 호출한다. 무조건 앞에다가 적어줘야한다.
		super(250);

		System.out.println("ChildClass 생성자 내부");

	}
}

3.OtherClass

package com.ohj.extend.pkg;

// 다른 패키지에 있는 클래스를 사용 할 경우 반드시 import
import com.ohj.extend.ParentClass;

public class OtherClass extends ParentClass {
	public OtherClass() {
		System.out.println("OtherClass 생성자 내부");
	}

	public void ParentMethod() {//어디서든 호출가능
	
	int s =100;
	
	System.out.println("OtherClass PatrentMethod 내부"+100);
	
	//부모로부터 받은 메소드를 자식이 고쳐서 쓸 수 있다. 이와 같은 기법을 override라고 부른다.
	//자식클래스는 부모로부터 물려받은 메소드의 {}내부만 수정 가능하다.
	
	}
}

4.MainClass

package com.ohj.extend;

import com.ohj.extend.pkg.OtherClass;

// 상속, 접근제한자에 관한 내용

public class MainClass {
	public static void main(String[] args) {

		//ParentClass pc= new ParentClass();
		
		ChildClass cc= new ChildClass();//boolean b변수를 상속한다.
		
		//OtherClass oc = new OtherClass();	
	}
}

 

1.InfoClass

package com.ohj.news;

public class InfoClass {
	int a=10;
	String s="info";

	public InfoClass(){//클래스 생성자가 없을 때 기본 생성자를 만들어준다.
	}

	public InfoClass(int n,String s){
	
		this.a = n;
		this.s = s;
	
	}

//오버라이드:상속된 자식이 내부를 고치는 것

	public String toString(){
		return a+" "+s;
	}

	public static void test(int n){
		int c = a;
	}

	public static void t(){
		int b =	a;
	}

}

2.MainClass

package com.ohj.news;

public class MainClass {
	
public static void main(String[] args) {

	InfoClass ic1= new InfoClass();
	InfoClass ic2= new InfoClass();
	
	System.out.println(ic1.toString());
	
	//com.ohj.news_ex.InfoClass@15db9742
	System.out.println(ic2.toString());
	
	//com.ohj.news_ex.InfoClass@6d06d69c 참조값 알아내기
	System.out.println(ic1.getClass());
	
	//class com.ohj.news_ex.InfoClass 어떤 객체의 타입을 알고 싶다.
	}
}

link와 import

외부로 파일을 빼는 방법은 크게 두가지

1. <link rel="stylesheet" href="style.css">

2. <style>@import url("style.css")</style>

<!doctype html>
<html>
<head>
<!--    <link rel="stylesheet" href="style.css">-->
    <style>
        @import url("style.css")
    </style>
</head>
<body>
    <h1>page2</h1>
</body>
</html>

//중복을 제거하는 코드를 만들자.

코드 경량화(minify)

코드의 크기를 줄이는 것

파일명.min.css

preprocessor

stylus

background-color : red
background-image : url("bg.png")
background-repeat : repeat, no-repeat, repeat-x, repeat-y
background-attachment : scroll, fixed
background-position : left top  or x% y% or x y
background-size : 100px 100px or cover or contain

transform

https://opentutorials.org/course/2418/13684

 

변형(transform) - 생활코딩

소개 transform은 엘리먼트의 크기, 위치, 모양을 변경하는 속성입니다.  형식 transform은 아래와 같은 형식이 올 수 있습니다. /* Keyword values */ transform: none; /* Function values */ transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0); transform: translate(12px, 50%); transform: translateX(2em); transf

opentutorials.org

 

transition
전환은 효과가 변경 되었을 때 부드럽게 처리해주는 기능

<!doctype html>
<html>
<head>
  <style>
    a{
      font-size:3rem;
      display:inline-block;
/*
      transition-property: font-size transform;
      transition-duration: 0.1s;
      transition:all 0.1s;
*/
      transition:all 0.1s;
    }
    a:active{
      transform:translate(20px, 20px);
      font-size:2rem;
    }
  </style>
</head>
<body>
  <a href="#">Click</a>
</body>
</html>​
Multi column

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="author" content="egoing">
    <style>
      .column{
      //justify :본문의 겉 라인을 다음어 주는 것
        text-align: justify;
        //column-count : 4개의 칸
        column-count: 4;
/*        column-width: 200px;*/
		//column-gap : 칸의 간격을 30px 만큼 준다.
        column-gap:30px;
        //style: 칸의 간격 스타일을 지정한다.
        column-rule-style: solid;
        column-rule-width: 5px;
        column-rule-color: red;
      }
      h1{
        column-span: all;
      }
    </style>
</head>
<body>
   <div class="column">
     Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestiae blanditiis nostrum eum ipsam, 
      
     quam expedita distinctio aspernatur voluptas inventore in officia at, a repudiandae modi vel dicta exercitationem accusamus? Tenetur minima doloremque, sequi id, necessitatibus deleniti porro ex maxime perferendis quaerat rerum molestias dolor fugit ullam expedita? Earum velit eaque, esse aliquid labore, ex, corporis odit deserunt consectetur sit aspernatur
      <h1>Lorem ipsum dolor sit amet.</h1>
       ipsam quos cupiditate dolores voluptatem non nam voluptas ab animi quidem adipisci repellat id quod. Laboriosam, distinctio, ut. Quia deserunt, voluptates illum eos, qui, doloremque recusandae laudantium aliquam amet rerum nulla, eveniet. Libero quas iusto, suscipit esse beatae voluptas labore. Nobis facere architecto adipisci ipsa molestias, possimus tempore. Obcaecati, quae laborum atque perspiciatis natus dolore repellendus in officia, sit! Placeat, nesciunt cupiditate similique vitae minima iusto blanditiis perferendis obcaecati enim odio delectus. Quaerat quos deserunt, voluptas aperiam. Quo neque ducimus accusamus quibusdam minima incidunt, voluptatem saepe iusto sit numquam, expedita distinctio aliquid voluptatum alias voluptate sint est ab similique ipsam unde quas porro error? Illum unde consequuntur ab optio architecto, adipisci odit saepe dolor est perferendis error autem iusto a iste tempore nam enim quaerat dicta fugit vel eaque itaque, laborum? Dolores consequatur quo labore dolorem nemo in, tempora animi enim delectus ipsam amet possimus et deserunt recusandae eveniet provident cum quaerat dolorum esse, nam doloremque! Porro sapiente labore aliquam incidunt temporibus praesentium est tempora magnam placeat rem. Autem non provident eos perferendis nihil numquam quisquam suscipit aut, vero minima ex iure cum possimus eveniet veniam aliquam nulla a dignissimos, fugit tempora eaque totam temporibus! Magni minus expedita tempore deserunt necessitatibus, quibusdam, repellat sequi quos exercitationem aliquam sapiente libero eius vitae rem ea nihil deleniti nemo debitis tempora soluta a similique inventore. Sit vero dignissimos facere dolore dicta nulla iure magni quos officiis esse hic accusantium, praesentium adipisci laudantium impedit provident fuga suscipit, placeat porro itaque voluptatum dolorem ullam velit quasi. Laboriosam distinctio explicabo, ullam fugit nesciunt nam itaque repellendus nemo doloribus officia unde quaerat aspernatur odit. Porro quisquam at officia, ad totam minima minus aliquid aliquam rerum dicta, odio sint optio. Exercitationem similique, dignissimos sit nihil fuga ex dolores molestiae ratione impedit error, vitae aliquid reiciendis maxime id odit sed eveniet. Corporis in mollitia assumenda, exercitationem ullam explicabo dolorum tempore architecto cum. Possimus natus ipsam facilis porro magni deleniti nulla eveniet aliquam incidunt minima nihil alias voluptatem, odio molestiae quaerat suscipit, officiis temporibus itaque veritatis, placeat modi corporis saepe harum delectus officia. Libero rerum expedita dolorem porro architecto reprehenderit eligendi molestiae, amet minima quae assumenda neque nulla error, officiis suscipit placeat, illo eius. Aliquid dicta cupiditate culpa consequatur totam. Qui consequuntur eveniet eum dicta repellendus quam ea quisquam dolore, distinctio, quidem facilis minus ratione ullam perferendis. Ad ea, aliquid doloremque distinctio enim hic sunt illum dolore, commodi iusto nobis temporibus nesciunt, vero quae velit perferendis dicta. Quod necessitatibus sit, accusamus odit aspernatur! Sequi, nisi aut at totam perspiciatis fugit quos minus sapiente consequatur neque officiis quibusdam qui nemo, voluptatibus minima dolore laboriosam. Recusandae similique accusamus vel eaque tempore fugiat dolore adipisci, tempora, impedit harum facere aspernatur et nam sequi, facilis architecto voluptate sunt iusto soluta. Itaque laboriosam tempore ab harum fugit natus, eius laborum culpa, impedit autem magni totam. Et dicta animi molestiae, aliquam, sequi enim. Accusamus consectetur eum eligendi nemo sunt provident ut repudiandae, distinctio! Recusandae harum animi quia perferendis maiores! Ratione quis cupiditate odio dolore nulla minus iure veritatis hic temporibus neque beatae delectus doloribus repellat quisquam alias mollitia accusantium perferendis, quibusdam recusandae, iusto modi maiores excepturi corrupti voluptatibus! Facere, maiores ea natus culpa necessitatibus temporibus, eaque, vitae nihil animi repudiandae expedita aspernatur quo sequi, soluta. Minus eligendi tenetur ullam, doloremque, quod libero provident excepturi beatae cumque quo, voluptate. Quam deleniti minus officiis. Sit velit, debitis voluptatem modi consequatur doloremque aperiam assumenda expedita odio nesciunt quis ipsam, cumque impedit quia veritatis error quidem similique accusantium eos, qui sunt? Blanditiis facere tenetur eius minus dolorum, praesentium doloremque consequatur accusamus quis expedita, reiciendis odio optio illo voluptatibus ut asperiores quos officia totam distinctio eaque. Aspernatur eaque nihil porro illo laboriosam ex ea id fuga ipsa! Cum reprehenderit, cumque dolorum aliquam quidem aliquid soluta corrupti pariatur fugiat quae excepturi tempora, nostrum eveniet accusamus consectetur alias minus nulla unde. Rem expedita vitae labore culpa, id sit reiciendis quaerat, temporibus nemo eos modi error excepturi voluptatem. Non officia, accusantium inventore reiciendis cupiditate laboriosam ullam quaerat officiis facilis modi eum iste eius, soluta, iure nobis dolor. Similique deserunt beatae officia reprehenderit quo, aliquam facilis autem nihil in! Quisquam minima sunt corporis, ipsum maiores nam quia corrupti, odit id suscipit ratione voluptate nisi incidunt sequi eum facilis dicta deleniti aliquid ducimus maxime esse qui. Sunt eius, deserunt illo quod ducimus quasi, sed soluta ipsum inventore nisi! Optio modi omnis, ex, fugit nemo eveniet. Nostrum, incidunt porro, dolores non, dolor velit commodi eius recusandae eaque necessitatibus molestiae dolorem unde ipsa voluptatum. Ipsa ab minus atque non quis debitis delectus similique excepturi, ipsum suscipit perferendis doloribus deleniti nam blanditiis architecto quae fuga porro perspiciatis magnam ipsam pariatur. Quia, temporibus. Molestias quia nesciunt vitae quam, deserunt dolor adipisci architecto minus natus facere, molestiae, sint eum. Soluta magni totam ducimus, deserunt quam, nisi unde, asperiores iusto, repudiandae aperiam dolorem ab libero aliquam fugit ratione voluptatem sunt vel earum saepe debitis id nostrum minus ullam quaerat. Amet molestias deserunt quae assumenda ut odit corporis accusantium saepe labore ad. Distinctio in doloremque, deleniti provident ducimus quisquam at, temporibus odio eligendi, consequuntur sequi quibusdam facere aut enim vel similique eius asperiores aperiam ratione suscipit est eum dolore. In eius dignissimos, quod illum dolores! Molestiae possimus eius, illo incidunt optio deleniti, nihil odit nisi harum, quo ex. Corporis omnis accusantium consequuntur ratione laudantium magni tempora expedita. Earum ullam, aspernatur quisquam doloremque soluta quae eius tempora atque magni omnis ex vel iusto, similique eos provident! Autem ipsum aliquam quasi minima, incidunt perferendis facere, optio nobis rerum dolor ipsam quas. Quam consectetur recusandae voluptatem. Praesentium excepturi sunt ut neque eum labore ducimus repudiandae eveniet quibusdam explicabo, iure obcaecati nobis, veritatis quis et accusantium ipsa.
   </div>
</body>
</html>

 

mediaquery

<!doctype html>
<html>
<head>
	//모바일 때문에 쓰임
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
   		 //@media  최대 600픽셀 보다 작아질 때 초록색
         //케스케이딩 : 누구에게 우선권을 주는가
        @media (max-width:600px){
            body{
                background-color: green;
            }
        }
        @media (max-width:500px){
            body{
                background-color: red;
            }
        }
        @media (min-width:601px){
            body{
                background-color: blue;
            }
        }
    </style>
</head>
<body>
   <ul>
       <li>~500px : red</li>
       <li>501~600px : green</li>
       <li>601px~ : blue</li>
   </ul>
     
     
     
</body>
</html>

 

float : 이미지를 삽입, 레이이웃 작성

<!doctype html>
<html>
<head>
  <style>
    img{
      width:300px;
      //float : 이미지를 본문안에 삽입 할 수 있는 태그
      float:left;
      margin:20px;
    }
    p{
      border:1px solid gray;
    }
  </style>
</head>
<body>
  <img src="sample.mt.jpg" alt="">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate minus, obcaecati quia eaque perspiciatis! Vero cum libero architecto. Odit, et. Totam expedita
  </p>
  //<p style="clear:both;" : 위에 float효과를 무시하겠다.
  <p style="clear:both;">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate minus, obcaecati quia eaque perspiciatis! Vero cum libero architecto. Odit, et. Totam expedita Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate minus, obcaecati quia eaque perspiciatis! Vero cum libero architecto. Odit, et. Totam expedita Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate minus, obcaecati quia eaque perspiciatis! Vero cum libero architecto. Odit, et. Totam expedita
  </p>
</body>
</html>
<style>
	p,a{
		border: 10px solid red;
		20px만큼 간격이 벌어진다.
		padding: 20px;
		테두리와 다른 요소의 간격이 벌어진다.
		margin: 40px;
		폭
		width: 120px;
	}	
</style>

 

 box-sizing

<!doctype html>
<html>
<head>
    <style>
        *{ // *모든 내용
            box-sizing:border-box;
            // 컨텐츠의 박스 만큼 크기가 동일하게 만든다.
        }
        div{
            margin:10px;
            width:150px;
        }
        #small{
            border:10px solid black;
        }
        #large{
            border:30px solid black;
        }
    </style>
</head>
<body>
       <div id="small">Hello</div>
       <div id="large">Hello</div>
</body>
</html>

 

포지션

<!DOCTYPE html>
<html>
  <head>
    <style>
        html{border:1px solid gray;}
        div{
            border:5px solid tomato;
            margin:10px;
        }
        #me{
        	//relative 상대적인/me의 위치를 선택해준다.
            position: relative;
            			static
						absolute 
						fixed // 스크롤로부터 독립된 것
            
            
            left:100px;
            top:100px;
        }
    </style>
  </head>
  <body>
    <div id="other">other</div>
    <div id="parent">
       parent
       <div id="me">me</div>
    </div>
  </body>
</html>

 

 

 

<!doctype>
<html>
<head>
    <style>
    //컨테이너 태그에 display:flex 속성을 부여
        .container{
            background-color: powderblue;
            height:200px;
            display:flex;
            //왼쪽 정렬
            flex-direction:row;
        }
        .item{
            background-color: tomato;
            color:white;
            border:1px solid white;         
        }
        .item:nth-child(1){
            flex-basis: 150px;
            //basis의 값을 줄이는 것(화면크기 변경시 자동으로 줄었다 길었다하는 것)
            flex-shrink: 1;
        }
        .item:nth-child(2){
            flex-basis: 150px;
            flex-shrink: 2;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
    </div>
</body>
</html>

 

 

 

Holy Grail layout

<!doctype>
<html>
<head>
    <meta charset="utf-8">
    <style>
    //flex (정렬)를 사용하려면 container를 사용해야한다.
        .container{
            display: flex;
            flex-direction: column;
        }
        header{
            border-bottom:1px solid gray;
            padding-left:20px;
        }
        footer{
            border-top:1px solid gray;
            padding:20px;
            text-align: center;
        }
        .content{
        //한 줄로 배치
            display:flex;
        }
        .content nav{
            border-right:1px solid gray;
        }
        .content aside{
            border-left:1px solid gray;    
        }
        nav, aside{
        //shrink 웹화면을 크게하거나 작게할 시
            flex-basis: 150px;
            flex-shrink: 0;
        }
        main{
            padding:10px;
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>생활코딩</h1>
        </header>
        <section class="content">
            <nav>
                <ul>
                    <li>html</li>
                    <li>css</li>
                    <li>javascript</li>
                </ul>
            </nav>
            <main>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis veniam totam labore ipsum, nesciunt temporibus repudiandae facilis earum, sunt autem illum quam dolore, quae optio nemo vero quidem animi tempore aliquam voluptas assumenda ipsa voluptates. Illum facere dolor eos, corporis nobis, accusamus velit, similique cum iste unde vero harum voluptatem molestias excepturi. Laborum beatae, aliquid aliquam excepturi pariatur soluta asperiores laudantium iste, architecto ducimus fugiat sed, saepe quaerat recusandae exercitationem sapiente, impedit nostrum error. Doloremque impedit, eos in quos assumenda illo eum dicta. Voluptatum quaerat excepturi consectetur, doloremque esse deleniti commodi natus, maxime sit? Officia rerum quibusdam porro dolorum numquam harum soluta ex quo! Vero, nam? Necessitatibus rem hic perferendis maiores obcaecati voluptate sunt autem id doloribus, similique repudiandae nesciunt vel facere ex accusantium ipsum provident iste itaque? Perferendis culpa nostrum repellendus dolores repudiandae assumenda, tempora laudantium in quibusdam placeat facilis ex voluptatem provident velit iusto fuga eum nobis deserunt enim minus. Explicabo vel labore, eum doloremque, impedit recusandae aut illum corporis quis atque sit vero quasi tempore placeat ipsam similique quo delectus provident animi distinctio debitis eligendi voluptatum! Dolorem perspiciatis similique non fugit eaque? Commodi suscipit earum aliquam rem, neque ad. Obcaecati nisi beatae officia inventore laborum nostrum natus perspiciatis iste, aperiam vero quisquam saepe labore facilis veritatis illo excepturi vitae autem quis! Voluptatibus atque doloribus perferendis, eligendi ex aliquid debitis laudantium omnis accusamus similique cum mollitia quos adipisci reprehenderit assumenda sequi, dolore tenetur ipsam, odio, vero reiciendis iure. Dolore itaque nesciunt ipsam, id maxime saepe officiis dolorum molestias earum temporibus? Possimus ipsum accusamus quasi minima, quod magnam iusto non cupiditate facilis pariatur aliquam omnis, blanditiis assumenda magni ad voluptas dicta est optio reprehenderit rem ratione earum ipsa, dolor vero! Totam, adipisci eos nihil repellendus. Maiores, blanditiis. Officiis aspernatur iure culpa illo sint ex id perferendis, explicabo architecto ipsa voluptatibus nesciunt pariatur commodi cum quam. Obcaecati ut quidem quam error nemo. Pariatur aliquid autem inventore laboriosam, velit totam, temporibus ad magnam minus, quis nesciunt aperiam veritatis. Vitae porro provident magni eos sit sed dignissimos iure natus odio nostrum molestiae atque mollitia saepe adipisci ut velit quo hic fuga ex, voluptates vel eum ipsum amet, sunt corporis. Maxime odit alias, ratione tenetur, asperiores consequuntur deserunt modi velit ab maiores pariatur voluptates beatae aut nesciunt perspiciatis sed veritatis doloremque quibusdam amet vero. Qui, labore. Atque ratione quae ducimus reprehenderit perferendis nisi earum, debitis commodi maxime sequi facere optio doloribus, repudiandae ex quidem amet iusto inventore quaerat at praesentium sint. Omnis mollitia esse illum suscipit, quis dolorem maxime sunt eaque, autem nisi corrupti perferendis provident tempore quas, unde! Doloribus, at, accusamus, maiores enim amet quod provident temporibus atque, ipsam fugiat incidunt. Quasi iusto ea quibusdam eveniet porro officiis dicta fugiat fugit laudantium ipsum esse quisquam quo laboriosam odit voluptates alias veritatis expedita quidem consectetur eos, impedit, incidunt dolorum? Laborum, facere nulla ullam, aliquid rerum nihil non adipisci, architecto obcaecati iure quam, fuga minus alias eligendi provident ex odio sit. Ducimus, facilis veritatis numquam, maxime quos natus animi, a magnam itaque veniam pariatur sed alias eos quas? Voluptatum fugit doloribus fugiat iste adipisci quidem odit consectetur, sapiente culpa magnam laborum, laboriosam exercitationem cupiditate dignissimos, nisi doloremque hic itaque aspernatur. Ab labore dolorum cumque rem vitae repellat quo quae porro cupiditate minus. Perspiciatis cumque sequi provident fugit. Nulla reiciendis voluptates molestiae corporis voluptate, quidem consequuntur, dolor vero necessitatibus deleniti tempora ab facilis similique, ea error deserunt fuga quia atque omnis nam earum non, illo. Minima quos optio nostrum eos aperiam? Quam, obcaecati velit deserunt tempore, iure vitae repudiandae quos illum quasi esse quas quaerat at consectetur necessitatibus. Cum, quod, dolore voluptatibus quibusdam accusamus aliquam consequatur dolorum illo! Sequi commodi adipisci explicabo soluta necessitatibus magni expedita cumque, officiis voluptas, vel amet recusandae sunt, quidem eum aliquid deleniti unde, impedit non magnam consectetur est minima facere architecto. Molestias cum vero nostrum saepe, dignissimos eius beatae natus fugiat deserunt esse, nesciunt eos ducimus id amet magnam possimus? Optio adipisci quisquam earum totam nemo sunt provident iure ab consectetur et deleniti molestiae blanditiis laudantium, autem consequatur rerum labore ipsa ipsam deserunt nisi, expedita doloremque quibusdam! Illo nemo laborum a sequi in, ad ipsum blanditiis alias! Eaque eos eligendi hic dolorum sint, tempore voluptatum ut numquam. Corporis similique itaque accusantium, esse porro ea dolor, quae consequuntur ullam necessitatibus magni rem optio officiis totam in dicta quas, odio quam blanditiis dolores pariatur? Dolorem, fuga? Harum ratione nemo perspiciatis culpa eum repudiandae esse, atque impedit nihil debitis, assumenda est. Sapiente rerum alias ipsa tempore obcaecati deserunt maiores distinctio officiis itaque fugit optio, eveniet facere amet ipsum, harum laboriosam eius, enim magni blanditiis temporibus nobis consequuntur ut. Quia magnam vero atque modi aspernatur in perferendis voluptas reprehenderit, rerum dolore unde iusto ab non eius molestiae quasi tenetur beatae ipsam quidem, quos at architecto voluptate alias eos. Deserunt velit beatae, ullam, accusantium sit asperiores! A vero perferendis, harum praesentium dolorem deserunt. Numquam voluptas necessitatibus, aliquam ullam saepe harum amet consequatur minima neque officia maxime quo beatae ab aliquid ex placeat rerum unde, reiciendis aspernatur similique, doloremque ad laboriosam modi. Minus quam aperiam, sed aliquid. Fugiat amet harum consequuntur reprehenderit id eum ratione quos temporibus, quae. Ab ut omnis tempora voluptates, sed ea animi voluptatem pariatur quod mollitia corrupti voluptas repellendus consequatur quae adipisci, enim vitae harum nulla natus iusto hic totam officia architecto quam. Debitis dignissimos praesentium, hic. Ad assumenda, aliquid consequuntur dolore eum repudiandae ab explicabo ipsa sed blanditiis. Quidem unde necessitatibus facilis, quis commodi. Dignissimos perferendis, nihil labore corrupti autem cumque ipsum vel voluptatum? Nostrum labore, omnis provident ullam repellendus culpa amet rem consequatur animi, necessitatibus porro. In consequatur optio recusandae, quisquam accusantium at deserunt voluptatem fugit quibusdam neque libero assumenda consectetur numquam ratione quaerat. Quos omnis neque atque, id perferendis possimus, alias, dignissimos doloribus ducimus similique ratione vitae eos laudantium, tempore cupiditate quod consectetur! Voluptas enim laboriosam nesciunt rem. Recusandae beatae numquam asperiores adipisci neque, vel pariatur suscipit provident, a est magni. Laborum dolore incidunt saepe ipsam? Eveniet doloremque animi maxime aliquid rem fugit dolor dignissimos! Quo, ut quod ab.
            </main>
            <aside>
            //<aside>: 부가적인 내용
                AD
            </aside>
        </section>
        <footer>
            <a href="https://opentutorials.org/course/1">홈페이지</a>
        </footer>
    </div>
</body>
</html>

 

가상클래스 선택자
<style>
	a:VISITED{color: green;} //<a>에 해당하는 방문한 곳은 색이 변한다.
	a:ACTIVE {color: green;}//커서를 누르고 있으면 색이 변한다
	a:HOVER {color: yellow;}//커서를 올리고 있으면 색이 변한다
	a:FOCUS {color: yellow;}//포커스는 항상 뒤에 넣는게 좋다. 탭키를 누르면 색이 변한다. 
</style>

https://flukeout.github.io/

 

CSS Diner

A fun game to help you learn and practice CSS selectors.

flukeout.github.io

font-siz
1.px
2.rem
3.em

<!DOCTYPE html>
<html>
  <head>
    <style>
      #px{font-size:16px;}
      #rem{font-size:1rem;}
    </style>
  </head>
  <body>
    <div id="px">PX</div>
    <div id="rem">REM</div>
  </body>
</html>

 

 

text-align
 text-align: left;
  text-align: right;
   text-align: center;
    text-align: justify; //왼쪽과 오른쪽의 공백이 공평하게 나뉨


<!DOCTYPE html>
<html>
  <head>
    <style>
      p{
        text-align: justify;
        border:1px solid gray;
      }
    </style>
  </head>
  <body>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras accumsan iaculis tristique. Pellentesque eu erat mattis est semper condimentum. Nunc sed facilisis turpis. Mauris vulputate, purus in suscipit accumsan, dolor lorem elementum mi, non congue metus urna vitae tortor. Duis dictum ipsum non neque elementum iaculis. Sed sodales purus nisl, gravida pellentesque metus vehicula vitae. Suspendisse sed justo ut lorem molestie consectetur. Nullam efficitur quis velit ut scelerisque. Integer at velit pharetra neque efficitur varius.
 
Vestibulum interdum tellus sed tellus pretium vulputate. Vestibulum a mattis ante. Ut at metus eget eros dictum tristique. Proin sodales nulla eget enim pulvinar imperdiet. Aliquam et congue quam. Duis blandit dui faucibus lorem auctor, ut laoreet dolor aliquet. Vestibulum nec placerat ligula, vitae vehicula neque. Nulla dictum dui et vehicula mattis. Aenean non erat non diam sollicitudin posuere.
 
Donec placerat felis in elementum ullamcorper. Duis tellus nunc, eleifend non molestie eget, ornare ut risus. Morbi sit amet nunc ante. Donec vestibulum tortor nec massa vestibulum suscipit. Quisque faucibus pulvinar erat, vitae gravida tortor commodo vitae. Suspendisse malesuada urna eu imperdiet tincidunt. Curabitur non scelerisque nulla. Nullam pellentesque ante ex, eget varius odio lacinia nec. Cras sed ligula vitae odio dictum semper ut sed eros. Vivamus sollicitudin elementum felis a accumsan. In vitae mi at sem molestie bibendum nec quis libero. Fusce sed tortor ultrices, maximus risus nec, tincidunt orci.
 
In hac habitasse platea dictumst. Maecenas congue arcu nulla, vel pharetra mauris condimentum vel. Quisque sit amet sapien arcu. Vestibulum eu consectetur ante, vel iaculis justo. Proin in ipsum vel eros auctor rhoncus sed vel lacus. Vestibulum suscipit dolor eget nunc accumsan semper. In ac porta libero. Pellentesque risus ipsum, egestas sit amet rhoncus eu, finibus sit amet felis. Nunc gravida nulla non elit porttitor, sed maximus arcu semper. Ut nulla ante, ornare nec quam sed, venenatis viverra odio. Ut vitae odio nisi. Nam vitae ullamcorper nulla. Sed eu fermentum velit. Pellentesque id dolor metus. Nullam pharetra pharetra enim, pretium convallis metus ultrices eget. Sed cursus vestibulum orci in cursus.
 
Integer commodo varius ornare. Vivamus lacus urna, scelerisque nec lectus porta, interdum commodo dolor. Curabitur sagittis diam quis tellus semper commodo. Ut non orci consectetur, cursus urna et, tincidunt est. Donec mollis vulputate tempus. Aliquam sapien leo, venenatis at ligula vitae, vestibulum finibus ipsum. Donec pulvinar pretium mattis. Mauris risus augue, eleifend et suscipit ac, convallis vel nisl. Fusce tincidunt fringilla vulputate. Ut porttitor lorem vitae sodales finibus.
    </p>
  </body>
</html>

 

 

font

<!DOCTYPE html>
<html>
  <head>
    <style>
      #type1{
        font-size:5rem;
        
        font-family는 글꼴 정해주기
         serif는 알파벳에 장식이 있는 폰트
        font-family: arial, verdana, "Helvetica Neue", serif;
        
       font-weight는 진하게 보이는 것
       font-weight: bold;
       
       line-height는 줄 간격
        line-height: 2;
      }
      
      #type2{
        font:bold 5rem/2 arial, verdana, "Helvetica Neue", serif;
      }
      
    </style>
  </head>
  <body>
    <p id="type1">
      Hello world<br>
      Hello world
    </p>
    <p id="type2">
      Hello world<br>
      Hello world
    </p>
  </body>
</html>
li로 묶인 글을 파란색으로 칠하라
<style>
	li{color: blue;}
</style>

제목을 붉은색으로 칠하라
<h1 style="color: red;">helloworld</h1>


선택과 선언
<style>
	li{color: blue;
		밑줄 그어주는 것
		text-decoration:underline;
		}
</style>

선택자의 종류
1.id 선택자
#select{font-size:50px;}
<li id="select"></li>

2.클래스선택자
Class : 어떠한 대상을 그룹핑하기 위한 것
id : select는 한번만 등장한다. 여러번 사용할 경우 클래스를 사용해야한다.
.active{text-decoration:underline;}
<li class="active"></li>

3. 부모자식 선택자
ul아래에 있는 li에 값을 파란색으로 바꿔라
ul li{color: blue;}
	
ol아래의 li에  빨간 칸을 만들어라
ol>li{border:1px solid red;}
	
ul,ol의 배경색을 파란색으로 바꿔라
ul,ol{background-color:powderblue;}




help->Ecilpse Marketplace -> eclipse theme ->인스톨 


Window -> perferences -> General

1. number 
숫자만 입력이 가능한 입력폼
<input type="number" min="최소입력 숫자 제한" max="최대입력 숫자제한 ">

2. 캘랜더 형식
<input type="date" name="datev">
<input type="month">
<input type="week">
<input type="time">

3. 이메일 주소를 입력하게 하는 것 
<input type="email"> 

4. 검색
<input type="search">

5.전화번호 입력
<input type="tel">

6.url 입력
<input type="url">

7.슬라이더가 생긴다
<input type="range"  min="최소입력 숫자 제한" max="최대입력 숫자제한 ">

8.autocomplete 
컴퓨터가 기억 하고있는 자료를 자동으로 불러온다. 
<form action="" autocomplete="on"></form>
<input type="text" name="id" autocomplete="on">

8.placeholder
<input type="password" name="pw" placeholder="필수입력 내용">

9. autofocus
사이트 커서가 자동으로 입력창으로 가게 해주는 법
<input type="password" name="pw" placeholder="필수입력 내용" autofocus>

입력 값 체크 
10. require
필수로 입력하게 하는 것
<input type="password" name="pw" required>

11. 패턴 pattern
<input type="password" name="pw" required pattern="[a-zA-Z].+[0-9]">

+ Recent posts