[css] 단일 선택기로 모든 <H> 태그를 타겟팅 할 수 있습니까?
페이지에서 모든 h 태그를 타겟팅하고 싶습니다. 나는 당신이 이런 식으로 할 수 있다는 것을 알고 있습니다 …
h1,
h2,
h3,
h4,
h5,
h6 {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
그러나 고급 CSS 선택기를 사용하여보다 효율적인 방법이 있습니까? 예를 들면 다음과 같습니다.
[att^=h] {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
(그러나 분명히 작동하지 않습니다)
답변
아니요,이 경우 쉼표로 구분 된 목록이 필요합니다.
답변
기본 CSS는 아니지만 LESS ( http://lesscss.org )를 사용하는 경우 재귀를 사용 하여이 작업을 수행 할 수 있습니다.
.hClass (@index) when (@index > 0) {
h@{index} {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
.hClass(@index - 1);
}
.hClass(6);
Sass ( http://sass-lang.com )에서는이를 관리 할 수 있지만 재귀는 허용하지 않습니다. 그들은 @for
이러한 인스턴스에 대한 구문을 가지고 있습니다 :
@for $index from 1 through 6 {
h#{$index}{
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
}
LESS 또는 Sass와 같은 CSS로 컴파일되는 동적 언어를 사용하지 않는 경우 이러한 옵션 중 하나를 반드시 확인해야합니다. CSS 개발을 단순화하고 더 역동적으로 만들 수 있습니다.
답변
SASS를 사용하는 경우이 믹스 인을 사용할 수도 있습니다.
@mixin headings {
h1, h2, h3,
h4, h5, h6 {
@content;
}
}
다음과 같이 사용하십시오.
@include headings {
font: 32px/42px trajan-pro-1, trajan-pro-2;
}
편집 : 선택적으로 각 제목 요소에 자리 표시 자 선택기를 확장하여 가장 좋아하는 방법입니다.
h1, h2, h3,
h4, h5, h6 {
@extend %headings !optional;
}
그런 다음 단일 클래스를 타겟팅하는 것처럼 모든 제목을 타겟팅 할 수 있습니다 (예 :
.element > %headings {
color: red;
}
답변
SCSS + Compass는 전처리기에 대해 이야기하고 있기 때문에 간단합니다.
#{headings(1,5)} {
//definitions
}
답변
답변
모든 h 태그 (h1, h2 등)의 jQuery 선택기는 “: header”입니다. 예를 들어, jQuery를 사용하여 모든 h 태그를 빨간색으로 만들려면 다음을 사용하십시오.
$(':header').css("color","red")
답변
바닐라 CSS로 이것을 해결하려면 h1..h6
요소 의 조상에서 패턴을 찾으십시오 .
<section class="row">
<header>
<h1>AMD RX Series</h1>
<small>These come in different brands and types</small>
</header>
</header>
<div class="row">
<h3>Sapphire RX460 OC 2/4GB</h3>
<small>Available in 2GB and 4GB models</small>
</div>
패턴을 발견 할 수 있으면 원하는 것을 대상으로하는 선택기를 작성할 수 있습니다. 위의 예에서 모든 h1..h6
요소는 CSS3의 의사 클래스 :first-child
와 :not
의사 클래스를 결합하여 모든 최신 브라우저에서 사용할 수 있습니다.
.row :first-child:not(header) { /* ... */ }
앞으로 고급 의사 클래스 선택기 :has()
및 후속 형제 콤비 네이터 ( ~
)는 웹 표준이 시간이 지남에 따라 계속 발전함에 따라 더 많은 제어 기능을 제공 할 것입니다.