Automattic\WooCommerce\Vendor\Pelago\Emogrifier\Utilities
CssConcatenator::append
Appends a declaration block to the CSS.
Метод класса: CssConcatenator{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
$CssConcatenator = new CssConcatenator(); $CssConcatenator->append( $selectors, $declarationsBlock, $media ): void;
- $selectors(массив) (обязательный)
- .
- $declarationsBlock(строка) (обязательный)
- the property declarations, e.g. "margin-top: 0.5em; padding: 0".
- $media(строка)
- the media query for the rule, e.g. "@media screen and (max-width:639px)", or an empty string if none.
По умолчанию: ''
Код CssConcatenator::append() CssConcatenator::append WC 10.4.3
public function append(array $selectors, string $declarationsBlock, string $media = ''): void
{
$selectorsAsKeys = \array_flip($selectors);
$mediaRule = $this->getOrCreateMediaRuleToAppendTo($media);
$ruleBlocks = $mediaRule->ruleBlocks;
$lastRuleBlock = \end($ruleBlocks);
$hasSameDeclarationsAsLastRule = \is_object($lastRuleBlock)
&& $declarationsBlock === $lastRuleBlock->declarationsBlock;
if ($hasSameDeclarationsAsLastRule) {
$lastRuleBlock->selectorsAsKeys += $selectorsAsKeys;
} else {
$lastRuleBlockSelectors = \is_object($lastRuleBlock) ? $lastRuleBlock->selectorsAsKeys : [];
$hasSameSelectorsAsLastRule = \is_object($lastRuleBlock)
&& self::hasEquivalentSelectors($selectorsAsKeys, $lastRuleBlockSelectors);
if ($hasSameSelectorsAsLastRule) {
$lastDeclarationsBlockWithoutSemicolon = \rtrim(\rtrim($lastRuleBlock->declarationsBlock), ';');
$lastRuleBlock->declarationsBlock = $lastDeclarationsBlockWithoutSemicolon . ';' . $declarationsBlock;
} else {
$mediaRule->ruleBlocks[] = (object) \compact('selectorsAsKeys', 'declarationsBlock');
}
}
}