ลบเส้นขอบสีน้ำเงินออกจากปุ่ม css แบบกำหนดเองใน Chrome


811

ฉันกำลังทำงานบนเว็บเพจและฉันต้องการ<button>แท็กแบบกำหนดเอง ดังนั้นด้วย CSS border: noneผมบอกว่า: ตอนนี้มันทำงานได้อย่างสมบูรณ์ในซาฟารี แต่ในโครเมี่ยมเมื่อฉันคลิกปุ่มใดปุ่มหนึ่งมันทำให้เส้นขอบสีฟ้าน่ารำคาญรอบ ๆ ฉันคิดbutton:active { outline: none }หรือbutton:focus { outline:none }จะทำงาน แต่ไม่ทำ ความคิดใด ๆ

นี่คือลักษณะที่ปรากฏก่อนที่จะถูกคลิก (และฉันต้องการให้มันยังคงดูแลหลังจากถูกคลิก):

และนี่คือขอบเขตที่ฉันพูดถึง:

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือ CSS ของฉัน:

button.launch {
    background-color: #F9A300;
    border: none;
    height: 40px;
    padding: 5px 15px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 300;
    margin-top: 10px;
    margin-right: 10px;
}

button.launch:hover {
    cursor: pointer;
    background-color: #FABD44;
}

button.change {
    background-color: #F88F00;
    border: none;
    height: 40px;
    padding: 5px 15px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 300;
    margin-top: 10px;
    margin-right: 10px;
}

button.change:hover {
    cursor: pointer;
    background-color: #F89900;
}

button:active {
    outline: none;
    border: none;
}

1
ดูโอเคกับฉันไหม jsbin.com/oSAdovun/1/edit
davidpauljunior

ฉันไม่แน่ใจว่าทำไมมันทำงานในตัวอย่างของคุณ .. มันทำที่นี่: jsfiddle.net/NgL8H @davidpauljunior
eshellborn

5
ฉันเพิ่มกฎการโฟกัสลงที่ด้านล่างซึ่งคุณบอกว่าใช้งานไม่ได้ แต่ดูเหมือนว่า: jsfiddle.net/NgL8H/1
davidpauljunior

21
คุณไม่ควรลบโครงร่างอย่างสมบูรณ์ - คนที่มีความพิการ - และคนอย่างฉันที่มักจะใช้แป้นพิมพ์เพราะมันรวดเร็ว - ต้องการมันเพื่อนำทาง มันจะดีกว่ามากที่จะจัดโครงร่างตามที่คุณต้องการ
คริส B

3
โปรดอย่าตั้งค่าoutline: noneเช่นนี้จนกว่าคุณจะพร้อมที่จะแทนที่การสูญเสียในการเข้าถึง ดูเว็บไซต์นี้: outlinenone.com
Flimm

คำตอบ:


1536

ไม่แนะนำให้ทำเช่นนี้เพราะจะทำให้การเข้าถึงเว็บไซต์ของคุณช้าลง สำหรับข้อมูลเพิ่มเติมดูโพสต์นี้

ที่กล่าวว่าหากคุณยืนยัน CSS นี้ควรทำงาน:

button:focus {outline:0;}

ลองดูหรือ JSFiddle: http://jsfiddle.net/u4pXu/

หรือในตัวอย่างนี้:

button.launch {
background-color: #F9A300;
border: none;
height: 40px;
padding: 5px 15px;
color: #ffffff;
font-size: 16px;
font-weight: 300;
margin-top: 10px;
margin-right: 10px;
}

button.launch:hover {
cursor: pointer;
background-color: #FABD44;
}

button.launch {
background-color: #F9A300;
border: none;
height: 40px;
padding: 5px 15px;
color: #ffffff;
font-size: 16px;
font-weight: 300;
margin-top: 10px;
margin-right: 10px;
}

button.launch:hover {
cursor: pointer;
background-color: #FABD44;
}

button.change {
background-color: #F88F00;
border: none;
height: 40px;
padding: 5px 15px;
color: #ffffff;
font-size: 16px;
font-weight: 300;
margin-top: 10px;
margin-right: 10px;
}

