CSS에 대한 기본적인 작성방법, Selector와 패딩, 박스구조
기본 웹개발 관련 상식을 검증하고, 웹개발 입문자들을 위한 자료용 문서입니다. 추후 부트스트랩과 워드프레스, 자바스크립트 프레임워크 등으로 연결되는 문서가 될 예정입니다.
1화 : https://brunch.co.kr/@clay1987/156
2화 : https://brunch.co.kr/@clay1987/157
3화 : https://brunch.co.kr/@clay1987/158
4화 : https://brunch.co.kr/@clay1987/159
5화 : https://brunch.co.kr/@clay1987/160
6화 : https://brunch.co.kr/@clay1987/161
CSS 기초
기본적으로 HTML 문서는 디자인이아니라 정보를 표기하기 위한 규격이다. 그렇기 때문에 기본적인 정보를 배치하고 나서. 이 부분을 다시 '아름답게 꾸며주는' 작업이 필요해진다. 그렇기 때문에 CSS는 웹디자인을 진행하려는 사람들에게는 꼭 알아야할 규격이기도 하다.
MIXD 사이트의 사례
CSS는 눈에 보이는 거의 모든것들을 변형하고, 꾸미는데에 사용된다. 예를 들어. MIXD라는 한 사이트의 내용을 확인해보면 - 간결한 화면에 여러 요소들이 놓여있는 것을 볼 수 있다. 만약 여기에서 CSS와 꾸미는 이미지들을 모두 제거한다면 어떻게 될까?
아무리 화려한 사이트라 하더라도 CSS를 제거하면 정말 단순한 HTML 규격만 남는것을 볼 수 있다. 이처럼 아무리 복잡한 화면이라도 - 정보구조를 확인하면 매우 단순한 규격이 된다. 그렇기에 CSS라는것이 웹디자인에서 얼마나 중요한지 꼭 기억을 해두어야한다.
CSS 기초
CSS는 기본적으로 크게 네가지 용도로 사용된다.
1) 텍스트 : 개별 텍스트 / 폰트 꾸미기
2) 박스 : 배경, 개별 요소 범위, 테이블 꾸미기
3) 레이아웃 : 개별 요소들의 정렬방식 설정, 위치나 레이아웃 변경
4) 반응형 웹 적용 : 해상도별로 변경되는 레이아웃을 설정 가능
https://developer.mozilla.org/en-US/docs/Web/CSS
- 텍스트의 경우는 기본폰트를 다른 것들로 바꿔주거나, 색을 입히거나, 크기를 변경하는 용도로 쓰이고
- 박스의 경우는 전체 배경영역의 색상이나, 박스로 나눠진 UI 컴포넌트들의 스타일, 혹은 버튼이나 테이블의 스타일 등을 설정할 수 있다.
- 레이아웃과 반응형 웹은 말 그대로 수많은 시각요소들을 어떻게 배치할 것인지. 간격은 어떠한지. 화면해상도가 변했을 때는 어떤식으로 동작하는지 등을 다루게된다.
CSS 기초
https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Selectors
기본적으로 CSS는 '어디에' '어떤 장식을' 할 것인지를 말해주어야하고. 동시에 해당 상태값이 어느정도 되는지를 직접 입력해줘야한다. 그렇기에 '나는 OOO를 일단 선택할거야' 라고 말해주는 과정이 selector라는 개념이다.
마치 게임을 하듯이. 한개의 요소에만 CSS 속성을 줄 수도 있고, 여러 대상을 동시에 선택해서 CSS 속성을 줄 수도 있다. 사실 '어떤 속성을 줄지'는 일단 '선택을 한 이후에' 일어나는 과정이다. 그렇기에 일단 '어떻게 개별 요소를 선택해서' 내가원하는 속성을 부여할수있는지. 그 방법을 일단 알아보도록 하자.
CSS 기초
CSS는 사실 기본적인 선택방식만 알아도, 사용에 크게 문제가 없는 편이다. 그리고 이런 필요에의해서 만들어진 교육용 게임이 있다. 자주 쓰이는 CSS 요소 선택방식을 - 게임을 통해서 알아보고. 실제 실무에서도 사용할 수 있도록 연습해보자.
이 게임의 내용은 아주 간단하다. 상단에서 선택하라고 나와있는 요소들만을 골라서 선택해주기위해. 어떤 내용을 CSS로 작성해야하는지를 알아보면 된다. 초반에는 매우 간단한 내용들이 나오지만, 스테이지가 넘어갈수록 복잡한 과정이 나오게된다.
접시위에있는 큰 사과와, 바닥에 있는 큰 사과를 모두 선택하려면 어떻게해야할까?
접시 위에있는 오렌지들 중에, 가장 위에있는 녀석을 선택하려면?
이 게임이 의미가있는건, 개별 접시라거나. 오렌지라거나하는 명칭들이. 사실상 실제 HTML 구조의 폴더구조를 반영한 것이기 때문이다. A에 들어있는 B. 그리고 B와 함께있는 C. 그리고 다시 B와 C에 각각 들어있는 D - 같은 개별적인 요소들을. 시각화하고, 개별 요소들을 선택하는 방식을 알려주는 것이다.
만약 게임을 진행하다가 답을 모르겠다면 다음 영상을 참고해보자. 처음부터 영상을 보고 답을 베끼기보다는, 어떤걸, 왜 입력해야하는지 직접 해보기를 추천한다.
https://www.youtube.com/watch?v=UFPwu8HC8GY
CSS 기초
눈에 보이는것들만을 생각하면, 사실 이 내용을 이해하기 쉽지가 않은데. 웹디자인에서의 모든 HTML 요소들은 각자가 눈에보이는 범위 외에도 - 눈에 보이지않는 범위를 갖고있다. 그렇기 때문에 이 부분을 신경써서 만들어주어야한다. 특히나 신경써야하는 것이 패딩이라는 녀석인데. 우리가 보는 것 외에도- 다가오는 대상을 밀어내는 , 가상의 내부 보호막같은 영역을 갖고있다.
해당 부분은 다음 링크에서 직접 확인해보는것이 이해가 쉽다.
https://developer.mozilla.org/ko/docs/Web/CSS/padding
패딩은, 가상의 영역을 지정해놓고, 그 박스 안에서 일정 값만큼을 밀어내는 방식으로 만들어져있다. 그리고 이런 박스들을 여러개 쌓아올린것이 일반적인 웹디자인이다. 그렇기에 이런 박스들이 어떻게 쌓아올려져야하는지. 해상도가 변화하면 어떤 방향으로 쌓이게할지 등을 선택하는 것이 CSS의 레이아웃 영역이라고 할 수 있다.
위의 시안을 보면, 어떤 박스들은 서로 겹쳐있거나, 별도로 큰 박스 안에 - 작은 박스를 담고있기도하다. 이런 방식에도 각자 이유가 있는 것인데. 가장 작은 박스는 더 큰 박스안에 들어가있는 것이고. 이런 박스들은 결국 전체 화면에서 가장 큰 박스 안에 담겨있는. 방 속의 방을 가진 구조이다.
그렇기 때문에 어떤 박스들을. 왜 크게 만들고. 다시 작은 박스들을 큰 박스 안에 넣어야하는지. 그 이유만 정확히 알아도 - 레이아웃을 잡거나 디자인을 하기가 매우 쉬워진다. 만약 본인이 기초지식이 부족하거나, 좀더 자세한 단계별 내용을 알고싶다면. 생활코딩의 CSS 관련 수업을 꼭 들어보길 추천한다.
https://opentutorials.org/course/2418
CSS 기초
CSS는 굳이 하자면 HTML 내에서도 작성이 가능하지만, 일반적으로 외부에 파일을 따로 꺼내어 사용되는 경우가 많다. 왜냐하면 페이지 수정이나, 스타일링 수정시 - 문서가 복잡해지는경우가 발생하기 때문이다.
HTML 문서에서 작성을 잘 해둔 상태라면, CSS에서는 별 고민없이 - '난 여기에, 이 장식을 넣을거야'라고 하나하나 설정을 해주면 된다. 나중가서는 이런 스타일링도 '자주쓰이는 녀석들을 모아서 정리한다거나. 혹은 스타일링이 겹치지 않게, 넓은 범위로 적용하는 방식이 있지만. 일단은 필요한 부분에 하나하나 작성을 해서 넣어주는것을 연습해보자.
작성된 CSS는 @import 명령을 통해서 - 웹페이지가 열릴때 순차적으로 CSS를 적용해서 만들어진다. 이 파일을 불러오기위해서는 CSS파일을 작성하고, HTML 내부에서 파일명을 그대로 작성해주면 된다.
https://developer.mozilla.org/en-US/docs/Web/CSS/@import
만약 이것저것 복잡하게 생각하고싶지 않다면 - 실제 사이트에 쓰인 CSS를복사해 내 사이트에도 그대로 적용하는 방식도 있다.
물론 모든 옵션들을 그대로 동일하게 복사하는 경우, 자신의 상황에 맞지않을 수가 있으므로, 필요없는 요소는 과감하게 버리고. 수정해보아야한다.
이 내용은 UI 디자인 연구소 - 단톡방의 내부인원들을 위해 만들어진 자료입니다.
저희 단톡방은 잡담이 불가능한 방입니다. 단톡방에 들어오시려는 분은 - 이용안내문을 꼭 확인해주세요!
단톡방 이용안내
https://brunch.co.kr/@clay1987/113