CSS

캐스케이딩 스타일시트(Cascading Stylesheet)

  • Cascading:폭포같은, 계속되는, 연속적인
  • Style: 멋을 내다.
  • Sheet:한 장을 세는 단위(종이나 문서)

연속적으로 스타일을 정의하는 문서

CSS는 스타일을 정의하는 문서형식이다.
태그와 태그가 중첩되어 연속적인 구조를 지닌 HTML문서에 스타일을 추가한다.

CSS의 역할은 HTML 문서에 스타일을 추가하는 것이다.

CSS의 문법

HTML 코드가 다수의"태그"로 구성되는 것처럼, CSS코드는 다수의 '스타일 선언문'으로 구성된다.

스타일 선언문의 형태

  • 선택자: 어떤 요소에 스타일을 적용할지에 대한 정보
  • {중괄호}:선택한 요소에 적용할 스타일을 정의하는 영역
  • 속성명: 어떤 스타일을 정의하고 싶은지에 대한 정보
  • 속성값: 어떻게 정의하고 싶은지에 대한 정보

CSS에게도 주석이 존재한다.

현재 우리가 사용하고 웹개발 표준으로 인정받고있는 CSS는 'CSS3'이다.

 

CSS문서

독립적으로 존재할 수는 있지만, HTML문서와 함께 사용하지않으면 단지 하나의 텍스트 문서에 불과할 뿐이다.
즉, 혼자서는 할 수 있는 일이 없다.
문서에 정의된 스타일이 웹브라우저 화면을 통해 보여지도록 하기위해서는 반드시 HTML문서 작성이 먼저 이루어져야한다.

HTML에 CSS를 더하려면

    • 인라인 스타일:태그에 직접 기술하기
      태그에 style속성을 추가하여 요소에 직접적으로 스타일을 정의하는 방식
      제일 간단한 방법이고 선택자는 필요가 없으나 웹컨텐츠와 스타일시트를 분리하기위해서는 사용하지않는 편이 좋다.

 

    • 스타일 태그 :스타일 시트를 위한 태그를 추가하여 기술하기
      HTML문서에 태그를 추가하여 그 안에 CSS코드를 작성할 수 있다. '내부 스타일시트'라고 표현하기도 한다.

 

  • 문서간의 연결: 스타일 시트 문서를 따로 작성하여 HTML문서와 연결하기
    확장자가 *.css인 스타일 시트 파일을 생성해 그 안에 CSS코드를 작성하고,HTML문서에 이를 연결하는 방식.
    이때는 <link>태그를 사용한다.
    • href:연결하고자 하는 외부 소스의 url을 기술하는 속성
    • rel(관계):현재 문서(HTML)와 외부 소스의 연관 관계를 기술하는 속성
    -<link>태그는 HTML문서의 <head></head>내부에서 사용해야함.

인라인 스타일은 우선적으로 적용이 된다.
인라인스타일이 아닌 경우 나중에 쓰여진 스타일 선언문이 적용된다.

선택자 유형

스타일 선언문의 선택자를 어떻게 입력하는가에 따라 스타일이 적용될 요소가 결정된다.
이때 요소는 단 하나만 선택할 수도 있고 여러 개를 동시에 선택할 수도 있다.
CSS는 아래와 같이 여러가지 유형의 선택자를 지원한다.

  • 전체 선택자:문서 내 모든 요소를 선택 - 사용기호: *
  • 태그 선택자:특정 태그로 만들어진 모든 요소를 선택 - 사용기호: 태그명
  • 클래스 선택자:특정 클래스 값이 지정된 모든 요소를 선택 - 사용기호: .클래스값
  • 아이디 선택자:특정 아이디 값이 지정된 요소를 선택 - 사용기호: #아이디값
  • 그룹선택자:여러 유형의 선택자를 한꺼번에 선택 - 사용기호: 선택자,선택자,선택자...
  • 등등..

박스모델(box model)

브라우저 화면은 가로와 세로를 축으로 하는 2차원공간이다.
따라서 브라우저를 통해 렌더링 되는 웹 요소들 또한 그 안에서 개별적으로 너비와 높이를 가진다.

너비와 높이를 가지는 개별 요소를 가리켜 '박스'라 표현하고, 박스를 네가지 세부 영역으로 나누어 구분한 일종의 디자인 모델이다.

