말대꾸 연구 노트 (6)

1. CSS 선택기를 간소화하기 위해 상속을 사용하여

주요 기능의 마지막 반복이 선택기 상속을 줄일 때, 말대꾸를 사용합니다. 객체 얼굴 CSS의 개념을 바탕으로 선택 상속은 선택이 또 다른 옵션이 정의 된 모든 스타일을 상속받을 수 있다고한다. 구문은 @extend 다음 코드에 의해 달성된다

//通过选择器继承继承样式
.error {
  border: 1px red;
  background-color: #fdd;
}
.seriousError {
  @extend .error;
  border-width: 3px;
}

코드의 상단에서 어떤 위치에 .seriousError 정의에는 .error 모든 스타일의 스타일을 상속합니다. 클래스 = "seriousError"로 최종 디스플레이 효과 변성 HTML 요소들은 클래스 = "seriousError 오류"와 같다. 관련 요소는 다양한 3px의 국경이없는 것, 그리고 빛 빨간색 배경이있을 것 동안 이러한 스타일은 내부에는 .error에 정의되어 있기 때문에 국경은 빨간색으로,이 요소 것입니다.

.seriousError뿐만 아니라 상속 모든에는 .error 자신의 스타일에는 .error 상속 .seriousError 선택 양식, 다음 코드의 조합과 관련이있을 것으로 선택기 스타일의 조합 :

//.seriousError从.error继承样式
.error a{  //应用到.seriousError a
  color: red;
  font-weight: 100;
}
h1.error { //应用到hl.seriousError
  font-size: 1.2rem;
}

클래스 = "seriousError '에 하이퍼 링크에서, 전술 한 바와 같이, HTML 엘리먼트는 굵은 빨강해질 것이다.

2. 상속을 사용하여

당신이 반복되는 패턴을 많이 필요로 할 때 당신은 다시 할 필요가있다.

3. 고급 사용법 상속

CSS 규칙은 다른 규칙, 거의 모든 CSS 규칙을 상속 할 수 있습니다를 상속 할 수 있습니다. 대부분의 경우 클래스 상속을 사용할 수 있습니다,하지만 당신은 더 많은 일을 할 수있는 몇 가지 경우가 있습니다. 가장 일반적인 사용은 HTML 요소의 고급 스타일을 상속하는 것입니다. 기본 브라우저 스타일이 상속되지 않지만, 그들은 스타일 시트 스타일에 속하지 않는,하지만 당신은 상속됩니다 HTML 요소에 대한 모든 스타일을 추가하기 때문이다.

.disabled {
  color: gray;
  @extend a;
}

스타일 규칙이 복잡한 선택을 상속하는 경우, 그것은 단지 명중 요소가 적용된 스타일 복잡한 선택기를 상속합니다. 예를 들어, .seriousError 경우 extend.important.error @, 다음 .important.error 및 h1.important.error 스타일 .seriousError 상속되지만, .important에는 .error 스타일 또는에서 상속되지 않습니다. 이 경우 당신은 아마 각각 스타일에 따라 .important .seriousError 또는에는 .error을 상속 할 수 있도록 할 것입니다.

선택기 순서 (.seriousError #main) @extend 또 다른 선택 (에는 .error는) 만 완전히 #main 명중 .seriousError이 요소 선택기 이름을 상속 하나의 클래스로,에는 .error 스타일을 상속하는 경우 . .main 요소 이외의 요소 클래스 = "seriousError"영향을받지 않습니다했다.

이 순서 선택에는 .error #main처럼이 상속 될 수 없습니다. 정상적인 상황에서 스타일에는 .error이 미묘한 차이는 종종 혼란 스타일에는 .error에서 직접 상속과 일치합니다 #main에서 상속하기 때문입니다.

관련하여 4. 당신이 알아야 할 두 가지 주요 포인트가 @extend합니다.

        跟混合器相比,继承生成的css代码相对更少。因为继承仅仅是重复选择器,而不会重复属性,所以使用继承往往比混合器生成的css体积更小。如果你非常关心你站点的速度,请牢记这一点。
        继承遵从css层叠的规则。当两个不同的css规则应用到同一个html元素上时,并且这两个不同的css规则对同一属性的修饰存在不同的值,css层叠规则会决定应用哪个样式。相当直观:通常权重更高的选择器胜出,如果权重相同,定义在后边的规则胜出。

추천

출처www.cnblogs.com/heson/p/11265338.html