ฉันจะลบโครงร่างรอบ ๆ ภาพไฮเปอร์ลิงก์ได้อย่างไร


98

เมื่อเราใช้การเปลี่ยนข้อความโดยใช้ CSS text-indent:-9999pxและให้ลบทดสอบเยื้องคือ จากนั้นเมื่อเราคลิกที่ลิงค์นั้นเส้นประจะปรากฏดังในภาพตัวอย่างด้านล่าง ทางออกสำหรับสิ่งนี้คืออะไร?

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


3
โปรดอย่าลบออกเนื่องจากมีไว้เพื่อประโยชน์ในการเข้าถึง


สำเนา: stackoverflow.com/questions/1142819/… (แต่โปรดดูความคิดเห็นเกี่ยวกับการเข้าถึงด้านบน!)
JohnB

ฉันเข้าสู่สิ่งนี้โดยใช้คำค้นหาที่ไม่ถูกต้อง ฉันขอแนะนำให้ทุกคนที่อ่านสิ่งนี้ระวังขีดเส้นใต้
JGallardo

คำตอบ:


171

สำหรับ Remove outline สำหรับ anchor tag

a {outline : none;}

ลบโครงร่างจากลิงก์รูปภาพ

a img {outline : none;}

ลบเส้นขอบออกจากลิงก์รูปภาพ

img {border : 0;}

1
ขอบคุณค้นพบ นั่นรบกวนฉันมานานแล้วไม่ใช่แค่ภาพไฮเปอร์ลิงก์ใน IE แต่เป็นภาพปกติที่ไม่มีไฮเปอร์ลิงก์ มันน่ารำคาญจนกระทั่งฉันพบคำตอบของคุณ (ผ่าน Google ไม่ใช่ Stack ผิดปกติพอสมควร)
Jason Weber

25

คุณสามารถใช้คุณสมบัติ CSS "outline" และค่า "none" บนองค์ประกอบจุดยึด

a {
outline: none;
}

หวังว่าจะช่วยได้


18

สำหรับ Internet Explorer 9:

a:active, a:focus { 
 outline: none; 
 ie-dummy: expression(this.hideFocus=true);
}

ที่มา: http://social.msdn.microsoft.com/Forums/en-HK/ieextensiondevelopment/thread/1023adfd-bd73-47ac-ba9c-2bad19ac583a


สิ่งนี้เป็นเพียงสิ่งเดียวเมื่อทำงานใน IE อย่างถูกต้องว่าเคยทำให้หน้ากะพริบเมื่อโหลด
Alexei Tenitski

9

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

(การเก็บไว้ในตำแหน่งยังช่วยให้ผู้ใช้ระดับสูงที่ไม่ชอบใช้เมาส์)


เราไม่ได้ลบ: สไตล์โฟกัส เพียงแค่เพิ่มโครงร่างสไตล์: ไม่มีเลย สไตล์เริ่มต้นอื่น ๆ จะอยู่ที่นั่น
Wasim Shaikh

1
แล้ว "สไตล์เริ่มต้นอื่น ๆ " คืออะไร? เท่าที่ฉันรู้มีเพียงเส้นเดียวคือเส้นประ
Wolfr

1
โอเค .. เราอาจจะใช้สไตล์ที่แตกต่างสำหรับโปรแกรมอ่านหน้าจอก็ได้ นี่อาจเป็นโซลูชันสำหรับการช่วยสำหรับการเข้าถึง
Wasim Shaikh

ไม่เพียง แต่โปรแกรมอ่านหน้าจอจะใช้โครงร่างเท่านั้นบางคนยังชอบท่องเว็บไซต์ที่ใช้แป้นพิมพ์
user2019515

8

มีเอฟเฟกต์เส้นขอบเหมือนกันในFirefoxและInternet Explorer (IE)ซึ่งจะปรากฏให้เห็นเมื่อคุณคลิกที่ลิงค์

รหัสนี้จะแก้ไขเฉพาะ IE:

a:active { outline: none; }.

และสิ่งนี้จะแก้ไขทั้ง Firefox และ IE :

:active, :focus { outline: none; -moz-outline-style: none; }

ควรเพิ่มโค้ดสุดท้ายลงในสไตล์ชีตของคุณหากคุณต้องการลบเส้นขอบลิงก์ออกจากไซต์ของคุณ