CSS로 스타일을 정의할 수 있는 모든 요소에는 박스 모델 관련 속성 중 일부 또는 전부를 적용할 수 있으며
CSS는 영역별로 크기를 따로 설정할 수 있도록 다양한 속성들을 제공한다.

박스모델의 세부영역들

  • 콘텐츠영역: 요소내에 포함된 콘텐츠를 표시하는 영역-width,height
  • 안쪽여백: 테두리 안에서 콘텐츠 주변을 감싸는 여백-padding
  • 경계선(테두리): 콘텐츠와 안쪽 여백을 둘러싸는 테두리-border
  • 바깥쪽 여백:테두리 바깥에서 요소를 감싸는 여백-margin

테두리 스타일

테두리는 화면 상에서 요소가 차지하고 있는 공간을 뚜렷하게 표시해 다른 요소와 쉽게 구분할 수 있게 도와주는 유용한 영역이다.
테두리 스타일을 정의할 때에는 단축속성인 border를 사용하서나 border의 하위속성을 개별적으로 사용하는 방법을 사용한다.

  • border-width : 테두리의 두께를 지정
  • border-style : 점선,실선,겹선 등으로 테두리 모양을 지정
  • border-color : 테두리의 색상을 지정
  • border : 테두리의 두께, 모양, 색상등을 한번에 지정
  • border-radius : 테두리 모서리의 곡률을 지정(그림에서 '반경'에 해당하는 길이를 정해주면 그만큼 둥글어진다.)
    네개의 모서리에 서로 다른 값을 지정할 수도 있다.

여백 다루기

여백의 안쪽, 바깥쪽 여부는 테두리를 기준으로 정해진다.
박스 모델의 여백에는 네 개의 면이 존재하는데, 속성값의 사용갯수에 따라 네면의 여백 크기를 달리 정할 수 있다,

  1. 여백의 모든 면에 동일한 값을 지정 - (예)margin:10px
  2. 위아래 여백과 왼쪽 오른쪽 여백의 값을 따로 지정 - (예)margin:10px 20px
  3. 윗쪽 여백, 왼쪽 오른쪽 여백, 아래쪽 여백 순서로 값을 지정- (예)margin:10px 20px 15px
  4. 위,오른쪽,아래,왼쪽 순서대로 각각 따로 지정 - (예)margin:10px 20px 30px 15px

width나 height를 사용하면 컨텐츠 영역의 크기를 결정할 수 있다.
여기에 padding 속성을 추가 정의 하면 여백이 생기면서 요소가 기존보다 더 커지게 되는데, 원치 않을경우에는 box-sizing이라는 속성을 사용할 수 있다.

form(양식)이란?

사용자로부터 입력받은 정보를 모아서 서버로 보내 원하는 처리를 할 수 있게해주는 중요한 요소
입력양식을 만들어주는 폼 태그는 사용자가 입력한 데이터를 서버로 보내는것을 목적으로 하는 태그,
따라서 서버에 대한 이해가 반드시 필요하다.
    입력양식이 사용된 페이지의 예
  • 로그인 페이지
  • 회원가입페이지
  • 검색어입력페이지

서버

예를 들어로그인을 하려면 아이디와 비밀번호라는 정보요소가 필요하다.
요소를 입력을 하면 인터넷을 통하여 서버에 전달되고 정보를 제공해준다.
서버란 입력한 정보를 받아서 처리해줄 수 있는 프로그램, 그 프로그램이 설치되어있는 컴퓨터까지를 서버라고한다.
간단히 말해서 서버란 정보를 처리하고 제공하는 호스트

form

입력요소들을 감싸고, 입력 값을 서버측으로 제출(submit)하는 역할을 하는 태그
안에 다양한 입력태그들을 포함시키면 해당 입력요소들은 양식의 개별 항목으로써 역할을 수행한다.

단순히 폼 요소안에 입력요소를 포함한 것만으로는 서버에 입력 값을 전송할 수 없다.
역할을 수행하기 위해서는 아래의 속성을 사용해야한다.

  • action:입력값을 전송할 서버의 주소(url)
  • method:클라이언트(사용자)가 입력한 데이터를 어떤 방식으로 전송할지(GET or POST)

method

GET과 POST 둘중에서 어떤 방식으로 서버에 요청을 보낼지 고르는 것
  • GET:서버에 요청을 보내서 응답을 받아낸다.
    서버로부터 정보를 '가져온다'라는 성격의 요청
  • POST:서버에 요청을 보내어 작업을 수행한다.
    서버에 있는 데이터를 추가,수정,삭제한 후에 응답을 받아낸다.
    서버의 정보를 '조작한다'라는 성격의 요청

