ลบรูปแบบทั้งหมดของปุ่ม HTML / ส่ง


99

มีวิธีลบสไตล์ของปุ่มใน Internet Explorer โดยสิ้นเชิงหรือไม่? ฉันใช้สไปรต์ css สำหรับปุ่มของฉันและทุกอย่างก็ดูโอเค

แต่พอคลิกปุ่มมันจะเลื่อนไปด้านบนเล็กน้อยมันทำให้ดูไม่เป็นทรง มีสถานะการคลิก CSS หรือถูกเลื่อนลงหรือไม่? ฉันไม่รู้ว่าอะไรเป็นตัวกระตุ้นสถานะนั้น

ฉันรู้ว่ามันไม่ใช่เรื่องใหญ่ แต่บางครั้งมันก็เป็นเรื่องเล็ก ๆ ที่สำคัญ

คำตอบ:


74

ฉันสมมติว่าเมื่อคุณพูดว่า ' คลิกปุ่มมันจะเลื่อนไปด้านบนเล็กน้อย ' คุณกำลังพูดถึงสถานะการคลิกเมาส์ลงของปุ่มและเมื่อคุณปล่อยคลิกเมาส์มันจะกลับสู่สถานะปกติ เหรอ? และคุณกำลังปิดใช้งานการแสดงผลเริ่มต้นของปุ่มโดยใช้:

input, button, submit { border:none; } 

ถ้าอย่างนั้น ..

โดยส่วนตัวแล้วฉันพบว่าคุณไม่สามารถหยุด / แทนที่ / ปิดการใช้งานการกระทำเนทีฟของ IE นี้ได้ซึ่งทำให้ฉันต้องเปลี่ยนมาร์กอัปเล็กน้อยเพื่อให้สามารถเคลื่อนไหวได้และไม่ส่งผลกระทบต่อรูปลักษณ์โดยรวมของปุ่มสำหรับสถานะต่างๆ

นี่คือการมาร์กอัปขั้นสุดท้ายของฉัน:

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


137

ฉันคิดว่านี่เป็นแนวทางที่ละเอียดกว่า:

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
ฉันไม่คิดว่าพื้นหลังมี 'ไม่มี' - และที่สำคัญคือไม่ดี
นายอำเภอ

4
โดยปกติเมื่อคุณทำสิ่งนี้คุณต้องการแทนที่สไตล์ที่มีอยู่ที่มีอยู่สำหรับปุ่ม เป็นเรื่องยากที่คุณต้องการทำสิ่งนี้ด้วย HTML ที่สะอาดและไม่เป็นระเบียบดังนั้นการใช้!importantไฟล์. ที่บอกว่าฉันลบมันออกไปเพราะมันเป็นการตัดสินใจของสถานการณ์ background: noneถูกต้องทั้งหมด: stackoverflow.com/questions/20784292/…
Kevin Leary

สำหรับแต่ละคนเกี่ยวกับ! ฉันไม่คิดว่าฉันจะทำงานในโครงการที่ฉันถูกบังคับให้ใช้มันได้ RE: 'none' นี่คือข้อมูลอ้างอิงที่ดีกว่าโพสต์ SO เมื่อคุณใช้ 'พื้นหลัง' ด้วยตัวมันเองคุณกำลังใช้ชวเลขและคัดลอกคุณลักษณะทั้งหมด
นายอำเภอ

ฉันกำลังทำให้ตัวเองรู้สึกแย่กับความแตกต่างระหว่างการจัดรูปแบบรูปภาพและข้อความบางส่วนภายในปุ่มและทำให้มันดูเหมือนกับภายนอก<button/>... ในกรณีของฉันfont: inherit;เคล็ดลับทำ ขอบคุณ!
Kate

3
ฉันคิดว่าเพื่อจุดประสงค์ในการเข้าถึงคุณอาจต้องการทิ้งโครงร่างนั้นไว้ที่นั่น มิฉะนั้นเมื่อคุณแท็บมันจะไม่มีภาพที่คุณอยู่ ตอบได้ดีมาก!
John Hooper

46

คำถามของคุณระบุว่า "Internet Explorer" แต่สำหรับผู้ที่สนใจในเบราว์เซอร์อื่นคุณสามารถใช้ได้แล้ว all: unsetปุ่มเพื่อเลิกใช้งานได้

ไม่ทำงานใน IE หรือ Edge 18 แต่ได้รับการสนับสนุนอย่างดีในทุกที่

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

ซาฟารีสีเตือน:การตั้งค่าข้อความcolorของปุ่มหลังจากใช้all: unsetสามารถล้มเหลวใน Safari 13.1 เนื่องจากข้อผิดพลาดในเป็น WebKit (ข้อบกพร่องจะได้รับการแก้ไขใน Safari 14 ขึ้นไป) " all: unsetกำลังตั้งค่า-webkit-text-fill-colorเป็นสีดำและจะแทนที่สี" หากคุณต้องการตั้งค่าข้อความcolorหลังจากใช้all: unsetงานให้แน่ใจว่าได้ตั้งค่าทั้งสองcolorและ-webkit-text-fill-colorสีให้เป็นสีเดียวกัน

คำเตือนการเข้าถึง:เพื่อประโยชน์ของผู้ใช้ที่ไม่ได้ใช้ตัวชี้เมาส์ให้แน่ใจว่าได้ใหม่เพิ่มบาง:focusจัดแต่งทรงผมเช่นbutton:focus { outline: orange auto 5px }สำหรับการเข้าถึงแป้นพิมพ์

และอย่าลืมcursor: pointer. all: unsetลบสไตล์ทั้งหมดรวมถึง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
ขอบคุณสำหรับสิ่งนี้!
Will Ediger

ไม่แนะนำให้ทำเช่นนี้เนื่องจากเหตุผลด้านความสามารถในการเข้าถึง คุณจะต้องเพิ่มoutlineสไตล์ทั้งหมดกลับเข้าไปใน:focusสถานะองค์ประกอบเช่น
Devin

@Devin จุดสำคัญ! ฉันอัปเดตโพสต์พร้อมคำแนะนำในการเพิ่มoutlineสไตล์อีกครั้ง (แต่ฉันไม่คิดว่าจะมีอะไรอีกที่เราต้องเพิ่มใหม่เพื่อจุดประสงค์ 11y คุณรู้อะไรไหม)
Dan Fabulich


4

ใน bootstrap 4 นั้นง่ายที่สุด คุณสามารถใช้คลาส: bg-transparentและborder-0


+ shadow-noneสำหรับฉันและมันก็เพียงพอแล้ว ขอบคุณ!
Bachet

0

ฉันคิดว่าปุ่มนี้เป็นสถานะ "ใช้งานอยู่"


จะต้องเป็นสถานะที่ใช้งานได้คุณจึงมีสิทธิ์ +1 สำหรับสิ่งนั้น แต่ฉันทำงานไม่ถูกต้อง
Saif Bechan

“ ฉันคิดว่า” ไม่ใช่คำตอบ
shinzou

0

เพิ่มสไตล์ที่เรียบง่ายให้กับปุ่มของคุณ

.btn {
    background: none;
    color: inherit;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    outline: inherit;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.