1
ขอบคุณไมค์อันนี้ตอบได้ดีจริงๆ แต่การใช้ -moz-outline-style: none; ไม่ใช่ CSS ที่ถูกต้อง ยังคงเป็นตัวเลือกที่ดี
Wasim Shaikh


3

ฉันหวังว่านี่จะเป็นประโยชน์สำหรับคุณบางคนสามารถใช้เพื่อลบโครงร่างจากลิงก์รูปภาพและแฟลชและจาก MSIE 9:

    a, a:hover, a:active, a:focus, a img, object, embed {
    outline: none;
    ie-dummy: expression(this.hideFocus=true); /* MSIE - Microsoft Internet Explorer 9 remove outline */
    }

โค้ดด้านล่างนี้สามารถซ่อนขอบรูปภาพได้:

    img {
    border: 0;
    }

หากคุณต้องการรองรับ Firefox 3.6.8 แต่ไม่ใช่ Firefox 4 ... การคลิกที่ประเภทอินพุต = รูปภาพสามารถสร้างเส้นประได้เช่นกันหากต้องการลบออกใน Firefox เวอร์ชันเก่าสิ่งต่อไปนี้จะทำเคล็ดลับ:

   input::-moz-focus-inner { 
   border: 0; 
   }

IE 9 ไม่อนุญาตให้ลบเส้นประรอบ ๆ ลิงก์ในบางกรณีเว้นแต่คุณจะรวมเมตาแท็กนี้ระหว่างและในหน้าของคุณ:

     <meta http-equiv="X-UA-Compatible" content="IE=9" />

@Sparky ฉันเชื่อว่าเราควรเสนอคำตอบที่ตอบคำถามโดยการบอกเกี่ยวกับวิธีการทำสิ่งนี้ในเบราว์เซอร์ที่ใช้กันมากที่สุดรวมถึง MSIE เนื่องจากเป็นเบราว์เซอร์ที่ใช้กันอย่างแพร่หลายในปี 2014 และข้อมูลเกี่ยวกับเมตาแท็ก MS และ CSS ที่สามารถใช้ MSIE เท่านั้นเป็นเพียงส่วนหนึ่งของคำตอบของฉันที่ให้การสนับสนุนเบราว์เซอร์ส่วนใหญ่รวมถึง MSIE ... คำถามไม่เกี่ยวกับ W3C Valid HTML หรือ CSS ...
jagb

@Sparky +1 เพราะนั่นเป็นเรื่องจริงและเราไม่ควรเชื่อถือ MS css / html / เมตาแท็กเนื่องจากไม่ค่อยคิดถึงมาตรฐาน W3C .... ฉันไม่ได้บอกว่าเป็นการดีที่จะใช้เมตาแท็กของ Microsoft และรหัส CSS เป็น เฉพาะเบราว์เซอร์ที่รองรับรหัส MS คือ MSIE และเบราว์เซอร์ MS ที่เกี่ยวข้อง ตามที่ร้องขอคำตอบสำหรับคำถาม "ฉันจะลบโครงร่างรอบ ๆ ภาพไฮเปอร์ลิงก์ได้อย่างไร"
jagb

ฉันเพียงแค่แสดงความคิดเห็นโดยระบุข้อสังเกตของฉัน
Sparky

อย่างไรก็ตามฉันสงสัยว่าคุณสามารถอ้างแหล่งที่มาสำหรับการอ้างสิทธิ์ของคุณได้หรือไม่ว่าเมตาแท็กนี้จำเป็นใน"บางกรณี"หรือไม่ และกรณีเหล่านั้นอาจเป็นอย่างไร
Sparky

โปรดอ่านเว็บไซต์ของ Microsoftเพื่อดูข้อมูลบางส่วน แต่ไม่ใช่ทั้งหมด .. มีคำถามมากมายที่นี่ใน Stack Overflow บางคำถามสามารถแสดงอยู่ข้างคำถามนี้ในแถบด้านขวา .. ในบางกรณี MSIE / EDGE ไม่สามารถทำได้ แสดงเนื้อหาของหน้าเนื่องจากเบราว์เซอร์ไม่รองรับใน "บางกรณี" เมตาแท็ก X-UA-Compatible มีประโยชน์สำหรับผู้เยี่ยมชม MSIE / EDGE มีข้อมูลเพิ่มเติมการแก้ไขที่จะใช้งานได้อยู่ที่นี่ฉันหวังว่านี่จะเป็นข้อมูลที่เป็นประโยชน์สำหรับคุณ
jagb