이름을 반드시 지어줘야함

폼요소안에 필요한 만큼 입력요소를 포함하여 다양한 형태의 양식을 만들 수 있다.
폼요소안에 포함되어있는 각 입력요소에는 이름(name)속성을 추가해 각각 입력 항목의 역할을 구별해줄 수 있다.
name은 들어있는 입력요소의 역할을 구별해주는 식별자

화면상 입력요소의 모양은 바뀌는 게 없으나 추후 실제로 서버에 데이터를 전송하는 작업을 하였을때에 상당히 중요하다.
서버가 정보를 받으면 name속성으로 항목을 구별하기 때문


시맨틱(의미론적인) 코드

다른점개발자와 브라우저에게 의미를 제공한다.
컨테이너코드와 역할이 거의 같지만 태그의 이름이 요소의 목적이나 역할을 강조하는 의미로 지어져있다라는 차이점이있다.
검색엔진에 좋은 단서가된다.

시멘틱태그의 장점

대부분은 컨테이너 태그(span/div)와 같이 특별한 스타일을 제공하지 않지만 아래와 같은 이점이 있다.
  • 검색 엔진은 시멘틱 태그를 웹페이지를 검색하는데에 있어서 중요한 단서로 본다
  • 적극적으로 사용하게되면 시각장애가있는 사용자가 화면판독기,음성인식기로 페이지를 탐색할때 참조가된다.
  • 중요한 내용을 조금더 강조하는 효과가 있다. 웹 접근성을 향상 시킬 수 있다
  • 코드의 가독성이 좋아진다.
    이름으로 역할을 강조하기때문에 코드를 볼때 조금더 빠르게 코드를 캐치할 수 있다.
  • 컨테이너의 남용을 방지할 수 있어 코드쓰기가 편하다.
    • 컨테이너의 남용? 웹컨텐츠를 많이 페이지에 채우게되면 스타일이나 div가 많아짐
      많아지게되면 코드를 작성하기에도 불편해짐

시멘틱코드의 종류

  • <articcle>-독립적인 컨텐츠
  • <aside>-별도의 컨텐츠
  • <details>-추가적인 상세정보
  • <figcaption>-figure의 자막
  • <figure>-설명이 붙는 독립컨텐츠
  • <footer>-맺음말
  • <header>-머릿말
  • <main>-주된 (메인) 컨텐츠
  • <nav>-네비게이션링크
  • <section>-컨텐츠의 한 섹션(절)
  • <summary>-detail의 헤더
  • <time>-강조할 시간
  • meta

    HTML문서에 대한 메타데이터를 정의한다.

    메타데이터란 데이터에 대한 데이터, '정보'를 의미한다. meta태그는 항상 head 태그의 안에 들어가며, 문자세트, 페이지설명,키워드,문서의 작성자 및 뷰포트 설정을 지정하는데 사용된다.
    없어도 페이지는 잘만들어지지만 웹페이지에 대한 정보를 제공하므로 검색엔진이 페이지를 검색할 때 참고할 수 있고, 검색결과에도 반영할 수 있다.
    실무에 들어가게되면 페이지를 만드는 것뿐만 아닌 실제로 사용자들이 사용을 하는 웹을 만들어야하니 반드시 필요한 사항이다.

    메타데이터의 유형과 속성

    • charset:문자세트
      문자인코딩에 대한 요약정보를 기입하는 속성
      문자인코딩이란 한글을 표시하기위해 문자세트를 지정하는 작업으로 영문과 한글을 모두 사용하기위해 utf-8방식을 사용하는 것이 좋다.

      인코딩을 명확히 기입하지않으면 웹븡라우저 설정상황에 따라 자동으로 인코딩을 추정해서 처리한다.
      문자가 깨질 가능성이 생긴다.

    • http-equiv:컨텐츠 속성정보에 대한 http 헤더
      HTTP란 인터넷에서 데이터를 주고받을 수 있는 프로토콜(약속)이다.
      정보를 송수신할때 사용하는 기술적인 방법.
      해당속성에 http관련정보를 지정하면,'content'라는 속성에 그에 대한 정보(값)을 지정한다.
      지정되어있는 값이 해당정보의 역할을 수행하게 된다.

    • name: 문서정보
      form 에서는 입력요소간의 구분을 위해 사용이 된다.
      meta에서는 속성을 이름으로 content속성을 값으로 하여 문서정보를 이름+값 쌍의 형태로 제공할 때 사용할 수 있다.
      검색최적화에 도움이 되는 작업이다.

    • content:메타데이터 내용