button.change:hover {
cursor: pointer;
background-color: #F89900;
}

button:active {
outline: none;
border: none;
}

button:focus {outline:0;}
<button class="launch">Launch with these ads</button> 
<button class="change">Change</button>


49
สิ่งนี้ควรเป็นจริงoutline: none;หรือไม่สำคัญ
henrywright

2
@ Henrywright ดี OP พยายามและไม่ได้ทำงานให้เขา
diosney

58
โปรดอย่าทำเช่นนี้ ความคับข้องใจเล็กน้อยของคุณไม่เกี่ยวข้องกับปัญหาการเข้าถึงที่ยิ่งใหญ่สิ่งนี้กลายเป็น
phazei

20
คุณควรจัดสไตล์ใหม่นี้แทนที่จะซ่อนไว้อย่างสมบูรณ์ ในกรณีนี้ลองทำสิ่งที่ชอบbutton:focus{ outline-color: #A75000 }... แทนที่จะซ่อนตัวบ่งชี้ที่คุณเปลี่ยนเป็นสีส้มเข้มที่เหมาะกับสไตล์
cloudworks

3
@ SeanO'Brien ให้สถานะของ OP เป็นไปได้สำหรับเว็บไซต์ที่มีผู้ใช้ 5 คนทุกคนสามารถทำได้ แต่อาจเป็นไปได้ว่าคนส่วนใหญ่ 1123 คนที่ได้ถอนรากถอนโคนคิดว่านี่เป็นวิธีที่เหมาะสมในการทำสิ่งต่าง ๆ สำหรับสถานการณ์ของพวกเขา แต่จริงๆแล้วมันไม่ได้เป็นการเลือกปฏิบัติ
alexrogers

296

รอ! มีเหตุผลที่เค้าน่าเกลียด!

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

วิธีแก้ไขที่เป็นไปได้: ปุ่มมืดลงเมื่อทำการโฟกัส

สำหรับตัวอย่างด้านล่างโครงร่างสีน้ำเงินของ Chrome ถูกลบออกครั้งแรกโดยใช้ button:focus { outline:0 !important; }

นี่คือปุ่ม Bootstrap พื้นฐานของคุณตามที่ปรากฏตามปกติ: ปุ่ม Bootstrap ในสถานะปกติ

นี่คือปุ่มเมื่อพวกเขาได้รับโฟกัส: บูตปุ่มในสถานะที่ถูกโฟกัส

นี่คือปุ่มเมื่อกด: ป้อนคำอธิบายรูปภาพที่นี่

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

มันไม่ได้มีไว้สำหรับผู้ใช้ที่พิการ

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


40
ปัญหาเกิดขึ้นใน Chrome มันเกิดขึ้นแม้กระทั่งเมื่อคลิกไม่ใช่แค่การแท็บ (การใช้งานเชิงตรรกะที่พบในเบราว์เซอร์ส่วนใหญ่) ดังนั้นจริง ๆ แล้ว Google กำลังลดการเข้าถึงเนื่องจาก devs ส่วนใหญ่จะปิดการใช้งาน (ใน Chrome) เสียเวลาในการค้นคว้า / แก้ไขปัญหาที่เกี่ยวข้องกับ Google / Chrome (การบันทึกรหัสผ่านการสนับสนุนอีเมล css)
RunLoop

3
คุณพูดถูก! เพื่อให้สามารถเข้าถึงได้ในบัญชีเมื่อลบโครงร่างคุณต้องมี JavaScript: paciellogroup.com/blog/2012/04/…
ส์

คุณไม่สามารถสไตล์ / จัดรูปแบบความคิดเห็นในแบบที่คุณสามารถตอบได้ ยากที่จะให้ข้อเสนอแนะในระดับรายละเอียดนี้เพียงผ่านความคิดเห็น
A-Dubb

@RunLoop คุณจะลบหรือเปลี่ยนเส้นขอบสีน้ำเงินได้อย่างไรหลังจากคลิก? มันสามารถทำได้ผ่าน CSS หรือจำเป็นต้องใช้จาวาสคริปต์?
Nick

ผู้ที่มีปัญหาเหล่านี้สามารถใช้ vimium-ff ได้
yukashima huksay

60

ฉันเพิ่งลบเค้าร่างออกจากแท็กทั้งหมดในหน้าโดยเลือกทั้งหมดและใช้เค้าร่าง: ไม่มีกับทุกอย่าง :)

