CSS: วิธีการลบองค์ประกอบหลอก (หลังจาก, ก่อน, ... )?


236

ฉันต้องการใช้สวิตช์สำหรับเลย์เอาต์ของแท็กวรรคบนหน้าเว็บ

ฉันใช้ pseudoelement หลัง:

p:after {content: url("../img/paragraph.gif");}

ตอนนี้ฉันต้องลบรหัส CSS นี้ออกจากหน้า

สิ่งนี้สามารถทำได้อย่างง่ายดาย?

ฉันต้องการเพิ่ม:

  • jQuery มีการใช้งานบนหน้านี้แล้ว

  • และฉันไม่ต้องการรวมหรือลบไฟล์ที่มี CSS


คำตอบ:


455
p:after {
   content: none;
}

ไม่มีค่าอย่างเป็นทางการในการตั้งค่าเนื้อหาถ้าระบุเป็นอะไร

http://www.w3schools.com/cssref/pr_gen_content.asp


2
สิ่งนี้จริง ๆ แล้วล้างสไตล์อื่น ๆ ที่เกี่ยวข้องกับเนื้อหาหรือไม่ดังนั้นแม้ว่าคุณจะมีช่องว่างภายในและระยะห่างที่กำหนดไว้
Ryan Williams

นี่ควรเป็นคำตอบที่ยอมรับได้ ใช้เนื้อหา: ''; อาจนำไปสู่ผลลัพธ์ที่ไม่คาดคิดเมื่อพยายามแทนที่แอตทริบิวต์ของเนื้อหาที่กำหนดไว้ก่อนหน้า
Roy Milder

คุณทำdisplay: noneไม่ได้เหรอ
MDTech.us_MAN

@ MDTech.us_MAN ใช่คุณสามารถทำ "display: none" แต่มันจะยังคงอยู่ในต้นไม้ DOM การตั้งค่าเนื้อหา: ไม่มีแม้กระทั่งวางไว้ในต้นไม้ DOM (คุณสามารถตรวจสอบได้ผ่านผู้ตรวจสอบ DOM ของ Chrome)
kumarharsh

29

คุณต้องเพิ่มกฎ css ที่ลบเนื้อหาหลัง ( ผ่านคลาส )


การอัปเดตเนื่องจากมีความคิดเห็นที่ถูกต้อง

วิธีที่ถูกต้องมากขึ้นในการลบ / ปิดการใช้งาน:afterกฎอย่างสมบูรณ์คือการใช้

p.no-after:after{content:none;}

เป็นกิลเลียน Lo วงศ์ตอบ


คำตอบเดิม

คุณต้องเพิ่มกฎ css ที่ลบเนื้อหาหลัง ( ผ่านคลาส )

p.no-after:after{content:"";}

และเพิ่มคลาสนั้นให้กับคุณpเมื่อคุณต้องการด้วยบรรทัดนี้

$('p').addClass('no-after'); // replace the p selector with what you need...

ตัวอย่างการทำงานที่: http://www.jsfiddle.net/G2czw/



9

ในฐานะที่เป็นที่กล่าวถึงในคำตอบที่กิลเลียนของกำหนดnoneที่จะcontentแก้ปัญหา:

p::after {
   content: none;
}

ทราบว่าในCSS3 , W3Cแนะนำให้ใช้สองทวิภาค ( ::) เพื่อหลอกองค์ประกอบเหมือนก่อนหรือหลัง

จากMDN web doc บนองค์ประกอบเทียม

หมายเหตุ:ตามกฎแล้ว::ควรใช้โคลอนคู่ ( ) แทนโคลอนเดียว ( :) สิ่งนี้แยกคลาสหลอกออกจากองค์ประกอบหลอก อย่างไรก็ตามเนื่องจากความแตกต่างนี้ไม่ปรากฏในข้อมูลจำเพาะของ W3C รุ่นเก่าเบราว์เซอร์ส่วนใหญ่จึงสนับสนุนทั้งไวยากรณ์เพื่อความเข้ากันได้ โปรดทราบว่า::selectionจะต้องเริ่มต้นด้วยเครื่องหมายทวิภาคสองครั้ง ( ::) เสมอ


5

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


0

มีปัญหาเดียวกันไม่กี่นาทีที่ผ่านมาและcontent:none;ไม่ได้ทำงาน แต่เพิ่มcontent:none !important;และdisplay:none !important;ทำงานให้ฉัน


-3
p:after {
  content: none;
}

นี่เป็นวิธีลบ:afterและคุณสามารถทำเช่นนั้นได้:before


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