ฉันจะค้นหากฎ CSS ที่ไม่ได้ใช้ / ไม่ได้ใช้ในสไตล์ชีทได้อย่างไร


18

ฉันมีไฟล์ CSS และไฟล์ HTML ขนาดใหญ่ ฉันต้องการทราบว่ากฎใดที่ไม่ได้ใช้ในขณะที่แสดงไฟล์ HTML มีเครื่องมือสำหรับสิ่งนี้หรือไม่?

ไฟล์ CSS มีการพัฒนาในช่วงไม่กี่ปีที่ผ่านมาและจากสิ่งที่ฉันรู้ว่าไม่มีใครได้ลบอะไรออกไปจากมัน - ผู้คนเพิ่งเขียนกฎการเอาชนะใหม่ครั้งแล้วครั้งเล่า

แก้ไข: แนะนำให้ใช้ตัวเลือก Dust-Meหรือเครื่องมือประสิทธิภาพเว็บเพจของ Chrome แต่พวกเขาทั้งคู่ทำงานในระดับของตัวเลือกและไม่ใช่กฎแต่ละข้อ ฉันมีหลายกรณีที่กฎในตัวเลือกถูกแทนที่อยู่เสมอ - และนี่คือสิ่งที่ฉันต้องการกำจัดส่วนใหญ่ ตัวอย่างเช่น:

body { color: white; padding: 10em; }
h1 { color: black; }
p { color: black; }
...
ul { color: black; }

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

แก้ไข: และอีกกรณีของการปกครองที่ไร้ประโยชน์: เมื่อมันซ้ำกับที่มีอยู่โดยไม่ต้องเปลี่ยนอะไร

a       { margin-left: 5px; color: blue; }
a:hover { margin-left: 5px; color: red; }

ฉันมีความสุขที่จะกำจัดที่สองmargin-left... อีกครั้งสำหรับฉันดูเหมือนว่าเครื่องมือเหล่านั้นไม่พบสิ่งดังกล่าว

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

ขอขอบคุณ,


คุณสามารถใช้เครื่องมือที่เหมาะสมเป็นโอกาส: เนื่องจากคุณเข้าใจในสิ่งที่คุณต้องการคุณอาจเป็นบุคคลที่ดีที่สุดในการสร้างเครื่องมือดังกล่าว คุณสามารถตรวจสอบรหัสของเครื่องมือที่มีอยู่สำหรับแนวคิดและเทคนิคแล้วสร้างบางสิ่งที่ใช้งานได้ในระดับของกฎมากกว่าตัวเลือก โอกาสของคุณในชื่อเสียงและโชคลาภ! ... อืม, อาจจะแค่ชื่อเสียง;)
iconoclast

@Brandon: คำถามนี้เพียงแค่กด“คำถามที่น่าสังเกตเครื่องหมาย” ... ดังนั้นคุณอาจจะมีสิทธิ์ :-)
liori

คำตอบ:


8

Dust Me Selecters Firefox extension

ในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Chrome คุณสามารถใช้เครื่องมือประสิทธิภาพของเว็บเพจเพื่อค้นหากฎ CSS ที่ไม่ได้ใช้


เยี่ยมมากฉันจะตรวจสอบทันที!
liori

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

2
@liori: ฉันไม่คิดว่ามันเป็นไปได้อย่างน่าเชื่อถือ ในตัวอย่างมาร์จิ้นกฎมาร์จิ้นที่สองอาจดูฟุ่มเฟือย แต่มีความจำเพาะสูงกว่าและสามารถแทนที่กฎในภายหลัง ตัวอย่างเช่นถ้าชั้น.abcมีระยะห่างที่แตกต่างกันฉัน<a class="abc">จะเปลี่ยนอัตรากำไรขั้นต้นเมื่อเลื่อนเมาส์ไปที่ฉันคิดว่า ตอนนี้อาจไม่ใช่สิ่งที่คุณตั้งใจ แต่อาจเป็นไปได้และคุณจะไม่สามารถลบกฎที่ซ้ำกันออกไปได้
DisgruntledGoat

@DisgruntledGoat: ฉันกำลังคิดเกี่ยวกับกรณีของโลกปิด: ถ้ามันไม่ได้ระบุมันไม่ได้อยู่ ดังนั้นหากไม่มีคำจำกัดความa.abcหรือไม่มี <a class="abc"/> ใน HTML ก็ไม่มีอยู่เลยฉันดำเนินงานที่ทำให้ฉันถามคำถามนี้เสร็จแล้ว กับการใช้ฮิวริสติกมาก ๆ ฉันลองใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Chrome แต่ก็ไม่ได้ช่วยอะไรฉันมากนัก
liori

