웹프로그래밍/기초

2. HTML, CSS, JavaScript, PHP

차가운오미자 2021. 6. 16. 11:15

 

1. HTML

- hypertext: 문서와 문서가 링크로 이어져 있다

- markup language:

- tag: 시작 태그 - 끝 태그 사이 "컨텐츠"에 특정한 효과를 줄 수 있음

 

2. Semantic Web (HTML5)

의미가 잘 드러나는 웹

- <ol> 링크 </ol>

- <ul> 본문 </ul>

 

HTML5 태그:

특정 영역이라는 표시를 알려주는 태그 사용

- <nav> : nav 사이들 사이가 탐색 위한 곳이라는 것을 알려줌

- <header> : 여기가 헤더다

- <article> : 여기가 본문이다

<!DOCTYPE html>
<html>
<head>
	<meta charset = ‘utf-8'/>
</head>

<body>
	<header>
    	<h1>드라마로 배우는 중국어</h1>
    </header>
    <nav>
    	<ol>
        	<li>천성장가</li>
            <li>포말지하</li>
            <li>About us</li>
        </ol>
    </nav>
    <article>
    	<h2>천성장가</h2>
        천성장가는 넷플릭스 드라마이다.
        <ul>
        	<li>니니, 천쿤 주연</li>
            <li>출시연도: 2018</li>
        </ul>
    </article>
</body>
</html>

index.html

대문 페이지라는 것이 약속되어 있음

<!DOCTYPE html>
<html>
<head>
	<meta charset='utf-8'/>
</head>

<body>
	<header>
		<h1>JavaScript</h1>
	</header>
		<nav>
			<ol>
				<li><a href="http://localhost/tianshengchangge.html">천성장가</a></li>
				<li><a href="http://localhost/paomozhixia.html">포말지하</a></li>
				<li><a href="http://localhost/aboutus.html">About us</a></li>
			</ol>
		</nav>
	
</body>
</html>

 

이 메뉴바는 항상 떠야하기 때문에 그래서 다음 링크 페이지에도 항상 추가해줘야함 (page_html)

 

page_html.html

<!DOCTYPE html>
<html>
<head>
	<meta charset='utf-8'/>
</head>

<body>
	<header>
		<h1><a href="http://localhost/index.html">JavaScript</a></h1>
	</header>
		<nav>
			<ol>
				<li><a href="http://localhost/tianshengchangge.html">천성장가</a></li>
				<li><a href="http://localhost/paomozhixia.html">포말지하</a></li>
				<li><a href="http://localhost/aboutus.html">About us</a></li>
			</ol>
		</nav>
	<article>
		<h2>천성장가</h2>
		주연
		<ul>
			<li>천쿤</li>
			<li>니니</li>
		</ul>
	</article>
	
</body>
</html>

*링크 연결하기: <a href="링크 주소">링크 이름</a> 해주면 링크랑 연결됨!

 

3. CSS

 

디자인 언어, HTML없이는 살 수 없다

 

<style> 태그 사용

- <style> </style> 사이에 CSS코드가 들어가는 것임

 

h1: 선택자(selector)

{} : 서술(description)

 

<!DOCTYPE html>
<html>
<head>
	<meta charset='utf-8'/>
  <style>
    h1, h2 {
      color:red; //;로 구분,  h1 이라는 태그를 가진 것의 색을 붉은 색으로 해라
      font-size:10px // 폰트 사이즈를 10픽셀로 해라
    }
    h2{ //h2만 단독으로 효과 주고 싶을 때
      text-decoration:underline;
    }
    header h1{ // 어디 부분의 뭐만 효과를 주고 싶을 때 
      border:1px solid red;
    }
  </style>
</head>
<body>
  <header>
    <h1>CSS</h1>
  </header>
  <h2>JavaScript</h2>
  <h3>HTML</h3>
  <h1>PHP</h1>
</body>
</html>

박스모델

  <style>
    li {
      border:1px red solid;
    }
  </style>

 

* 박스 요소:

border: 1px: 굵기 / red: 붉은 색 / solid: 실선 / dotted: 점선 >> 순서는 바뀌어도 상관없음

padding: 패딩 넣기(4면 모두)

margin: 위 아래 요소들이랑 간격이 떨어지게 됨 (4면 모두)

 

    <li id="selected">css</li>
    <li id="extra">javascript</li>
//이렇게 지정해두면 이 id를 가진 것에만 특정 스타일 적용 가능

  <style>
    #selected {
      border:1px red solid;
      padding:30px;
      margin:50px;
    }
    #extra{
      border: blue 1px solid;
  </style>

 

웹브라우저 (ex. 크롬)에서 오른쪽 클릭 > 요소 검사 하면 html 코드랑 해당 코드에 해당하는 곳 표시되도록 개발자도구를 킬 수 있음

-> 일일이 코드 고치고 F4할 필요 없이 구글 개발자 도구로 바꿔가면서 해볼 수 있음

 

float

웹페이지 레이아웃 디자인 시 중요한 속성

<!DOCTYPE html>
<html>
<head>
	<meta charset='utf-8'/>
  <style>
    img{
      border:1px solid red;
      float:left;
    }
  </style>
</head>
</body>
  <img src="https://imgnews.pstatic.net/image/108/2021/03/30/0002943434_001_20210330150932080.jpg?type=w647" />

</html>

 

- <img src="이미지 url" /> 로 이미지를 띄울 수 있고, 이미지의 스타일 설정위해 똑같이 style태그를 이용한다.

