2016-09-02 5 views
4

Я пытаюсь закрыть div при щелчке по галочке с помощью css только не JQuery или Javascript, но кажется, что он не работает должным образом. Как я могу его отрегулировать?Закройте div, когда флажок щелкнул с чистым css

div[id^="div-"] { 
 
     \t display: block; 
 
    } 
 
    div[id^="div-"]:target { 
 
\t  display: none; 
 
    }
<a href="#div-1"><input type="checkbox" checked></a> 
 
    <div id="div-1">   
 
     Here is the content. 
 
    </div>

Как я могу связать <a> кнопкой мыши и флажок?

+0

Чтобы помочь нам определить проблему, и получить в ответ вам нужно быстрее, есть какая-либо дополнительная информация, которую вы могли бы предоставить? Какие ошибки вы видите, если они есть? Что вы ожидали вместо этого? –

+0

отметьте ответ как правильный, если есть –

ответ

1

Я думаю, что единственный способ сделать это с чистым CSS будет иметь checkbox как прямой родственник к div:

#div-1 {display:none} 
 
#checkbox:checked + #div-1 {display:block;}
<input id="checkbox" type="checkbox" checked> 
 
<div id="div-1">   
 
    Here is the content. 
 
</div>

1

#text{ 
 
    width:100px; 
 
    height:100px; 
 
    background:black; 
 
} 
 
input[type=checkbox]:checked ~ #text{ 
 
display:none; 
 
    
 
}
<input type="checkbox" name="check" value="checked">Click here<br> 
 
<div id="text"></div>

1

Используя только CSS вы можете сделать что-то вроде этого.

JSFiddle

+ является смежным селектором родственного, больше информации на https://developer.mozilla.org/en/docs/Web/CSS/Adjacent_sibling_selectors

#close + #div-1 { 
 
    display: none; 
 
} 
 

 
#close:checked + #div-1 { 
 
    display: initial; 
 
}
<input id="close" type="checkbox" checked /> 
 
<div id="div-1">Here is the content.</div>

1

Сначала вы должны удалить якорь и пусть входной элемент, потому что это трюк, который я показываю потребности элементов на том же уровне или второй элемент находится в более низких уровнях HTML структуры.

<input type="checkbox" checked> 
<div id="div-1">   
    Here is the content. 
</div 

CSS

div[id^="div-"] { 
    display: block; 
} 


input:checked ~ div[id^="div-"] { 
    display: none; 
} 

jsfiddle

 Смежные вопросы

  • Нет связанных вопросов^_^