*:focus {outline:none}

ตามที่กล่าวถึง bagofcole คุณอาจต้องเพิ่ม! สำคัญด้วยดังนั้นสไตล์จะมีลักษณะดังนี้:

*:focus {outline:none !important}

6
โปรดอย่าทำเช่นนี้ ผู้ใช้ที่สำรวจหน้าของคุณด้วยแป้นพิมพ์จะไม่สามารถเห็นองค์ประกอบที่มุ่งเน้นในปัจจุบัน แทนที่จะซ่อนโครงร่างให้เบลอองค์ประกอบถ้าเหตุการณ์การคลิกมาจากเมาส์
joepio

โดยทั่วไปแล้วมีบางสิ่งที่เน้นการจัดแต่งทรงผม ...
Arziel

46

ในตัวอย่างของปัญหานี้ฉันต้องระบุ box-shadow: none

button:focus {
  outline:none;
  box-shadow: none;
}

4
ขอบคุณสำหรับการโพสต์ของคุณ! คุณสมบัติ "กล่องเงา" คือจุดในกรณีของฉัน
Nightking

1
นี่เป็นปัญหาเดียวกันสำหรับฉัน ไม่ใช่ว่ามันเกี่ยวข้อง แต่ฉันใช้ชุดรูปแบบของรูตใน Chrome บน Ubuntu 17.10
Spencer Hill

1
เฉพาะงานนี้เท่านั้นbox-shadow
sura2k

1
ฉันต้องเพิ่ม! สิ่งสำคัญที่จะทำให้มันใช้งานได้อาจจะ bootstrap มีคำจำกัดความเฉพาะสำหรับที่นี่
webMan

1
มันใช้งานได้สำหรับฉันเพื่อน! ขอบคุณสำหรับการโพสต์โซลูชั่น เสียงเชียร์
theITvideos

44

อย่าลืม!importantคำประกาศเพื่อผลลัพธ์ที่ดีกว่า

button:focus {outline:0 !important;}

กฎที่มีคุณสมบัติ!! สำคัญจะถูกนำไปใช้เสมอไม่ว่าจะมีกฎนั้นปรากฏในเอกสาร CSS ที่ใดก็ตาม


14
"เพื่อผลลัพธ์ที่ดีกว่า"? คุณช่วยอธิบายอะไรได้บ้างสำคัญไหม
Popnoodles

5
แต่คุณสามารถอธิบายสิ่งที่มันทำ? "ด้วยเหตุผลที่มีอยู่" ไม่ได้อธิบายให้คนที่ไม่ทราบสาเหตุของมันว่าอะไรคือเหตุผล
Popnoodles

48
สำคัญควรใช้น้อยมากและเพื่อให้แน่ใจว่าสิ่งที่ไม่ควรเขียนทับตามกฎต่อไป คุณควรกำหนดเป้าหมายองค์ประกอบของคุณด้วยตัวเลือกที่ถูกต้องเมื่อเขียนทับกฎก่อนหน้า
Popnoodles

24
การใช้!! important ไม่ค่อยเป็นธรรม คุณควรกำหนดขอบเขตตัวเลือก css ของคุณในแบบที่สมเหตุสมผลมากขึ้นและไม่ควรใช้! สำคัญเพียงเพราะมันให้ผลลัพธ์ที่ดีกว่า
Ronen Cypis

