>  기사  >  웹 프론트엔드  >  CSS 튜토리얼: CSS 선택기 그룹화에 대한 심층 분석

CSS 튜토리얼: CSS 선택기 그룹화에 대한 심층 분석

无忌哥哥
无忌哥哥원래의
2018-07-12 14:49:171352검색

이 글에서는 CSS 선택자 그룹화 관련 정보를 주로 소개합니다. 필요하신 분들은 참고하시면 됩니다

선택자 그룹화

h2 요소와 단락을 회색으로 하고 싶다고 가정해 보겠습니다. 이를 달성하기 위한 가장 쉬운 방법은 다음 선언을 사용하는 것입니다:

h2, p {color:gray;}h2, p {color:gray;}

将 h2 和 p 选择器放在规则左边,然后用逗号分隔,就定义了一个规则。其右边的样式(color:gray;)将应用到这两个选择器所引用的元素。逗号告诉浏览器,规则中包含两个不同的选择器。如果没有这个逗号,那么规则的含义将完全不同。参见后代选择器。

可以将任意多个选择器分组在一起,对此没有任何限制。

例如,如果您想把很多元素显示为灰色,可以使用类似如下的规则:

body, h2, p, table, th, td, pre, strong, em {color:gray;}

提示:通过分组,创作者可以将某些类型的样式“压缩”在一起,这样就可以得到更简洁的样式表。

以下的两组规则能得到同样的结果,不过可以很清楚地看出哪一个写起来更容易:

/* no grouping */
h1 {color:blue;}
h2 {color:blue;}
h3 {color:blue;}
h4 {color:blue;}
h5 {color:blue;}
h6 {color:blue;}
/* grouping */
h1, h2, h3, h4, h5, h6 {color:blue;}

分组提供了一些有意思的选择。例如,下例中的所有规则分组都是等价的,每个组只是展示了对选择器和声明分组的不同方法:

/* group 1 */
h1 {color:silver; background:white;}
h2 {color:silver; background:gray;}
h3 {color:white; background:gray;}
h4 {color:silver; background:white;}
b {color:gray; background:white;}
/* group 2 */
h1, h2, h4 {color:silver;}
h2, h3 {background:gray;}
h1, h4, b {background:white;}
h3 {color:white;}
b {color:gray;}
/* group 3 */
h1, h4 {color:silver; background:white;}
h2 {color:silver;}
h3 {color:white;}
h2, h3 {background:gray;}
b {color:gray; background:white;}

通配符选择器

CSS2 引入了一种新的简单选择器 - 通配选择器(universal selector),显示为一个星号(*)。该选择器可以与任何元素匹配,就像是一个通配符。

例如,下面的规则可以使文档中的每个元素都为红色:

* {color:red;}
<html>
<head>
<style type="text/css">
* {color:red;}
</style>
</head>
<body>
<h1>这是 heading 1</h1>
<h2>这是 heading 2</h2>
<h3>这是 heading 3</h3>
<h4>这是 heading 4</h4>
<p>这是一段<b>普通</b>的段落文本。</p>
</body>
</html>

这个声明等价于列出了文档中所有元素的一个分组选择器。利用通配选择器,只需敲一次键(仅一个星号)就能使文档中所有元素的 color 属性值指定为 red。

声明分组

我们既可以对选择器进行分组,也可以对声明分组。

假设您希望所有 h1 元素都有红色背景,并使用 28 像素高的 Verdana 字体显示为蓝色文本,可以写以下样式:

h1 {font: 28px Verdana;}
h1 {color: blue;}
h1 {background: red;}

但是上面这种做法的效率并不高。尤其是当我们为一个有多个样式的元素创建这样一个列表时会很麻烦。相反,我们可以将声明分组在一起:

h1 {font: 28px Verdana; color: white; background: black;}

h2 및 p 선택기를 규칙 왼쪽에 놓은 다음 분리합니다. 쉼표로 구분하면 규칙이 정의됩니다. 오른쪽 스타일(색상:회색;)은 이 두 선택기가 참조하는 요소에 적용됩니다. 쉼표는 규칙에 두 개의 서로 다른 선택기가 포함되어 있음을 브라우저에 알려줍니다. 이 쉼표가 없으면 규칙의 의미가 완전히 달라집니다. 자손 선택기를 참조하세요.

원하는 만큼 선택자를 그룹화할 수 있으며 이에 대한 제한은 없습니다.

예를 들어 많은 요소를 회색으로 표시하려는 경우 다음과 유사한 규칙을 사용할 수 있습니다:

