복잡하고 확장할 수 없는 CSS 작성을 중지하는 방법
CSS 파일은 곧 제어되지 않습니다.
꼭 이럴 필요는 없어요.
보다 모듈적이고 유연한 코드를 작성할 수 있도록 운영 가능한 CSS 기술을 자세히 살펴보겠습니다.
기술 1: CSS에서 상속 활용
설령 네가 이전에 그 성명을 사용한 적이 있다는 것을 안다 하더라도, CSS에서 자신이 성명을 반복하는 것을 발견했니?
CSS의 상속을 이해하는 데 도움이 될 수 있습니다.
Inheritance in CSS은 이 양식들이 하류와 양식의 후손 요소에 침투할 수 있도록 높은 단계에서 양식을 정의할 수 있도록 합니다.
간단한 엔트리급 CSS 기술입니다.
그러나 사람들이 상속의 본질에 대해 잘 이해하지만 상속 규칙은 충분히 이용되지 않는다고 생각한다.
만약 적절하게 사용된다면, 장기적으로 보면, 그것은 당신을 위해 수백 줄의 코드를 절약할 수 있습니다.
대부분의 웹 사이트에서는 최상위 수준에서 모든 HTML 요소가 일관된 스타일을 갖습니다.
html {
background-color: #fafafa;
color: #424242;
font-family: 'Helvetica';
font-size: 100%;
font-weight: 300;
line-height: 1.5;
box-sizing: border-box;
}
상속하는 것을 잊지 마라
위의 그림에서 보듯이 뿌리에 스타일을 추가하는 것은 좋은 시작이다.
그러나 일부 HTML 요소(예:
<input>
또는 <textarea>
)는 기본적으로 정의된 스타일을 상속하지 않습니다.이것은 루트 디렉터리에
font-family: Helvetica
을 설정하면 위의 그림과 같이 <input>
의 글꼴은 이 스타일을 계승하지 않고 브라우저의 기본 글꼴 계열을 사용합니다.기본적으로 상속되지 않는 속성의 요소에 다음 설명을 추가하여 무시할 수 있습니다:
font-family: inherit
.모든 요소가 루트 요소에 정의된 스타일을 계승하는지 확인하는 일반적인 방법은 일반 선택기
* {}
을 사용하고 inherit
값을 특정 속성에 적용하는 것입니다.* {
font-family: inherit;
line-height: inherit;
color: inherit;
box-sizing: inherit;
}
중요 주의사항: font-size
과 font-style
같은 속성은 위의 유니버설 선택기 세션에 포함되지 않습니다. 이syle을 사용하면 사용자 프록시 스타일을 덮어쓰기 때문입니다.예를 들어 일반 선택기에
font-size: 20px
스타일을 설정하면 사용자 에이전트 font-size
의 모든 제목 표시(h1, h2, h3...)를 덮어씁니다.다음은 상속 규칙을 활용하여 CSS 행을 저장하는 데 사용되는 일반적인 선언의 예입니다.
html {
background-color: #fafafa;
color: #424242;
font-family: Georgia, serif;
font-size: 100%;
font-weight: 300;
line-height: 1.5;
}
* {
font-family: inherit;
line-height: inherit;
color: inherit;
}
이제 조형 요소에 대해 깊이 있게 토론해 봅시다.기교2: 원소의 힘
루트의 스타일을 설정하는 것보다 요소 선택기에 스타일을 직접 추가하는 것이 CSS 파일을 간소화하고 효율적으로 유지하는 좋은 방법입니다.
예를 들어 블로그와 같은 내용이 밀집된 사이트의 경우 레이아웃 선택기를 다음 스타일로 설정할 수 있습니다.
p {
/* paragraph styles are not required
as they are inherited from the root */
}
h1, h2, h3, h4, h5, h6 {
font-family: Helvetica, sans-serif;
font-weight: 700;
line-height: 1.3;
}
h1 {
font-size: 2rem;
max-width: 32rem;
}
h2 {
font-size: 1.75rem;
max-width: 24rem;
}
h3 {
font-size: 1.5rem;
max-width: 20rem;
}
h4 {
font-size: 1.25rem;
max-width: 16rem;
}
이것은 두 가지 장점이 있다.기술 3: CSS 방법 사용
CSS 상속 규칙과 스타일 요소 선택기를 사용하면 이것만 할 수 있습니다.
당신의 사이트에서 종류를 사용하여 각종 구성 요소와 레이아웃을 설계하는 것은 피할 수 없는 것이다.
따라서 우리는 CSS의 효율성과 조직성을 유지하기 위해 모듈화되고 유연한 방식으로 CSS를 작성하는 시스템을 필요로 한다.
이것이 바로 CSS methodology의 출처다.
CSS 방법은 일치하는 명명 약정 그룹입니다. 개발팀은 이 약정을 따라 일치하고 재사용할 수 있으며 시간에 따라 확장된 CSS를 작성할 수 있도록 합니다.
일부 가장 유행하는 방법은 BEM, SMACSS, OOCSS과 Atomic CSS을 포함한다.
이런 방법 중에서 경계원법은 극점 위치를 as noted from the State of CSS 2019방법 중 가장 많은 방법으로 채택한 것 같다.
그러면 우리는 국경원법에 전념합시다. 그것이 무엇인지, 그리고 어떻게 프로젝트에서 그것을 실시하기 시작했는지.
경계원법은 블록 원소 수정기를 대표하는데 이것은 세 개의 핵심 기둥이다.
어셈블리를 생성할 때 각 버팀목에는 다른 명명 규칙이 있습니다.
.card
)[Block]__[Element]
(예를 들어 .card__title
)[Block]--[Modifier]
(예를 들어 .card--dark
) 이 예에서
.card
은 블록이다..card
블록의 하위 요소가 명명 약정 [Block]__[Element]
을 사용하는 것을 볼 수 있습니다.예를 들어 카드 이미지에 사용되는 클래스는
.card__image
입니다.이제 Modifier의 예제를 살펴보겠습니다.
수정기(
[Block]--[Modifier]
)가 명명약정 .card--dark
을 사용한 것을 볼 수 있습니다.여기서 주의해야 할 것은 수정기를 사용할 때 블록이 아닌 블록과 함께 사용할 수 있다는 것이다.
위의 코드 펜에서 볼 수 있듯이 수정기 클래스
.card--dark
은 블록 클래스 .card
을 대체하지 않습니다.더 많은 코드 예시와 경계원법을 깊이 연구하는 정보에 관해서, 나는 Sparkbox's의 문장을 볼 것을 건의합니다.
총결산
CSS 스타일시트를 만든 지 오래되었을지도 모르지만, 고개를 돌릴 때, 종종 "빌어먹을, 내 CSS는 정말 엉망이야!"라고 말한다.
만약 실현된다면 본고에서 소개한 기술은 이러한 느낌을 없애는 데 도움이 될 것입니다. 당신은 모듈화되고 확장 가능한 CSS 대가가 될 것입니다.
요약하면 오늘 사용할 수 있는 3가지 CSS 기술은 다음과 같습니다.
Reference
이 문제에 관하여(복잡하고 확장할 수 없는 CSS 작성을 중지하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bytomray/how-to-stop-writing-messy-unscalable-css-2ngj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)