동일한 요소에 대해 여러 개의 : before 의사 요소를 가질 수 있습니까?
:before
동일한 요소에 대해 여러 의사 를 가질 수 있습니까?
.circle:before {
content: "\25CF";
font-size: 19px;
}
.now:before{
content: "Now";
font-size: 19px;
color: black;
}
jQuery를 사용하여 위의 스타일을 동일한 요소에 적용하려고하는데 가장 최근의 스타일 만 적용되고 둘 다 적용되지는 않습니다.
CSS2.1에서 요소는 항상 모든 종류의 의사 요소 중 하나만 가질 수 있습니다. (이것은 요소가 a :before
와 :after
가상 요소를 모두 가질 수 있음을 의미합니다 . 각 종류를 둘 이상 가질 수 없습니다.)
결과적으로 :before
동일한 요소와 일치하는 여러 규칙 :before
이있는 경우 일반 요소와 마찬가지로 모두 계단식으로 연결되고 단일 의사 요소에 적용됩니다 . 귀하의 예에서 최종 결과는 다음과 같습니다.
.circle.now:before {
content: "Now";
font-size: 19px;
color: black;
}
보시다시피 content
우선 순위가 가장 높은 선언 (말한대로 마지막에 오는 선언) 만 적용됩니다. 나머지 선언은 다른 CSS 속성의 경우처럼 삭제됩니다.
이 동작은 CSS2.1 의 선택자 섹션에 설명되어 있습니다 .
이것은 유사 요소가있는 선택기가 일반 요소의 선택기와 같이 작동 함을 의미합니다. 또한 캐스케이드가 동일한 방식으로 작동해야 함을 의미합니다. 이상하게도 CSS2.1이 유일한 참조 인 것 같습니다. 둘 CSS3 선택자 도 CSS3-폭포는 전혀 이것을 언급하지, 그리고 그것이 미래의 사양에 명확하게 될 것인지두고 볼 일이다.
요소가 동일한 유사 요소를 가진 둘 이상의 선택기와 일치 할 수 있고 모든 선택기를 어떻게 든 적용하려면 조합 된 선택기를 사용하여 추가 CSS 규칙을 만들어야 브라우저에서 수행해야하는 작업을 정확하게 지정할 수 있습니다. 케이스. 예를 들어 content
기호 또는 텍스트가 먼저 와야하는지 여부가 명확하지 않기 때문에 여기에 속성을 포함하여 완전한 예를 제공 할 수 없습니다 . 그러나이 결합 된 규칙에 필요한 선택기는 .circle.now:before
또는입니다. .now.circle:before
두 선택자가 동일하므로 사용자가 선택하는 선택자가 개인 선호 사항이며, content
사용자가 직접 정의해야하는 속성 의 값일뿐 입니다.
여전히 구체적인 예가 필요하면 이 유사한 질문에 대한 내 대답을 참조하십시오 .
레거시 css3-content 사양에는::before
::after
CSS2.1 캐스케이드와 호환되는 표기법을 사용하여 다중 및 의사 요소 삽입에 대한 섹션이 포함되어 있지만 특정 문서는 더 이상 사용되지 않습니다. 2003 년 이후로 업데이트되지 않았으며 아무도 지난 10 년 동안이 기능을 구현했습니다. 좋은 소식은 버려진 문서가 css-content-3 및 css-pseudo-4 의 모습으로 활발하게 재 작성되고 있다는 것입니다 . 나쁜 소식은 다중 의사 요소 기능이 어느 사양에서도 찾을 수 없다는 것입니다. 아마도 구현 자의 관심이 부족하기 때문일 것입니다.
기본 요소에 하위 요소 또는 텍스트가있는 경우이를 사용할 수 있습니다.
주 요소를 상대적 (또는 절대 / 고정)으로 배치하고 : before 및 : after 절대 위치를 모두 사용합니다 (내 상황에서는 절대적이어야하며 사용자에 대해 알지 못함).
이제 하나 이상의 가상 요소를 원하면 절대 : before를 주 요소의 자식 중 하나에 연결합니다 (텍스트 만있는 경우 범위에 넣으면 이제 요소가 있음). 상대 / 절대 / 고정이 아닙니다. .
이 요소는 그의 소유자가 귀하의 주요 요소 인 것처럼 작동하기 시작합니다.
HTML
<div class="circle">
<span>Some text</span>
</div>
CSS
.circle {
position: relative; /* or absolute/fixed */
}
.circle:before {
position: absolute;
content: "";
/* more styles: width, height, etc */
}
.circle:after {
position: absolute;
content: "";
/* more styles: width, height, etc */
}
.circle span {
/* not relative/absolute/fixed */
}
.circle span:before {
position: absolute;
content: "";
/* more styles: width, height, etc */
}
'IT story' 카테고리의 다른 글
정적으로 형식화 된 전체 Lisp 변형이 가능합니까? (0) | 2020.08.19 |
---|---|
: hover (마우스를 떠날 때)의 반대는 무엇입니까? (0) | 2020.08.19 |
asp.net mvc는 컨트롤러를 별도의 프로젝트에 넣습니다. (0) | 2020.08.19 |
데이터 구조가 "침투 적"이라는 것은 무엇을 의미합니까? (0) | 2020.08.19 |
“-g”플래그와 함께 npm을 언제 사용해야하며 그 이유는 무엇입니까? (0) | 2020.08.19 |