示例#1
0
文件: Style.php 项目: abdulghanni/gsm
 public function fromStyleSheets(AbstractTag $tag, $attributes)
 {
     $class = isset($attributes["class"]) ? preg_split('/\\s+/', trim($attributes["class"])) : null;
     $stylesheets = $tag->getDocument()->getStyleSheets();
     $styles = array();
     foreach ($stylesheets as $_sc) {
         /** @var \Sabberworm\CSS\RuleSet\DeclarationBlock $_decl */
         foreach ($_sc->getAllDeclarationBlocks() as $_decl) {
             /** @var \Sabberworm\CSS\Property\Selector $_selector */
             foreach ($_decl->getSelectors() as $_selector) {
                 $_selector = $_selector->getSelector();
                 // Match class name
                 if ($class !== null) {
                     foreach ($class as $_class) {
                         if ($_selector === ".{$_class}") {
                             /** @var \Sabberworm\CSS\Rule\Rule $_rule */
                             foreach ($_decl->getRules() as $_rule) {
                                 $styles[$_rule->getRule()] = $_rule->getValue() . "";
                             }
                             break 2;
                         }
                     }
                 }
                 // Match tag name
                 if ($_selector === $tag->tagName) {
                     /** @var \Sabberworm\CSS\Rule\Rule $_rule */
                     foreach ($_decl->getRules() as $_rule) {
                         $styles[$_rule->getRule()] = $_rule->getValue() . "";
                     }
                     break;
                 }
             }
         }
     }
     $this->fillStyles($styles);
 }