2016-03-13 5 views
5

Ich bin auf der Suche nach einer PHP-Bibliothek (Skript), die in der Lage sein wird, CSS-Selektoren mit den gleichen Eigenschaften zu kombinieren. Hier ist, was ich meine:Kombinieren Css-Selektoren mit den gleichen Eigenschaften, PHP

.myclass{ 
    font-size: 14px; 
    color: red; 
} 
.something{ 
    font-size: 14px; 
    color: red; 
} 

Nach der Verarbeitung der CSS über dem Ergebnis sein sollte:

.myclass, .something{ 
    font-size: 14px; 
    color: red; 
} 

Jede Hilfe sehr geschätzt wird.

+0

gibt es einen guten PHP-Parser https://github.com/sabberworm/PHP-CSS-Parser .mit einige die Forschung Sie in der Lage sein könnte, dies zu tun. –

+0

tut etwas Eigenschaften immer gleich .myclass oder sie können unterschiedlich sein, wenn sie unterschiedlich sein können, die man überschreiben sollte? –

+0

ist Ihr CSS in einer separaten Datei? –

Antwort

7

Eine schöne PHP-Bibliothek, dies zu tun ist https://github.com/Cerdic/CSSTidy

Beispielcode:

<?php 
include('class.csstidy.php'); 

$css_code = ' 
.myclass{ 
    font-size: 14px; 
    color: red; 
} 
.something{ 
    font-size: 14px; 
    color: red; 
} 
'; 

$css = new csstidy(); 

$css->$css->set_cfg('merge_selectors', 2); 

$css->parse($css_code); 

echo $css->print->formatted(); 
?> 

Output:

.myclass,.something { 
    font-size:14px; color:red 
} 
+0

Danke. Der Code, den du zur Verfügung gestellt hast, hat den Trick nicht gemacht, aber ich habe deine Antwort bearbeitet und jetzt funktioniert es wie erwartet. Sobald meine Bearbeitung genehmigt wird, werde ich die Antwort akzeptieren und die Prämienpunkte auf Sie anwenden. Prost. –

+0

Hallo, leider wurden Ihre Bearbeitungen von drei verschiedenen Rezensenten abgelehnt (Diese Änderung weicht von der ursprünglichen Absicht des Posts ab. Selbst Änderungen, die drastische Änderungen vornehmen müssen, sollten die Ziele des Postbesitzers wahren.), Und ich stimme dem zu Gründe der Ablehnung.Was ist die wichtigste Änderung, die den Code funktionierte? '2' anstelle von' TRUE' als Parameter in 'set_cfg'? Damit ich meine Antwort richtig bearbeiten kann. –

+0

Ich habe gerade den Kommentar verbessert. Warum sollten sie es ablehnen? Dieser war korrekt und Ihrem ähnlich. Wie auch immer, ersetze diese Zeile '$ css-> set_cfg ('merge_selectors', 2);' (statt 'remove_last_;'). –