홈>
여기서 필터가 작동하지 않는 이유는 무엇입니까?
.btns a {
display: block;
float: left;
text-decoration: none;
text-align: center;
padding: 10px;
margin: 0 5px 0 0;
color: white;
background: #1271C7;
}
.btns a:focus[cat] {
background-color: grey;
}
.btns a[cat="java"]:focus ~ .post div:not([cat="java"]),
.btns a[cat="internet-things"]:focus ~ .post div:not([cat="internet-things"]),
.btns a[cat="blockchain"]:focus ~ .post div:not([cat="blockchain"]) {
display: none;
}
.post div {
display: block;
float: left;
width: 99%;
border: 1px solid black;
margin-top: 20px;
background-color: lightgrey;
}
<div class="btns">
<a href="#" cat="all">Show all</a>
<a href="#" cat="java">Java</a>
<a href="#" cat="internet-things">Internet of Things</a>
<a href="#" cat="blockchain">Blockchain</a>
</div>
<div class="post">
<div cat="java">Everything about Java Spring</div>
<div cat="blockchain">A bitcoin project</div>
<div cat="java">Eclipse IDE Java</div>
<div cat="blockchain">Ethereum tokens ICO</div>
<div cat="internet-things">Walking Fridge</div>
<div cat="blockchain">Bitcoin 3.0</div>
<div cat="internet-things">Aibo</div>
</div>
작동하지 않는 예 : https://jsfiddle.net/3qbvvt50/2/
<div class="btns">
를 제거하면 필터가 작동하는 동안
HTML에서
.btns
를 제거
CSS에서.
작업 예 : https://jsfiddle.net/3qbvvt50/3/
- 답변 # 1
- 답변 # 2
라디오 버튼 솔루션은 아마도 처음에는 함께 할 것이지만
<a>
를 사용해야하기 때문에 태그와 버튼 및 내용에 대한 별도의 래퍼 클래스가있는 경우 일부 도우미 div에서 : target 선택기를 사용하여 형제 역할을하고 : not 선택기와 attr로 옵션을 필터링 할 수 있습니다..btns a { display: inline-block; padding: 5px 10px; margin: 0 5px 10px 0; background: royalblue; color: white; } a:active { background: tomato; } #java:target ~ div:not([data-cat="java"]){display:none;} #blockchain:target ~ div:not([data-cat="blockchain"]){display:none;} #internet-things:target ~ div:not([data-cat="internet-things"]){display:none;}
<div class="btns"> <a href="#"> All </a> <a href="#java">Java</a> <a href="#internet-things">Internet of Things</a> <a href="#blockchain">Blockchain</a> </div> <div class="post"> <div class="helper" id="java"></div> <div class="helper" id="blockchain"></div> <div class="helper" id="internet-things"></div> <div data-cat="java">Everything about Java Spring</div> <div data-cat="blockchain">A bitcoin project</div> <div data-cat="java">Eclipse IDE Java</div> <div data-cat="blockchain">Ripple Network</div> <div data-cat="internet-things">Smart Thermostate</div> <div data-cat="java">IntelliJ IDEA Community Edition</div> <div data-cat="java">Java SDK 9.0</div> <div data-cat="java">Java SDK 8.0</div> <div data-cat="blockchain">Ethereum tokens ICO</div> <div data-cat="internet-things">Walking Fridge</div> <div data-cat="blockchain">Bitcoin 3.0</div> <div data-cat="internet-things">Aibo</div> </div>
각 카테고리에 대한 CSS 규칙 (동적 일 가능성이 높음)에 의존하기 때문에 프로덕션 환경에서 사용하는 것은 아니지만 CSS 도전 과제로 여전히 재미 있습니다.
관련 자료
- java - 자식 클래스를 통해 부모 클래스 메서드에 액세스 할 수 없습니다
- 왜 부모 클래스에서 self 함수를 호출 할 때 자식 클래스가 실제로 파이썬에서 실행되는 이유
- android - kotlin의 자식 클래스에서 부모 클래스 변수에 액세스 할 수 없습니다
- java - Mockito를 사용하여 부모 추상 클래스에서 선언 된 종속성을 조롱하는 방법은 무엇입니까?
- 내 하위 클래스가 Python의 상위 클래스에서 올바르게 상속 될 수 없습니다
- css - 두 개의 주 메뉴의 하위 메뉴로 표시되어야하는 페이지의 활성 상위 클래스를 찾기 어려움
- javascript - TypeScript의 자식 클래스에 정의 된 부모 클래스의 속성 선언
- jquery 부모 LI에 클래스 추가
- vue.js - v-for로 작성된 구성 요소를 클릭 할 때 특정 상위 div에 클래스 추가
- android - 부모 참조에서 자식 클래스의 메서드에 어떻게 액세스 할 수 있습니까?
- c++ - 부모 클래스 메서드 재정의를 사용하는 다중 상속
- kotlin - mockito - 일반 부모 클래스의 classcastexception
- 파이썬에서 부모 클래스의 속성에 대한 속성을 만드는 방법
- asp.net web api - c # 반영 - 형식에 대한 getcustomattributes는 부모 클래스에서 특성을 가져옵니다
- Dart - 다트 - 부모 클래스에서 메서드 숨기기/부모 클래스에서 프라이빗 메서드 호출
- javascript - 다른 파일의 상속 클래스 상위 "this"결과가 정의되지 않음
- Java - 자바 - 모든 하위 클래스의 인스턴스를 저장할 수있는 부모 클래스 개체를 만들 수 있습니까?
- javascript - 자식 프로세스를 사용하여 부모 디렉터리에서 class 파일을 실행하려면 어떻게해야합니까?
- phpstorm - 내 PHP 파일 클래스가 텍스트 파일로 인식되는 이유는 무엇입니까?
- swift - 색상을 변경하지 않는 부모 클래스에서 상속하는 자식 클래스
관련 질문
- html : 선택 입력을 클릭할 때 배경 이미지가 확대되는 이유
- Javascript 이벤트 핸들러는 다른 요소의 이벤트 핸들러를 변경하지 않습니다.
- html : 양식에서 여러 라디오 버튼을 선택하는 방법은 무엇입니까?
- javascript : 이 code를 더 잘 작성하고 유사하게 만드는 방법은 무엇입니까? 자바스크립트
- html : 내부 테이블의 내용을 중앙으로 가져오기
- javascript : 이미지 위에 여러 색상이 있는 CSS 오버레이
- javascript : CSS가 추가되면 JS 색상 변경이 작동을 멈춥니다.
- javascript : 동일한 이름을 가진 여러 클래스에 액세스하고 변경하고 반복하여 클릭 시 CSS 변경 사항을 추가하는 방법은 무엇입니까?
- html : cfml 페이지에서 css가 있는 가운데 확인란
- javascript : HTML/CSS 슬라이더가 올바르게 반복되지 않음
일반 형제 콤비 네이터 (
~
) ) 및 인접 형제 조합기 (+
) ),직접 형제인 요소에서만 작동합니다.위에 게시 한 코드에서
a[cat="java"]
그리고<div cat="java">
서로 다른 상위 div 아래에 있으므로 형제 선택기가 작동하지 않습니다.이 탭에서 얻을 수있는 가장 좋은 결과는 일반 CSS를 사용한 레이아웃입니다.
<label>
를 사용하는 것입니다. 그리고<input type="radio">
내 생각에 참고, 나는 또한cat=
를 변경data-cat=
로 적절한 마크 업을 위해.jsFiddle