2016-09-01 42 views
9

Czy istnieje sposób używania tylko czystego kodu CSS do wyświetlania pola tekstowego po najechaniu na przycisk?Jak wyświetlić pole tekstowe po najechaniu na przycisk czystym CSS?

<form id="demo"> 
    <input type="text" id="search-field" name="s" placeholder="Search"> 
    <input type="submit" id="search-icon"> 
    <i class="fa fa-search"></i> 
</form> 

Pole tekstowe powinno być ukryte i wyświetla się tylko po najechaniu myszą na przycisk. Nie jestem pewien, czy można to zrobić tylko za pomocą CSS. :/

+0

które pole chcesz pokazać przy aktywowaniu? – Roysh

+0

Pole tekstowe .. – user12109321358

+3

To wygląda na koszmar związany z użytecznością. W podanych odpowiedziach nie można nawet kliknąć pola tekstowego (choć można do niego przejść). Skąd się biorą te wszystkie upusty? – thirtydot

Odpowiedz

10

Spróbuj kod:

#search-field { 
 
    display: none; 
 
} 
 
#btn:hover + #search-field { 
 
    display: inline-block; 
 
}
<form id="demo"> 
 
    <input type="button" value="Hover" id="btn" /> 
 
    <input type="text" id="search-field" name="s" placeholder="Search" /> 
 
    <input type="submit" id="search-icon" /> 
 
    <i class="fa fa-search"></i> 
 
</form>

Updated

zamienić wejścia w HTML i zmienić swoje elementy, za pomocą właściwości order i zastosować display:flex; do kontenera w CSS. To by to rozwiązało.

#search-field { 
 
    visibility: hidden; 
 
} 
 
#search-icon:hover + #search-field { 
 
    visibility: visible; 
 
} 
 
#demo { 
 
    display: flex; 
 
} 
 
input:nth-child(2) { 
 
    order: -1; 
 
}
<form id="demo"> 
 
    <input type="submit" id="search-icon" /> 
 
    <input type="text" id="search-field" name="s" placeholder="Search" /> 
 
    <i class="fa fa-search"></i> 
 
</form>

Sprawdź: https://stackoverflow.com/a/36118012/5336321

+0

Działa z danym nowym wejściem. Ale czy to zadziała, #btn: hover + # search-field {visibility: visible;} przy użyciu typu wejściowego "submit"? – user12109321358

+0

Nie ma selektorów, aby to zrobić w css ale możesz to zrobić za pomocą flex i odwracając zamówienie https://jsfiddle.net/b7snbomk/ lub użyj JS lub jQuery –

+0

@ user12109321358 możesz umieścić przycisk 'submit' przed' input' –

2

Można zamienić kolejność input[type="text"] i input[type="submit"] a następnie można projektować input[type="text"] przy aktywowaniu przycisku, jak pokazano poniżej.

#demo { 
 
    position: relative; 
 
    padding-top: 30px; 
 
} 
 
#search-field { 
 
    transition: opacity 0.25s linear; 
 
    position: absolute; 
 
    opacity: 0; 
 
    left: 0; 
 
    top: 0; 
 
} 
 

 
#search-icon:hover + #search-field { 
 
    opacity: 1; 
 
}
<form id="demo"> 
 
    <input type="submit" id="search-icon" /> 
 
    <input type="text" id="search-field" name="s" placeholder="Search" /> 
 
    <i class="fa fa-search"></i> 
 
</form>

+0

Dzięki Muhammad! To też zadziałało! :) :) – user12109321358