5
โปรดอย่าทำเช่นนี้ ในขณะที่เทคนิคนี้ตอบคำถามของ OP, nuking บ่งชี้ทุกตำแหน่งโฟกัสด้วยoutline:0 !importantเป็น UX ที่ไม่ดีและการปฏิบัติที่ไม่ดี dev หากคุณกำลังทำสิ่งนี้โปรดตรวจสอบให้แน่ใจว่าคุณกำลังทำอย่างอื่นเพื่อระบุตำแหน่งโฟกัส (เช่นการเปลี่ยนสีพื้นหลังขององค์ประกอบ)
cloudworks

26

การนำออกoutlineเป็นเรื่องที่แย่มากสำหรับการเข้าถึง! อุดมคติวงแหวนโฟกัสจะแสดงขึ้นเฉพาะเมื่อผู้ใช้ตั้งใจที่จะใช้แป้นพิมพ์

ใช้: เน้นที่มองเห็น ปัจจุบันเป็นข้อเสนอ W3C สำหรับการออกแบบเฉพาะคีย์บอร์ดโดยใช้ CSS และรองรับใน Firefox ( caniuse ) จนกระทั่งเบราว์เซอร์อื่น ๆ ที่สำคัญสนับสนุนคุณสามารถใช้ที่แข็งแกร่งนี้polyfill

/* Remove outline for non-keyboard :focus */
*:focus:not(.focus-visible) {
  outline: none;
}

/* Optional: Customize .focus-visible */
.focus-visible {
  outline-color: lightgreen;
}

ฉันยังเขียนโพสต์รายละเอียดเพิ่มเติมในกรณีที่คุณต้องการข้อมูลเพิ่มเติม


1
ใจคุณ AFAIK มันไม่จำเป็นที่จะต้องoutlineเป็นเช่นนี้ตราบเท่าที่: เน้นรัฐจะทำให้มองเห็นได้อย่างชัดเจนผ่านทางวิธีการอื่น ๆ บางอย่างเช่นborder, background-color, box-shadowฯลฯ
Mar Örlygsson

2
คำตอบที่ดีที่สุด! โพสต์ของคุณมีค่าต่อการอ่าน (และตอนนี้ฉันกำลังดูบล็อกของคุณที่เหลืออยู่ package) แพคเกจ npm ที่โฟกัสได้ซึ่งมองเห็นได้นั้นเป็นที่ ๆ เหมาะสมสำหรับตอนนี้
FelDev

1
นี่เป็นทางออกที่ดีที่สุดอย่างแน่นอน ด้วยโค้ดเพียงไม่กี่บรรทัดฉันก็สามารถกำจัดเส้นขอบสีน้ำเงินที่น่ารำคาญเมื่อคลิกขณะที่ใช้แป้นพิมพ์ ขอบคุณ!
pesta

1
ข้อมูลนี้ถูกต้องหรือไม่ ดูเหมือนว่าตัวเลือกนี้ได้รับการสนับสนุนใน Chrome ไม่ใช่ Firefox developer.mozilla.org/en-US/docs/Web/CSS/...
Kevin Suttle

ดูเหมือนว่าใน Firefox ตัวเลือกถูกเรียก :-moz-focusringแต่ตรงกันข้ามกับสิ่งที่เอกสารบอกว่าจะไม่แยกความแตกต่างระหว่างโฟกัสของการคลิกและแท็บ ใน Chrome ตอนนี้คุณต้องเปิดใช้งานการตั้งค่าสถานะเฉพาะเพื่อให้ทำงานได้
phil294

12

เพิ่มสิ่งนี้ในไฟล์ CSS ของคุณ

*{
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
}

3
ขอบคุณ. ใช้งานได้ แต่ MDN พูดว่า: คุณลักษณะนี้ไม่ได้มาตรฐานและไม่ได้อยู่ในการติดตามมาตรฐาน ห้ามใช้กับไซต์ที่ผลิตซึ่งหันหน้าไปทางเว็บ: มันจะไม่ทำงานสำหรับผู้ใช้ทุกคน อาจมีความไม่ลงรอยกันระหว่างการใช้งานกับพฤติกรรมที่อาจมีการเปลี่ยนแปลงในอนาคต
Behnam Mohammadi

8

ใช้สิ่งนี้:

