2024.01.09 25일차 수업: HTML, CSS 기초(1)
2024.01.10 26일차 수업: HTML, CSS 기초(2)
하이퍼텍스트는 웹 브라우저라 불리는 프로그램을 통해 웹 서버에서 "문서"나 웹 페이지 등의 정보 조각을 읽어들여 컴퓨터 모니터에 출력하는 형태로 보이게 된다. 그러고 나서 사용자는 각 페이지에 있는 하이퍼링크를 따라 다른 문서로 이동하거나 그 페이지를 서비스하고 있는 서버로 일련의 정보를 보낼 수도 있다. 하이퍼링크를 따라 이동하는 행위를 흔히 웹 서핑(web surfing) 또는 웹 브라우징(web browsing) 이라 한다. 그리고 관련된 내용들이 모여있는 웹 페이지들의 집합을 웹 사이트라 한다.
HTML은 하이퍼텍스트 마크업 언어(HyperText Markup Language)라는 의미의 웹 페이지를 위한 지배적인 마크업 언어다. HTML은 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것 뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다. 그리고 이미지와 객체를 내장하고 대화형 양식을 생성하는데 사용될 수 있다.
캐스캐이딩 스타일 시트(Cascading Style Sheets, CSS)는 마크업 언어가 실제 표시되는 방법을 기술하는 언어로, W3C의 표준이며, 레이아웃과 스타일을 정의할 때의 자유도가 높다. 마크업 언어가 웹사이트의 몸체를 담당한다면 CSS는 옷과 액세서리같은 꾸미는 역할을 담당한다고 할 수 있다. 즉, HTML 구조는 그대로 두고 CSS 파일만 변경해도 전혀 다른 웹사이트처럼 꾸밀 수 있다.
HTML 요소로서 HTML 문서에서 사용되는 태그를 의미한다. 이 태그는 문서의 제목을 의미하는 태그와, 문서의 시작과 끝을 알리는 태그, 서식 태그 등이 있다.
빈 html파일에서 ! + Enter 혹은 html:5 + Enter를 치면 기본적인 html 문법이 자동입력
문서를 표현하는 기본적인 태그들
리스트를 표현하는 태그들
< ul >과 < ol >은 하나 이상의 < li >태그를 가져야하며, 마찬가지고 < li > 태그 상위에 < ul > 혹은 < ol > 태그가 있어야함
웹 페이지에서 이미지를 출력해주는 태그입니다.
절대 경로 : 서버상의 주소
상대 경로 :
- 현재 문서 기준으로 연결한 소스, 삽입할 이미지, 동영상, 위치 설정
- 같은 위치: 파일명.확장자
현재위치=./- 상위 디렉토리 위치: ../파일명.확장자
- 하위 디렉토리 위치: 폴더명/파일명.확장자
표형식의 레이아웃을 만드는 태그 (예전에는 웹사이트의 전체적인 레이아웃을 만들었으나 현재는 사용 빈도 감소함)
웹페이지에서 오디오를 출력해주는 태그
웹페이지에서 동영상을 출력해주는 태그
텍스트 입력, 선택, 라디오 버튼, 체크 박스 등의 양식을 만들 수 있는 태그
의미없는 그룹을 만들 때 사용하는 태그
Inline 요소
e.g.) < span >, < a >, < strong >, < em > 등
✏︎ 콘텐츠의 흐름 안에 끼워져서, 콘텐츠의 일부분으로 간주
✏︎ 너비와 높이 속성이 설정되어도 효과가 없으며, 좌우 마진과 패딩은 적용되지 않음. 오직 콘텐츠의 크기만큼만 영향을 미친다!!!
✏︎ 인라인 요소는 한 줄에 여러 개를 나란히 배치 가능
Block 요소
e.g.) < div >, < p >, < h1 > ~ < h6 >, < ul >, < li > 등
✏︎ 전체 너비를 차지하며, 새로운 줄에서 시작
✏︎ 너비, 높이, 여백 등 다양한 스타일 속성이 적용
✏︎ 인라인 요소와 달리, 한 줄에 하나의 블록 요소만 배치
의미 있는 Semantic 태그
축약형(?)
$는 번호 매기고 싶을 때 씀
ul>li*3>a{문서}
<ul>
<li><a href="">문서</a></li>
<li><a href="">문서</a></li>
<li><a href="">문서</a></li>
</ul>
ul>li*3>a{문서$}
<ul>
<li><a href="">문서1</a></li>
<li><a href="">문서2</a></li>
<li><a href="">문서3</a></li>
</ul>
텍스트: {}, 속성: [], $: 오름차순 숫자
div[class="box$"]*4
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
스타일의 우선 순위
스타일은 선택자, 속성, 속성값으로 구성되며, 속성들은 ' ; '으로 닫은 후에 계속 붙여서 사용 가능
선택자는 특정 구성 요소를 선택하여, 해당 요소의 속성을 컨트롤하는 목적으로 사용됨
전체라는 의미의 * 를 사용하면 문서 전체 요소에 적용할 수 있음
아이디 클래스명: 영문소문자, 영문소문자+숫자 가능
축약속성
margin: border 바깥
padding: border 안쪽
*{margin: 0; padding: 0;} 하는 이유!!!
🚨 css 코드 처음 짤 때 위와 같은 코드를 넣는데 왜 margin과 padding을 0으로 설정해야할까?
브라우저의 기본 스타일에 의한 여백과 간격을 제거하거나 조절하기 위해 사용함.
사용자마다 쓰는 브라우저가 다르기 때문에 브라우저의 기본 스타일이나 사용자 에이전트의 스타일에 의해 추가적인 여백이나 패딩이 적용되지 않게 하는 것!! 이는 디자인의 일관성을 유지하고, 레이아웃을 미리 예측 가능하게 만드는 데 도움이 된다고 합니당~~
🚨 주의 !!
padding을 안쪽 여백이라고 말하긴 하지만 사실은 콘텐츠 < 패딩 < 보더 < 마진 순이다.
그렇기 때문에 스타일 지정 시 height와 width를 정해준다면 그건 "콘텐츠"에 대한 높이와 너비이기 때문에 패딩을 추가하면 바깥쪽으로 늘어나게 된다!!!