Bir HTML düğmesinin / gönderiminin tüm stilini kaldırın


98

Internet Explorer'da bir düğmenin stilini tamamen kaldırmanın bir yolu var mı? Düğmem için bir css sprite kullanıyorum ve her şey yolunda görünüyor.

Ama düğmeye tıkladığımda biraz yukarı çıkıyor, şeklini bozuyor. Bir css tıklama durumu veya fare indirme durumu var mı? Bu durumu neyin tetiklediğini bilmiyorum.

Bunun gerçekten önemli bir şey olmadığını biliyorum, ama bazen önemli olan küçük şeylerdir.

Yanıtlar:


74

' Düğmeyi tıklayın, biraz yukarı çıkıyor' dediğinizde, düğme için fare aşağı tıklama durumundan bahsettiğinizi ve fare tıklamasını bıraktığınızda normal durumuna döndüğünü varsayıyorum. ? Ve şunu kullanarak düğmenin varsayılan oluşturmasını devre dışı bıraktığınıza:

input, button, submit { border:none; } 

Öyleyse..

Şahsen, bu IE yerel eylemini gerçekten durduramayacağınızı / geçersiz kılamayacağınızı / devre dışı bırakamayacağınızı anladım, bu da beni bu harekete izin vermek için işaretlememi biraz değiştirmeme ve çeşitli durumlar için düğmenin genel görünümünü etkilememe yol açtı.

Bu benim son notum:

<span class="your-button-class">
    <span>
        <input type="Submit" value="View Person">
    </span>
</span>


135

Bunun daha kapsamlı bir yaklaşım sağladığını düşünüyorum:

button, input[type="submit"], input[type="reset"] {
	background: none;
	color: inherit;
	border: none;
	padding: 0;
	font: inherit;
	cursor: pointer;
	outline: inherit;
}
<button>Example</button>


2
Arka planda 'hiçbiri' olduğunu sanmıyorum - ve önemli olan da iyi değil.
sheriffderek

4
Genellikle, bunu yaparken bir düğme için var olan mevcut stilleri geçersiz kılmak istersiniz. Bunu temiz, biçimlendirilmemiş HTML ile yapmak istemeniz nadirdir, dolayısıyla !important. Bu bir durum kararı olduğu için onu çıkardığımı söyledi. background: nonetamamen geçerlidir: stackoverflow.com/questions/20784292/…
Kevin Leary

Her biri için kendi açısından önemli! Onu kullanmak zorunda kaldığım bir proje üzerinde çalışabileceğimi sanmıyorum. RE: 'yok' İşte bir SO gönderisinden daha iyi bir referans. Tek başına 'arka plan' kullandığınızda, gerçekten steno kullanıyor ve tüm özellikleri bozuyorsunuz.
sheriffderek

Bir görüntüyü ve bir düğmenin içindeki bir metni şekillendirmek ve onun dışındakiyle aynı görünmesini sağlamak arasındaki fark üzerine kendimi çıldırtıyordum a <button/>... benim durumumda, font: inherit;hile yaptım. Teşekkür ederim!
Kate

3
Erişilebilirlik amacıyla muhtemelen bu taslağı orada bırakmak isteyeceğinizi düşünüyorum. aksi halde üzerine geçtiğinizde, nerede olduğunuza dair görsel bir ipucu yoktur. yine de harika cevap!
John Hooper

45

Sorunuz "Internet Explorer" diyor, ancak diğer tarayıcılarla ilgilenenler için, artık all: unsetstillerini çözmek için düğmelerden yararlanabilirsiniz.

IE veya Edge 18'de çalışmıyor, ancak başka her yerde iyi destekleniyor.

https://caniuse.com/#feat=css-all

Safari renk uyarısı: Kullandıktan colorsonra düğme metninin ayarlanması, WebKit'teki bir hataall: unset nedeniyle Safari 13.1'de başarısız olabilir . (Hata Safari 14 ve sonraki sürümlerde düzeltilecektir.) " Siyaha ayarlanıyor ve bu rengi geçersiz kılıyor." Kullandıktan sonra metni ayarlamanız gerekirse , hem ve hem de aynı renge ayarladığınızdan emin olun .all: unset-webkit-text-fill-colorcolorall: unsetcolor-webkit-text-fill-color

Erişilebilirlik uyarısı: Fare imleci kullanmayan kullanıcılar için, klavye erişilebilirliği gibi bazı :focusstilleri yeniden eklediğinizden emin olun .button:focus { outline: orange auto 5px }

Ve unutma cursor: pointer. düğmenin üzerine geldiğinizde fare imlecinizin işaret eden bir el gibi görünmesini sağlayan , dahil tüm stilleri all: unsetkaldırır . Neredeyse kesinlikle onu geri getirmek istiyorsun.cursor: pointer

button {
  all: unset;
  color: blue;
  -webkit-text-fill-color: blue;
  cursor: pointer;
}

button:focus {
  outline: orange 5px auto;
}
<button>check it out</button>


1
Bunun için teşekkür ederim!
Will Ediger

Erişilebilirlik nedeniyle bu tavsiye edilmez. Örneğin outline, :focusöğe durumu için tüm stilleri geri eklemeniz gerekir .
Devin

@Devin Harika nokta! Gönderimi bir outlinestili yeniden eklemek için bir öneriyle güncelledim . (Ama bir yıl amacıyla yeniden eklememiz gereken başka bir şey olduğunu sanmıyorum . Bir şey biliyor musunuz?)
Dan Fabulich,

8

Düğmenizden kenarlığı kaldırmayı deneyin:

input, button, submit
{
  border:none;
}

4

Bootstrap 4'te en kolayı. Sınıfları kullanabilirsiniz: bg-transparentveborder-0


+ shadow-nonebenim için ve bu yeterli. Teşekkürler!
Bachet

0

Sanırım düğme "aktif" durum.


Aktif durum olmalı, bunun için haklı + 1siniz. Ama düzgün çalışmasını sağlayamadım
Saif Bechan

"Sanırım" bir cevap değil.
shinzou

0

Düğmenize basit bir stil ekleyin

.btn {
    background: none;
    color: inherit;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    outline: inherit;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.