ส่วนใหญ่ฉันไม่ได้กังวลเกี่ยวกับเรื่องนี้ แต่ฉันมีภาพหมุนและถ้าฉันคลิกที่ div ถัดไปและก่อนหน้าอย่างรวดเร็วพวกเขาจะถูกไฮไลต์ใน Chrome
ฉันลองใช้โครงร่าง: ไม่มี แต่ไม่มีผล มีวิธีแก้ไขหรือไม่?
ส่วนใหญ่ฉันไม่ได้กังวลเกี่ยวกับเรื่องนี้ แต่ฉันมีภาพหมุนและถ้าฉันคลิกที่ div ถัดไปและก่อนหน้าอย่างรวดเร็วพวกเขาจะถูกไฮไลต์ใน Chrome
ฉันลองใช้โครงร่าง: ไม่มี แต่ไม่มีผล มีวิธีแก้ไขหรือไม่?
คำตอบ:
นอกเหนือจากลิงก์ที่ Floremin จัดเตรียมไว้ซึ่งจะล้างการเลือกข้อความโดยใช้ JavaScript เพื่อ "ล้าง" การเลือกคุณยังสามารถใช้ CSS บริสุทธิ์เพื่อทำสิ่งนี้ได้ CSS อยู่ที่นี่ ...
.noSelect {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
เพียงเพิ่มclass="noSelect"
แอตทริบิวต์ให้กับองค์ประกอบที่คุณต้องการใช้คลาสนี้ ฉันขอแนะนำให้ลองใช้โซลูชัน CSS นี้ ไม่มีอะไรผิดปกติกับการใช้ JavaScript ฉันแค่เชื่อว่านี่อาจจะง่ายกว่านี้และทำความสะอาดสิ่งต่างๆในโค้ดของคุณเล็กน้อย
สำหรับ chrome บน Android
-webkit-tap-highlight-color: transparent;
เป็นกฎเพิ่มเติมที่คุณอาจต้องการทดลองเพื่อรองรับ Android
user-select
webkit-user-select
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-tap-highlight-color: transparent;
เป็นส่วนสำคัญของ Chrome
สำหรับ Chrome บน Android คุณสามารถใช้คุณสมบัติ CSS -webkit-tap-highlight-color :
-webkit-tap-highlight-color เป็นคุณสมบัติ CSS ที่ไม่ได้มาตรฐานซึ่งกำหนดสีของไฮไลต์ที่ปรากฏบนลิงก์ในขณะที่มีการแตะ การไฮไลต์ระบุให้ผู้ใช้ทราบว่าการแตะของพวกเขาได้รับการยอมรับสำเร็จและระบุว่าพวกเขากำลังแตะองค์ประกอบใด
หากต้องการลบการไฮไลต์ทั้งหมดคุณสามารถตั้งค่าเป็นtransparent
:
-webkit-tap-highlight-color: transparent;
โปรดทราบว่าสิ่งนี้อาจส่งผลต่อความสามารถในการเข้าถึง: ดูoutlinenone.com
-webkit-tap-highlight-color: transparent;
ดูเหมือนจะทำงานเกินไป
ฉันใช้ Chrome เวอร์ชัน 60 และคำตอบ CSS ก่อนหน้านี้ไม่ได้ผล
ฉันพบว่า Chrome กำลังเพิ่มไฮไลต์สีน้ำเงินผ่านoutline
สไตล์ การเพิ่ม CSS ต่อไปนี้แก้ไขให้ฉัน:
:focus {
outline: none !important;
}
user-select:none
แต่บางครั้งแม้ปิดuser-select
และtouch-callout
เปิดอยู่ก็cursor: pointer;
อาจทำให้เกิดเอฟเฟกต์นี้ได้ดังนั้นเพียงแค่ตั้งค่าcursor: default;
และใช้งานได้
cursor: pointer;
ทำให้เกิดไฮไลต์จริงๆ แต่-webkit-tap-highlight-color: transparent;
เป็นวิธีการแก้ปัญหาที่เป็นสากลมากขึ้น
-webkit-tap-highlight-color
ก่อนที่จะติดฉลากเป็นโซลูชันที่ค่อนข้างเป็นสากล : developer.mozilla.org/en-US/docs/Web/CSS/…
cursor: default
ทำเคล็ดลับสำหรับฉันเมื่อไม่มีอะไรได้ผล
ลองสร้างตัวจัดการสำหรับเหตุการณ์ที่เลือกในองค์ประกอบเหล่านั้นและในตัวจัดการคุณสามารถล้างการเลือกได้
ดูที่นี้:
ล้างการเลือกข้อความด้วย JavaScript
เป็นตัวอย่างของการล้างการเลือก คุณจะต้องแก้ไขให้ใช้งานได้เฉพาะกับองค์ประกอบที่คุณต้องการเท่านั้น
สิ่งนี้ได้ผลดีที่สุดสำหรับฉัน:
.noSelect:hover {
background-color: white;
}