body, h2, p, table, th, td, pre, Strong, em {color: grey;}<p></p>팁: 작성자는 그룹화를 통해 특정 유형의 스타일을 함께 "압착"하여 보다 간결한 스타일 시트를 만들 수 있습니다. <p></p>다음 두 가지 규칙 세트는 동일한 결과를 얻지만 어느 것이 더 작성하기 쉬운지는 분명합니다. <p><pre class="brush:css;">h1 { font: 28px Verdana; color: blue; background: red; }</pre></p>그룹화는 몇 가지 흥미로운 옵션을 제공합니다. 예를 들어, 다음 예의 모든 규칙 그룹화는 동일하며, 각 그룹은 선택기와 선언을 그룹화하는 다른 방법을 보여줍니다. <p><pre class="brush:css;">h1 { font: 28px Verdana; color: blue background: red; }</pre></p> <p>Wildcard Selector<strong></strong></p>CSS2에서는 별표로 표시된 새로운 단순 선택인 범용 선택기를 도입합니다. (*). 이 선택기는 와일드카드처럼 모든 요소와 일치할 수 있습니다. <p></p>예를 들어 다음 규칙은 문서의 모든 요소를 ​​빨간색으로 만들 수 있습니다. <p><pre class="brush:css;">h1, h2, h3, h4, h5, h6 { color:gray; background: white; padding: 10px; border: 1px solid black; font-family: Verdana; } &lt;html&gt; &lt;head&gt; &lt;style type=&quot;text/css&quot;&gt; h1, h2, h3, h4, h5, h6 { color:gray; background: white; padding: 10px; border: 1px solid black; font-family: Verdana; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;This is heading 1&lt;/h1&gt; &lt;h2&gt;This is heading 2&lt;/h2&gt; &lt;h3&gt;This is heading 3&lt;/h3&gt; &lt;h4&gt;This is heading 4&lt;/h4&gt; &lt;h5&gt;This is heading 5&lt;/h5&gt; &lt;h6&gt;This is heading 6&lt;/h6&gt; &lt;/body&gt; &lt;/html&gt;</pre></p>이 선언은 문서의 모든 요소를 ​​나열하는 그룹화 선택기와 동일합니다. 와일드카드 선택기를 사용하면 단일 키 입력(별표만)으로 문서의 모든 요소가 빨간색의 색상 속성 값을 가질 수 있습니다. <p><strong></strong>선언 그룹화</p> <p></p>선택기와 선언을 모두 그룹화할 수 있습니다. <p></p>모든 h1 요소가 빨간색 배경을 갖고 28픽셀 높이의 Verdana 글꼴을 사용하여 파란색 텍스트로 표시되기를 원한다고 가정하면 다음 스타일을 작성할 수 있습니다. <p><pre class="brush:css;">h1, h2, h3, h4, h5, h6 { color:gray; background: white; padding: 10px; border: 1px solid black; font-family: Verdana; }</pre></p>그러나 위의 접근 방식은 그리 효율적이지 않습니다. 이는 여러 스타일을 가진 요소에 대한 목록을 만들 때 특히 문제가 됩니다. 대신 선언을 함께 그룹화할 수 있습니다: <p><strong>h1 {font: 28px Verdana; color: white; background: black;}</strong></p>이것은 이전 3줄 스타일시트와 똑같은 효과를 갖습니다.

문을 그룹화할 때 각 문 끝에 세미콜론을 사용하는 것이 중요합니다. 브라우저는 스타일 시트의 공백을 무시합니다. 세미콜론만 추가하면 다음과 같은 형식으로 아무런 문제 없이 스타일을 만들 수 있습니다.

h1, h2, h3, h4, h5, h6 {
  color:gray;
  background: white;
  padding: 10px;
  border: 1px solid black;
  font-family: Verdana;
  }

어때요, 위의 작성 방식이 더 가독성이 좋나요?

그러나 두 번째 세미콜론이 생략되면 사용자 에이전트는 스타일 시트를 다음과 같이 해석합니다. rrreee

배경은 색상에 대한 적법한 값이 아니고 색상에 대해 하나의 키워드만 지정할 수 있으므로 사용자 에이전트는 이 색상 선언을 완전히 무시하십시오(배경: 검정색 부분 포함). 이렇게 하면 h1 제목이 빨간색 배경 없이 파란색으로만 표시되지만 파란색 h1이 전혀 표시되지 않을 가능성이 더 높습니다. 대신 헤더는 기본 색상(보통 검은색)으로 표시되며 배경색이 전혀 없습니다. 글꼴: 28px Verdana 선언은 세미콜론으로 올바르게 끝나기 때문에 여전히 작동합니다. 🎜🎜선택기 그룹화와 마찬가지로 선언 그룹화는 스타일시트를 단축하여 더 명확하고 유지 관리하기 쉽게 만드는 편리한 방법입니다. 🎜🎜팁: 규칙의 마지막 문 뒤에 세미콜론을 추가하는 것도 좋은 습관입니다. 규칙에 다른 선언을 추가할 때 다른 세미콜론을 삽입하는 것을 잊어버릴까 봐 걱정할 필요가 없습니다. 🎜🎜🎜선택자 그룹화와 선언 그룹화 결합🎜🎜🎜선택자 그룹화와 선언 그룹화를 하나의 규칙으로 결합할 수 있으며, 매우 적은 수의 문으로 비교적 복잡한 스타일을 정의할 수 있습니다. 🎜🎜다음 규칙은 모든 제목에 대해 복잡한 스타일을 지정합니다. 🎜rrreee🎜🎜선택기와 선언 그룹화 결합🎜🎜🎜선택기 그룹화와 선언 그룹화를 하나의 규칙으로 결합할 수 있으며 상대적으로 복잡한 스타일을 정의하는 문은 거의 사용할 수 없습니다. 🎜🎜다음 규칙은 모든 제목에 대한 복잡한 스타일을 지정합니다. 🎜rrreee🎜위 규칙은 모든 제목의 스타일을 흰색 배경의 회색 텍스트, 패딩 10픽셀, 1A 픽셀의 실선 테두리로 정의합니다. 텍스트 글꼴은 Verdana입니다. 🎜🎜🎜선택자 그룹화와 선언 그룹화 결합🎜🎜🎜선택자 그룹화와 선언 그룹화를 하나의 규칙으로 결합할 수 있으며, 매우 적은 수의 문으로 비교적 복잡한 스타일을 정의할 수 있습니다. 🎜🎜다음 규칙은 모든 제목에 대한 복잡한 스타일을 지정합니다: 🎜rrreee🎜🎜🎜🎜

위 내용은 CSS 튜토리얼: CSS 선택기 그룹화에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.