:active {
    outline:none;
}

หรือถ้าไม่ได้ผล:

:active {
   outline:none !important;
}

สิ่งนี้ใช้ได้สำหรับฉัน (FF และ Chrome อย่างน้อย) แทนการกำหนดเป้าหมาย:focusของรัฐเพียงเป้าหมาย:activeรัฐและที่จะเอาเน้นเสือกความสุนทรีย์ในเบราว์เซอร์ของคุณเมื่อผู้ใช้คลิกลิงก์ แต่จะยังคงสถานะโฟกัสไว้เมื่อผู้ใช้ที่มีแท็บความพิการหรือแท็บเลื่อนผ่านหน้าเว็บ ทั้งสองฝ่ายมีความสุข :)


4
เหตุใดจึงต้องแก้ไขคำตอบของฉันหากคุณจะแทนที่รุ่นย่อของฉันด้วยรหัสเดียวกัน แต่ขยายออกไป? แต่นั่นก็ไม่ได้อธิบายให้ดีขึ้นสำหรับผู้ใช้ คุณได้รับเครดิตคำตอบสำหรับสิ่งนั้นหรือเปล่า? ฮ่า ๆ ...
Chuk

3
จุดของเว็บไซต์ StackExchange เช่นนี้คือการมีคำตอบที่ช่วยให้ทุกคนที่อ่านพวกเขาเข้าใจ สำหรับจุดประสงค์นั้นคำตอบที่มีรหัสย่อตัวย่อจะไม่เป็นประโยชน์เท่าโค้ดที่จัดรูปแบบที่อ่านได้ การปรับปรุงคำตอบโดยทำให้สามารถอ่านได้มากขึ้นเป็นวิธีปกติในการปรับปรุงไซต์สำหรับทุกคน
bignose

7

สำหรับปัญหานี้:

ป้อนคำอธิบายรูปภาพที่นี่

ใช้สิ่งนี้:

   *{
         -webkit-tap-highlight-color: rgba(0,0,0,0);
         -webkit-tap-highlight-color: transparent; /* For some Androids */
    }

ผลลัพธ์:

ป้อนคำอธิบายรูปภาพที่นี่


7

สำหรับทุกคนที่ใช้ Bootstrap และมีปัญหานี้พวกเขาใช้: แอ็คทีฟ: โฟกัสและเพียงแค่: แอ็คทีฟและ: โฟกัสดังนั้นคุณจะต้อง:

element:active:focus {
    outline: 0;
}

หวังว่าจะช่วยให้ใครบางคนคิดว่าเวลาหนึ่งออกไปกระแทกหัวของฉันด้วยความสงสัยเล็กน้อยว่าทำไมเรื่องง่าย ๆ ไม่ทำงาน


5

โซลูชันส่วนใหญ่จะไม่ทำงานหากคุณใช้ Bootstrap 4.1 และอาจเป็นเวอร์ชั่นอื่น หลังจากการต่อสู้ที่หัวมากฉันค้นพบว่าคุณจำเป็นต้องใช้คลาสไม่มีเงา :

<button class="btn shadow-none">Bootstrap (4.1) button without shadow</button>


4

การแก้ไขสำหรับ Chrome และเบราว์เซอร์อื่น ๆ

button:focus { outline: none !important; box-shadow: none !important; }

3

ลองใช้รหัสนี้สำหรับองค์ประกอบทั้งหมดที่มีปัญหาเส้นขอบสีน้ำเงิน

*{
outline: none;
}

หรือ

*{
outline-style: none;
}

3

อีกวิธีหนึ่งในการแก้ปัญหาการเข้าถึงที่ไม่ได้กล่าวถึงในที่นี้คือการใช้Javascriptเล็กน้อย เครดิตไปที่บล็อกโพสต์อันชาญฉลาดนี้จากแฮ็คนููน: https://hackernoon.com/removing-that-ugly-focus-ring-and-keeping-it-too-6c8727fefcd2

