SCSS hover에서 특정 자식 요소의 속성 변경
하고 싶은 일
아래와 같은 HTML로, 부모 요소 content에 커서가 맞았을 때의
을 구현합니다. 그 때,
해야 합니다.
sample.html
<div class="content">
<p class="content__text">下線付き</p>
<p class="content__text--red">下線付き+赤文字</p>
</div>
sample.scss
.content {
height: 100px;
width: 200px;
border: solid 1px;
text-align: center;
}
원래의 표시는 이런 느낌
구현 방법
부모 요소에 : hover 의사 클래스 적용
sample.scss
.content {
height: 100px;
width: 200px;
border: solid 1px;
text-align: center;
&:hover {
text-decoration: underline;
}
}
이제 부모 요소에 마우스 커서가 닿으면 텍스트에 밑줄이 표시됩니다. 부모 요소에 대한 속성을 설정하지만 자식 요소에도 상속되므로 자식 요소의 텍스트에 밑줄을 그릴 수 있습니다.
표시는 이런 느낌.
두 번째 자식 요소만의 속성을 변경하는 방법?
CSS로 쓰면 다음과 같습니다.
.content:hover > .content__text--red {
color: red;
}
덧붙여서, 「>」는 「직하의 아이 요소」를 의미합니다.
※이번 샘플 정도라면 「>」 대신에 반각 스페이스에서도 같은 표시가 됩니다.
이것을 SCSS로 쓰면 다음과 같습니다.
sample.scss
.content {
height: 100px;
width: 200px;
border: solid 1px;
text-align: center;
&:hover {
text-decoration: underline;
}
&:hover > &__text--red {
color: red;
}
}
&를 사용한 약어를 한 줄에 여러 개 쓸 수 있다는 것을 이번에 처음 알았습니다.
표시는 이런 느낌.
원하는 구현이 완료되었습니다.
끝에
자바스크립트를 사용하지 않으면 할 수 없는 것이라고 생각하고 있었습니다만, CSS만으로 실현할 수 있었습니다. 누군가의 참고가 되면 다행입니다.
첫 투고이므로 읽기 어려운 점도 있었을까 생각합니다. 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(SCSS hover에서 특정 자식 요소의 속성 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kor_901/items/14f8794217fa7acfacb7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)