- float는 글자가 그림 옆으로 자동으로 올 수 있도록 해주는 것 (float: left/right) -> 이걸 안해주면 그림=한 줄로 설정되어서 못생기게 됨

 

실제 디자인 하기:

- border-bottom/right: 구분선 만들어주기

- width, height: 그 컨테이너(?)의 크기 지정

- list-style: 리스트의 숫자 등 없애주는 것

 

<!DOCTYPE html>
<html>
<head>
	<meta charset='utf-8'/>
	<style>
		header{
			border-bottom:1px solid gray;
			padding: 20px;
		}
		nav{
			border-right: 1px solid gray; //오른쪽에 칸막이
			width:200px;
			height:600px;
			float:left; // 나머지 컨텐츠 오른쪽에 쭉 올 수 있도록
		}
		nav ol{ // nav 아래 ol에 지정하는 스타일
			list-style: none; // 숫자 리스트 없앰
		}
		article{
			float:left; // 컨텐츠 오른쪽에 쭉 뜰 수 있게 해줌
			padding: 20px;
		}
	</style>
</head>
<body>
	<header>
		<h1><a href="http://localhost/index.html">드라마로 중국어배우기</a></h1>
	</header>
	<nav>
		<ol>
			<li><a href="http://localhost/tianshengchangge.html">천성장가</a></li>
			<li><a href="http://localhost/paomozhixia.html">포말지하</a></li>
			<li><a href="http://localhost/aboutus.html">About us</a></li>
		</ol>
	</nav>
	<article>
		<h2>천성장가</h2>
		<ul>
			<li>주연: 니니, 천쿤</li>
			<li>보는 곳: 넷플릭스</li>
		</ul>
	</article>

</body>
</html>

4. JavaScript & PHP

JavaScript, PHP 두 언어의 사용 예시:

- html과 css는 고정적이지만 javascript를 통해 디자인을 사용자 선택에 따라 바꿀 수 있음.

- php는 css+html에서 css만 추출해서 html이 css파일을 로드할 수 있도록 했듯이, 기본틀을 유지한 채 일부분의 수정을 용이하게 한다.

 

html위에 javascript와 php가 공존

 

 

HTML 태그

<?php /*지금부터 php코드의 시작이라고 php엔진에 알리는 역할*/ ?>

<script> 자바스크립트 코드 </script>

 

Javascript, PHP 차이

php는 서버에서 해석해서 처리하는 언어, 따라서 서버에서 이미 연산 후에 결과값들을 클라이언트에게 보내준다.

반면에 자바스크립트는 클라이언트 웹브라우저에서 해석 처리되는 언어이므로, 서버에서 코드 그대로 넘겨준다.

연산 차이

자바스크립트는 "문자열"+"문자열"로 문자열 붙여줄 수 있음

php는 "10"+"10"이라고 치면 자동으로 10을 숫자로 계산해서 20을 출력함. 문자열 합치려면 '.' 연산자 사용

 

디버깅

1) 자바스크립트

크롬에서 메뉴 > 도구 더보기 > 개발자 도구 > Console 하면 에러 내용이 뜬다.

 

 

보면 위에 빨간색 엑스표시에 에러 개수 나와있고, 아래 에러 내용과, 에러가 발생한 위치를 표시해주고 있다.

 

2) PHP

Bitnami > wamp~ > apache2 > logs > error.log 맨 아래쪽에 최근 발생한 에러를 출력한다.

 

마찬가지로, php error가 발생했으며, 문법 오류라고하고 예상되지 않은 토큰 <이 3.php 파일의 18번째 줄에서 발생했다고 나와있다.

 

변수의 사용

1) 자바스크립트:

name = "chagawo"

주의) 형 같은 것을 사용하지 않는 다는 것 주의!

2) PHP:

$name = "chagawo"

 

사용자가 제출한 값 읽기

1) 자바스크립트

입력받기:

pw = prompt("비밀번호");

 

 

2) PHP

PHP에서 로그인 앱 만들기

8-1.php에서 바디 안에 이러한 폼을 만들어줌. 그러면 password에 input이 들어감

<form action="8-2.php">
   <p>비밀번호를 입력해주세요.</p>
   <input type="text" name="password">
   <input type="submit">
   <!-- 8-2.php?password=입력값으로 연결됨 -->
</form>

 

8-2 코드에서 $_GET["name"]으로 받아서 사용 가능

<?php
  $password = $_GET["password"];
  if($password == "1111"){
    echo "you may enter";
  }else{
    echo "get off";
  }
?>

추가) php 나 javascript의 문자열에 html 태그 넣으면 작동하는 듯

 

배열

1)자바스크립트
list = new Array"(1, 2, 3);
list[0];
2) PHP
$list = array(1, 2, 3);
$list[0];

 

함수

자바스크립트, PHP
function myFunc(myInput){
// 함수 내용
}
myFunc(6);

//PHP의 경우 변수는 항상 $가 붙으니까 $myInput으로 치환하면 됨

 

 

'웹프로그래밍 > 기초' 카테고리의 다른 글

7. 라이브러리 (twitter bootstrap)  (0) 2021.06.16
5. 관계형 데이터베이스  (0) 2021.06.16
4. 데이터베이스  (0) 2021.06.16
3. PHP 실습  (0) 2021.06.16
1. 웹 기초, 개발도구  (0) 2021.06.16