Jak zrobić przezroczysty przycisk HTML?


125

Używam Dreamweaver do stworzenia strony internetowej i pomyślałem o użyciu Photoshopa do tworzenia tła. Zdecydowałem się na to tylko dlatego, że w przypadku, gdybym wybrał łatwą zmianę nazwy przycisku, po prostu edytując kody, mogłem po prostu odwołać się do kodu. Gdybym skonstruował przyciski w Photoshopie, nie byłbym w stanie łatwo edytować tekstów w tych przyciskach lub w jakimkolwiek elemencie.

Moje pytanie jest więc proste: jak utworzyć przycisk, który ma prosty styl wbudowany, dzięki czemu jest przezroczysty, pozostawiając nadal widoczną wartość przycisku.

.button {     
    background-color: Transparent;
    background-repeat:no-repeat;
    border: none;
    cursor:pointer;
    overflow: hidden;        
}

Po kliknięciu nadal pozostawia cień obramowania.


Odpowiedzi:


240

Aby pozbyć się konturu po kliknięciu, dodaj outline:none

Przykład jsFiddle

button {
    background-color: Transparent;
    background-repeat:no-repeat;
    border: none;
    cursor:pointer;
    overflow: hidden;
    outline:none;
}


To jest wystarczająco dobre. Wypróbowałem już sposób obrazu i zrobił to dokładnie tak, jak było to konieczne. Dziękuję bardzo, panie Hayes!
Shinji

1
Działa w 100% po umieszczeniu -webkit-box-shadow: none; -moz-box-shadow: none;w kodzie
h3nr1ke

6
Możesz go zoptymalizować, zmieniając się background-color: Transparent; background-repeat:no-repeat;nabackground: Transparent no-repeat;
Filipe Amaral

1
Zaginięcie outline: none;dopada mnie za każdym razem
Adam

5

Rozwiązanie jest właściwie całkiem proste:

<button style="border:1px solid black; background-color: transparent;">Test</button>

Robi to w stylu inline. Definiujesz obramowanie jako 1 piksel, ciągłą linię i kolor czarny. Kolor tła jest wtedy ustawiony na przezroczysty.


AKTUALIZACJA

Wygląda na to, że twoje RZECZYWISTE pytanie brzmi, jak zapobiec obramowaniu po kliknięciu na nią. Które mogą być rozwiązane za pomocą selektora pseudo CSS :active.

button {
    border: none;
    background-color: transparent;
    outline: none;
}
button:focus {
    border: none;
}

JSFiddle Demo


Po kliknięciu nadal pozostawia cień obramowania. Dziękuję za wkład!
Shinji

Więc twoje rzeczywiste pytanie bardzo różni się od pierwotnego, na które odpowiedziałem. Wiesz już, jak używać CSS, aby przycisk był przezroczysty. Po kliknięciu pozostawia obramowanie, którego nie chcesz. Czy to jest dokładne?
EnigmaRM

Tak, bardzo mi przykro, jeśli moje pytanie wprowadzało w błąd.
Shinji

2

Utwórz element div i użyj swojego obrazu (png z przezroczystym tłem) jako tła elementu div, a następnie możesz zastosować dowolny tekst w tym elemencie div, aby najechać kursorem na przycisk. Coś takiego:

<div class="button" onclick="yourbuttonclickfunction();" >
Your Button Label Here
</div>

CSS:

.button {
height:20px;
width:40px;
background: url("yourimage.png");
}

Jeśli chcesz zachować semantyczny i przystępny kod HTML, najlepiej użyć tagu przycisku i usunąć tło itp. Za pomocą CSS. Jest to jednak w porządku, szczególnie w sytuacji, gdy dostępność nie jest problemem, jak natywna aplikacja, która używa HTML5 i CSS do układu, oto przykład: smashingmagazine.com/2013/10/17/...
Eric Bishard

0
<div class="button_style">
This is your button value
</div>

.button_style{   
background-color: Transparent;
border: none;             /* Your can add different style/properties of button Here*/
cursor:pointer;    
}


0

** dodaj ikonę górnego przycisku w ten sposób **

#copy_btn{
	align-items: center;
	position: absolute;
	width: 30px;
  height: 30px;
     background-color: Transparent;
    background-repeat:no-repeat;
    border: none;
    cursor:pointer;
    overflow: hidden;
    outline:none;
}
.icon_copy{
	position: absolute;
	padding: 0px;
	top:0;
	left: 0;
width: 25px;
  height: 35px;
  
}
<button id="copy_btn">

                        <img class="icon_copy" src="./assest/copy.svg" alt="Copy Text">
</button>

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.