'코딩배움일지 > HTML&CSS' 카테고리의 다른 글

3일차(CSS)-24.11.18  (0) 2024.11.18
3일차(시맨틱 마크업?시맨틱 코드?)-24.11.18  (1) 2024.11.18
2일차(HTML-표시)-24.11.15  (0) 2024.11.18
1일차(HTML-구성)-24.11.14  (0) 2024.11.18
1일차(HTML란?)-24.11.14  (1) 2024.11.16

HTML의 정의

하이퍼텍스트 마크업 랭귀지 (HyperText Markup Language>

  • HyperText:하이퍼링트를 통하여 문서에서 다른 문서로 접근할 수 있는 텍스트
  • Markup:(컨텐츠)표시하다
  • Language:언어

하이퍼링크를 통해 다른 문서로 접근할 수 있는 텍스트와 컨텐츠들을 표시하는 언어
쉽게 말해, 웹브라우저를 통해 표시되는 콘텐츠를 정의하기 위해 사용하는 언어

HTML5

HTML은 1991년에 웹의 창시자인 '팀 버너스리'에 의해 최초로 제안되었다.
만들어진 순간부터 지금까지 계속해서 기능을 개선하거나 추가해가면서 발전을 해왔다.
그 과정에서 새로운 버전이 계속 발표(버전 up)되었는데,
현시점에는 HTML5가 웹 개발 표준으로 인정받고 있다.

HTML과 HTML5의 차이

간단하게 말해서 버전의 차이이다.
현재 우리가 배우는 HTML은 제일 최근 버전인 HTML5라고 생각하면 된다.

HTML5가 2014년 10월에 발표되었는데 그러면서 많은 요소가 제거되거나 수정되었다.

  • 정의

    HTML-웹페이지 개발을 위한 기본언어

    HTML5-컨텐프를 구조화 하고 표현하기 위해 인터넷 기술과 상호작용하기위한 핵심기술인 '마크업 언어'와 함께 새로운 기능을 가진 새로운 버전
  • 멀티미디어

    HTML-비디오 및 오디오를 지원하지않음.

    HTML5-비디오 및 오디오를 지원함
    (예전에는 비디오,오디오를 지원할 필요성이 적었으나,
    현재는 영상,음성과 같은 시각적,청각적요소의 필요성이 늘어나서 그런게 아닐까?)
  • 위치식별

    HTML-사이트를 방문하는 사용자의 위치를 추적하는 기능이 있지만 프로세스가 번거롭고 모바일에서 로그인할 경우 찾기가 어려움

    HTML5- JavaScript Ceolocation API를 사용하여 엑세스를 하는 모든 사용자의 위치를 식별하는데에 사용가능.
  • 통신

    HTML-클라이언트와 서버간의 통신은 소켓지원이 없기 때문에 스트리민 및 긴 풀링을 통해 수행되었음.

    HTML5-클라이언트와 서버간의 통신을 허용하는 웹소켓을 지원.
  • 브라우저 호환성

    HTML-어도비플래시,실버라이트 등과 같은 다른 도구를 사용하여 벡터그래픽을 지원할 수 있음.

    HTML5-캔버스와 SVG가 기본적으로 내장되어있어 벡터그래픽이 기본적으로 지원됨.
  • 저장

    HTML-브라우저 캐시메모리를 임시 저장소로 사용.

    HTML5-응용프로그램 캐시,SQL 데이터베이스 및 웹 저장소와 같은 여러 저장소 옵션이 있음.
    저장을 위해 사용하능한 JS API의 도움으로 백그라운드에서 JavaScript를 사용할 수 있음
  • 스레딩

    HTML-사용자가 상호작용하는 브라우저 인터페이스와 자바스크립트는 동일한 스레드에서 실행되므로 성능 문제가 발생

    HTML5-자바스크립트 밀 웹브라우저 API가 있어서 다른 슬레드에서 자바스크립트 및 브라우저 인터페이스를 실행할 수 있음
  • 오류처리

    HTML-부정확한 구문 및 기타 오류를 처리할 수 없음

    HTML5-부정확한 구문 및 기타 오류를 처리할 수 있음.
  • 등등의 다른 점이 있다.

+ Recent posts