วิธีการที่นี่เรียบง่าย แต่มีประสิทธิภาพ: การเพิ่มคลาสเมื่อผู้คนเริ่มใช้แท็บ - คีย์เพื่อสำรวจหน้า (และสามารถลบออกได้เมื่อสลับไปที่เมาส์อีกครั้งจากนั้นคุณสามารถใช้คลาสนี้เพื่อแสดงเค้าร่างโฟกัสหรือไม่ .

function handleFirstTab(e) {
    if (e.keyCode === 9) { // the "I am a keyboard user" key
        document.body.classList.add('user-is-tabbing');
        window.removeEventListener('keydown', handleFirstTab);
    }
}

window.addEventListener('keydown', handleFirstTab);


2

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

input:focus {outline:0;}

2

จนกระทั่งเบราว์เซอร์ที่ทันสมัยจะเริ่มสนับสนุน CSS เลือก: เน้นที่มองเห็น ,
วิธีที่ง่ายที่สุดและอาจจะดีที่สุดในการบันทึกการเข้าถึงคือการลบโฟกัสนี้หากินเฉพาะสำหรับผู้ใช้เมาส์และจะบันทึกไว้สำหรับผู้ใช้แป้นพิมพ์ :

1. ใช้โพลีฟิลเล็ก ๆ นี้ (ประมาณ 10kb): https://github.com/WICG/focus-visible
2. เพิ่มโค้ดถัดไปที่ใดที่หนึ่งใน css ของคุณ:

.js-focus-visible :focus:not(.focus-visible) {
  outline: none;
}

การสนับสนุนเบราว์เซอร์ของตัวเลือก css4: สามารถมองเห็นโฟกัสได้ในขณะนี้อ่อนแอมาก:
https://caniuse.com/#search=focus-visible



1

นี่เป็นปัญหาในตระกูล Chrome และมีอยู่ตลอดไป

มีการยกข้อผิดพลาดhttps://bugs.chromium.org/p/chromium/issues/detail?id=904208

มันสามารถแสดงที่นี่: https://codepen.io/anon/pen/Jedvwjทันทีที่คุณเพิ่มเส้นขอบให้กับปุ่มที่เหมือนปุ่มใด ๆ (พูดว่า role = "button" ถูกเพิ่มลงในแท็กตัวอย่างเช่น) Chrome ทำให้เกิดความยุ่งเหยิง และตั้งค่าสถานะโฟกัสเมื่อคุณคลิกด้วยเมาส์

ฉันขอแนะนำให้ใช้โปรแกรมแก้ไขนี้: https://github.com/wicg/focus-visible https://github.com/wicg/focus-visible

เพียงทำต่อไปนี้

npm install --save focus-visible

เพิ่มสคริปต์ใน html ของคุณ:

<script src="/node_modules/focus-visible/dist/focus-visible.min.js"></script>

หรือนำเข้าสู่ไฟล์หลักของคุณหากใช้ webpack หรืออะไรที่คล้ายกัน:

import 'focus-visible/dist/focus-visible.min';

จากนั้นใส่สิ่งนี้ลงในไฟล์ css ของคุณ:

// hide the focus indicator if element receives focus via mouse, but show on keyboard focus (on tab).
.js-focus-visible :focus:not(.focus-visible) {
  outline: none;
}

// Define a strong focus indicator for keyboard focus.
// If you skip this then the browser's default focus indicator will display instead
// ideally use outline property for those users using windows high contrast mode
.js-focus-visible .focus-visible {
  outline: magenta auto 5px;
}

คุณสามารถตั้งค่า:

button:focus {outline:0;}

แต่ถ้าคุณมีผู้ใช้จำนวนมากคุณจะเสียเปรียบผู้ที่ไม่สามารถใช้เมาส์หรือผู้ที่ต้องการใช้แป้นพิมพ์เพื่อความเร็ว


1

ฉันมีปัญหาเดียวกันกับ bootstrap ฉันแก้ไขด้วยโครงร่างและกล่องเงา

.btn:focus, .btn.focus {
    outline: none !important;
    box-shadow: 0 0 0 0 rgba(0, 123, 255, 0) !important; // or none
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.