🎨 CSS 덮어쓰기, 어떤 것을 사용해야하나?
먼저 작성된 기존 CSS 파일을 덮어쓰는 방식에는
1. 기존 스타일보다 더 하단에 작성하기해당 방법은 2. css 우선순위를 이용하기css는 속성별 점수가 부여되어
점수가 부여되는 선언 방식은 위 표와 같다. !important
!important가 붙은 스타일은 당장 우선순위로 급하게 적용해야 할 때만 사용하고 가급적 사용하지 않는 것이 좋다. 점수가 너무 높아 최우선적으로 적용되는 속성이기 때문에 웬만하면 피하도록 하자. 인라인 스타일
!important 다음으로 높은 점수를 가졌다. html 요소 자체에 직접 style 속성을 부여하는 것인데 html이 지저분해질 뿐만 아니라
우선순위 또한 높아서 사용하지 않는 편이 좋다. #id
id 선택자를 사용하여 스타일을 주는 방법이다. id의 점수는 100점으로 class를 10개 사용한 것과 동일한 점수이다. .class 또는 pseudo클래스
class에 스타일을 넣는 방법이 가장 많이 사용되는 방법일 것이다. 역시 제일 무난한게 최고! 태그 선택자
css reset 파일에서 자주 볼 수 있다. 3. Specificity 점수 높이기우선 순위 점수를 이용한 스타일 덮어쓰는 방법이다.
위 방법들을 참고해서 CSS 파일을 덮어쓰면 된다.
▣ 서론CSS(Cascading Style Sheets)는 HTML, 자바스크립트와 함께 웹 개발의 핵심 기술 중 하나입니다. 웹 페이지 만드는 것을 건축에 비유하자면 HTML은 구조를 담당하고 자바스크립트는 작동 가능한 기기나 장치 등을 제어하며, CSS는 인테리어나 익스테리어 정도로 파악할 수 있습니다. 즉, CSS는 스타일링을 담당하여 사용자가 좀 더 편안하고 쾌적하게 웹 서비스를 경험할 수 있도록 환경을 제공하는 역할을 합니다. 향후 진행할 내용에서는 최대한 실습 내용을 중심으로 코드들을 설명할 예정이며,프레임 워크를 이용하지 않고 순수하게 CSS만을 이용한 스타일링에 초점을 맞추도록 하겠습니다.프레임워크에 대해서는 간단하게 설명하고 향후에 별도로 다루도록 하겠습니다. 기본적인 CSS에 대한 다양한 용어와 개념 정의는 모질라 개발자 네트워크를 참고하길 바라며, 이 외에도 자세한 설명이 필요한 부분은 참고 자료나 문서로 갈음하겠습니다. 그리고 대체 불가한 경우를 제외하고는 가급적 전문 용어를 지양하여 일반적인 어휘로 설명하도록 하겠습니다. 학습을 시작하기 전에 실습 환경 설치 및 설정과 기본적인 HTML에 대하여 먼저 살펴보길 바랍니다.
[자바스크립트] VS Code와 크롬 웹 브라우저를 이용한 JavaScript, HTML, CSS 코딩 준비 ▣ 시작하기 전에 향후 진행할 내용 중 문법 관련은 최소한의 설명만 덧붙일 예정이며 가급적 모질라 개발자 네트워크 문서를 참조할 것입니다. 그리고 프로젝트에서는 라이브러리(Library) 또는 charlie-lyc.tistory.com ▣ 코드의 구성이후에 설명할 실행 방법의 차이는 조금 있지만, 기본적으로 CSS의 코드 구성은 위와 동일합니다. 가장 왼쪽에는 '선택자(Selector)'가 위치하고, 선택된 대상에 대한 '선언(Declaration)'부분은 '{ }' 기호로 둘러싸여 있습니다. 그리고 그 안에는 속성의 이름과 값(Property/Value)을 작성하며, 이때 여러 개의 속성이 선언될 경우 서로 구분하기 위한 ' ; ' 기호가 포함됩니다. ▣ 실행 방법지금부터는 CSS 코드가 실행되는 방법 몇 가지에 대해 살펴보겠습니다. 태그 내, HTML 내부 또는 외부 등 실행 방식이 조금씩 다르지만 기본적으로 속성의 이름과 값을 선언하여 이용한다는 큰 틀에서 문법상 차이는 없습니다. 다만 프레임워크를 이용할 경우에는 제작사로부터 제공되는 링크와 클래스 이름들을 활용합니다. 기초적인 내용을 다룰 때는 HTML 내부 실행 방식을 주로 이용하고, CSS 코드의 양이 많아질수록 HTML 외부 실행 방식을 주로 이용합니다. □ 태그 내 실행(Inline CSS)
태그 내에서 'style' 속성을 이용하여 작성하는 방식으로 설정해야 할 속성의 종류가 많아질수록 태그의 길이가 길어져서 가독성이 떨어지므로 잘 사용되지는 않습니다. 하지만 이후에 설명하게 될 다른 실행 방법보다 실행 우선순위가 높습니다. 즉, 하나의 HTML 요소에 대하여 다른 방식으로 중복되어 스타일링 될 경우 가장 우선적으로 적용됩니다. □ HTML 내부 실행(Internal CSS)
위의 코드에서 볼수 있듯이 <head> 태그 내에 <style> 태그를 생성하여 그 안에서 작성하는 방식으로 태그 내 실행 방식보다 가독성이 높지만 코드가 길어질수록 HTML 문서가 필요 이상으로 길어질 수 있습니다. 실행 우선순위는 태그 내 실행 방식보다 낮으며, <head> 태그 내에서 <style> 태그의 위치에 따라 달라집니다. □ HTML 외부 실행(External CSS)
HTML 문서 외에 ' .css '확장자를 가지는 파일을 별도로 작성하는 방식으로, 실제 작업 환경에서 주로 활용하는 방식입니다. 위의 코드에서 볼 수 있듯이 <head> 태그 내에 <link> 태그를 생성하여 'rel' 속성의 값을 'stylesheet'으로 설정하고, 'href' 속성의 값은 ' .css '파일이 존재하는 경로를 설정합니다. 아래의 실행결과를 보면 'style.css' 파일을 css 폴더에 넣어 두었기 때문에 경로 값은 'css/style.css' 또는 './css/style.css' 입니다. 그리고 실행 우선순위는 태그 내 실행 방식보다 낮으며, <head> 태그 내에서 <link> 태그의 위치에 따라 달라집니다. ※ CSS 실행 우선순위앞서 설명한 대로 CSS의 실행 우선순위에 대한 결과를 아래와 같이 나타낼 수 있습니다. 위와 아래의 결과를 보면 동시에 세 가지의 다른 방식으로 <h2> 태그에 대하여 스타일링을 설정하고 있지만 태그 내 실행은 HTML 내부 또는 외부 실행과 관계없이 명확하게 해당 태그를 우선적으로 스타일링하고 있습니다.(빨간색) 반면에 HTML 내부 또는 외부 스타일링은 적용되는 <style> 또는 <link> 태그의 위치에 따라 녹색 또는 파란색으로 바뀌는데 이때 <head> 태그 내에서 아래쪽에 있을수록 최종적인 스타일로 적용됩니다. ▣ 프레임워크 이용 실행(Framework)본 내용에서 깊이 있게 다루지는 않지만, HTML 문서에서 링크 설정하는 방법과 간단한 예시를 들어 설명하도록 하겠습니다. □ 부트스트랩(Bootstrap)
부트스트랩 프레임워크를 사용하고자 할 때는 HTML 문서의 <head> 태그 내에 사이트에서 제공되는 'Bootstrap CSS' <link> 태그를, <body> 태그 내의 마지막 부분에 'Bootstrap Bundle with Popper' <script> 태그를 각각 추가하여 아래와 같이 부트스트랩에서 제공되는 기능을 활용할 수 있습니다. 예시로 표시된 디자인은 '카드(Card)'이며, 이미지는 임의로 경로를 추가하였습니다. 자세한 사항은 링크를 참조하기 바랍니다. □ 머티리얼라이즈(Materialize)
머티리얼라이즈 프레임워크는 부트스트랩과 달리 사이트에서 파일을 다운로드하여 HTML 문서와 동일한 경로의 위치에서 css 폴더에 'materialize.min.css' 파일을, js 폴더에는 'materialize.min.js' 파일을 둠으로써 제공되는 기능을 활용할 수 있습니다. 특히 '구글 아이콘 폰트(Google Icon Font)'가 링크로 제공되므로 이를 활용하여 스타일링을 할 수 있습니다. 예시로 표시된 디자인은 '카드(Card)'이며, 자세한 사항은 링크를 참조하기 바랍니다. |