5

นอกจากนี้คุณยังสามารถใช้ดูที่Unused-CSS.comเครื่องมือนี้จะสำรวจหน้าเว็บของคุณและสร้างไฟล์ CSS ที่ดีที่สุดโดยไม่ต้องเตอร์ที่ไม่ได้ใช้


4

ฉันชอบการใช้งาน CSSเสมอ มันเป็นปลั๊กอินสำหรับ Firebug และให้คุณสแกนหน้าและดูว่ามีการใช้กฎ CSS ใด มันจะสแกนอัตโนมัติและทำงานในหลาย ๆ หน้า


2

ตรวจสอบ uncss เป็นโมดูลโหนด

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

https://www.npmjs.com/package/uncss

แก้ไขหลังจากความคิดเห็น:

ฉันคิดว่าคุณกำลังขอสองสิ่งที่แตกต่าง:

  1. ลบกฎที่ไม่ได้ใช้ออกโดยอัตโนมัตินี่เป็นสิ่งที่ uncss สามารถทำเพื่อคุณได้ ฉันได้ทำเครื่องมือนี้ด้วย CSS byebye แต่มันไม่อัตโนมัติเหมือนที่คุณถาม: https://www.npmjs.com/package/css-byebye

  2. ปรับสไตล์ชีทให้เหมาะสมโดยที่กฎอาจถูกผสาน / ทำให้ง่ายขึ้น

ในกรณีนั้นฉันขอแนะนำเครื่องมือสองอย่างที่ทำสิ่งนี้:

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

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

นี่คือสิ่งที่พวกเขาพูดสำหรับ CSSO (กรอกข้อมูลที่นี่: https://en.bem.info/tools/optimizers/csso/ )

การเพิ่มประสิทธิภาพโครงสร้าง:

  • การผสานบล็อกที่มีตัวเลือกที่เหมือนกัน
  • การผสานบล็อกที่มีคุณสมบัติเหมือนกัน
  • การลบคุณสมบัติที่แทนที่
  • การกำจัดคุณสมบัติจดชวเลข
  • การกำจัดตัวเลือกซ้ำ
  • การรวมบล็อกบางส่วน
  • การแบ่งบางส่วนของบล็อก
  • การลบ ruleset ที่ว่างเปล่าและ at-rule
  • การลดขนาดของระยะขอบและคุณสมบัติเสริมภายใน

ตัดสินจากหน้าหลักมันทำงานได้ในระดับตัวเลือก สามารถลบกฎในกรณีตัวอย่างทั้งสองที่ฉันพูดถึงในคำถาม
liori

ฉันได้แก้ไขคำตอบของฉัน ฉันทดสอบตัวอย่างแรกของคุณด้วย CSSO web interface: result: body {color: #fff; padding: 10em} h1, p, ul {color: # 000}
Kev

1

@ John: เครื่องมือที่ยอดเยี่ยมขอบคุณสำหรับลิงค์

@liori: ฉันขอแนะนำFirefox ปลั๊กอินสำหรับนักพัฒนาเว็บที่ให้คุณแสดงชื่อองค์ประกอบ / คุณสมบัติแก้ไข css แบบเรียลไทม์ (ไม่ได้เขียนลงในไฟล์ css ของคุณ) เพื่อให้คุณสามารถแก้ไขและทดสอบการเปลี่ยนแปลง css โดยไม่ต้อง faff ของต้องบันทึกและอัปโหลด css ของคุณตลอด 3 วินาที + โหลดคุณสมบัติเพิ่มเติม

นอกจากนี้ยังมีตัวตรวจสอบ DOM ที่ยอดเยี่ยมมากที่เสียบเข้ากับ Firebug ซึ่งเสียบเข้ากับและเหมาะสำหรับการจัดเรียง Javascript


0

จริงๆแล้ว John เป็นเบราว์เซอร์ Firefox Developer Edition ใหม่ดีกว่าการใช้ Firebug หรือยูทิลิตี้ Firefox ลองดูแล้วคุณจะไม่ผิดหวังแน่นอน!

https://www.mozilla.org/en-US/firefox/developer/?utm_medium=paidsearch&utm_source=google&utm_campaign=dev-sem-q1-2015

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