1

คุณสามารถใส่overflow:hiddenลงในคุณสมบัติที่มีการเยื้องข้อความและเส้นประที่ทอดยาวออกจากหน้าจะหายไป

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

a:active { outline: none; }

โดยส่วนตัวฉันจะใช้แอตทริบิวต์นี้เท่านั้นราวกับว่า:hoverแอตทริบิวต์มีคุณสมบัติ css เหมือนกันมันจะป้องกันไม่ให้เค้าโครงแสดงสำหรับผู้ที่ใช้แป้นพิมพ์สำหรับการนำทาง

หวังว่านี่จะช่วยแก้ปัญหาของคุณได้



0

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

นอกจากนี้ฉันไม่เห็นประสบการณ์นี้ในลักษณะเดียวกันใน Firefox และ Safari ดังนั้นอาร์กิวเมนต์นี้ดูเหมือนจะเป็นสำหรับ IE เป็นส่วนใหญ่ ทุกอย่างขึ้นอยู่กับฐานผู้ใช้ของคุณและระดับความรู้ - วิธีที่พวกเขาใช้ไซต์

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



0

รูปภาพใด ๆ ที่มีลิงก์จะมีเส้นขอบรอบ ๆ รูปภาพเพื่อช่วยระบุว่าเป็นลิงก์ที่มีเบราว์เซอร์รุ่นเก่า การเพิ่ม border = "0" ลงในแท็ก IMG HTML ของคุณจะป้องกันไม่ให้รูปภาพนั้นมีเส้นขอบรอบรูปภาพ

อย่างไรก็ตามการเพิ่ม border = "0" ให้กับทุกภาพไม่เพียง แต่จะเสียเวลา แต่ยังช่วยเพิ่มขนาดไฟล์และเวลาในการดาวน์โหลด หากคุณไม่ต้องการให้รูปภาพของคุณมีเส้นขอบให้สร้างกฎ CSS หรือไฟล์ CSS ที่มีโค้ดด้านล่างนี้

img {สไตล์เส้นขอบ: ไม่มี; }


0

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

ฉันขอแนะนำให้มี StyleSheet แยกต่างหาก (ตัวอย่างเช่นใช้ปลั๊กอิน' Lazyest StyleSheet ') และป้อน CSS ต่อไปนี้ภายในเพื่อแทนที่รูปแบบการบังคับปลั๊กอิน (หรือธีม) ที่มีอยู่:

a:hover,a:active,a:link {
    outline: 0 !important;
    text-decoration: none !important;
}

การเพิ่ม ' ! important ' ลงในกฎเฉพาะจะทำให้สิ่งนี้มีความสำคัญในการสร้างแม้ว่ากฎนั้นอาจจะอยู่ที่อื่นก็ตาม (ไม่ว่าจะเป็นในปลั๊กอินธีม ฯลฯ )

ซึ่งจะช่วยประหยัดเวลาในการพัฒนา แน่นอนว่าคุณสามารถขุดหาแหล่งที่มาดั้งเดิมได้ แต่เมื่อคุณทำงานในหลาย ๆ โปรเจ็กต์หรือจำเป็นต้องทำการอัปเดต (ซึ่งสามารถลบล้างการเปลี่ยนแปลงของคุณได้ [ ไม่แนะนำ! ]) หรือเพิ่มปลั๊กอินหรือธีมใหม่นี่เป็นวิธีที่ดีที่สุด ขอความช่วยเหลือเพื่อประหยัดเวลา

หวังว่านี่จะช่วย ... สันติภาพ!


0

หากวิธีแก้ปัญหาข้างต้นไม่ได้ผลสำหรับทุกคน ลองดูเช่นกัน

a {
 box-shadow: none;
}

-9

ใช่เราสามารถใช้ได้ CSS รีเซ็ตเป็นa {outline:none}และด้วย


a:focus, a:active {outline:none} สำหรับแนวทางปฏิบัติที่ดีที่สุดในการรีเซ็ต CSS ทางออกที่ดีที่สุดคือการใช้ทั่วไป:focus{outline:none}หากคุณยังมีตัวเลือกที่ดีที่สุดโปรดแบ่งปัน


20
ไม่ใช่เรื่องหยาบคายที่จะไม่ยอมรับคำตอบอื่นใดซึ่งเนื้อหาที่นำคุณไปสู่ข้อสรุปของคุณ?
Pekka
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.