zoukankan      html  css  js  c++  java
  • Yii2 如何更好的在页面注入CSS

    首先

    先添加一个widgets,代码如下(提示:使用时注意修改命名空间)

    <?php
    /**
     * User: yiqing
     * Date: 2014/12/15
     * Time: 0:21
     */
    
    namespace yearwidgets;
    
    
    use yiiwidgetsBlock;
    
    class CssBlock extends Block
    {
    
        /**
         * @var null
         */
        public $key = null;
        /**
         * @var array $options the HTML attributes for the style tag.
         */
        public $options = [];
    
        /**
         * Ends recording a block.
         * This method stops output buffering and saves the rendering result as a named block in the view.
         */
        public function run()
        {
            $block = ob_get_clean();
            if ($this->renderInPlace) {
                throw new Exception("not implemented yet ! ");
                // echo $block;
            }
            // $block = trim($block) ;
            $block = static::unwrapStyleTag($block);
    
            $this->view->registerCss($block, $this->options, $this->key);
        }
    
        /**
         * @param $cssBlock
         * @return string
         */
        public static function unwrapStyleTag($cssBlock)
        {
            $block = trim($cssBlock);
            /*
            $jsBlockPattern  = '|^<script[^>]*>(.+?)</script>$|is';
            if(preg_match($jsBlockPattern,$block)){
                $block =  preg_replace ( $jsBlockPattern , '${1}'  , $block );
            }
            */
            $cssBlockPattern = '|^<style[^>]*>(?P<block_content>.+?)</style>$|is';
            if (preg_match($cssBlockPattern, $block, $matches)) {
                $block = $matches['block_content'];
            }
            return $block;
        }
    } 

    使用

    示例如下:

    <?php yearwidgetsCssBlock::begin() ?>
    <style type="text/css">
    .fr {
        float: right;
    }
    .mt10 {
        margin-top: 10px;
    }
    
    .mt15 {
        margin-top: 15px;
    }
    </style>
    <?php yearwidgetsCssBlock::end()?>

    总结

    为什么要这么写?

    这样写的好处有两个,有代码提示和有代码高亮!!

    来源地址:http://www.getyii.com/topic/10

  • 相关阅读:
    014.Python函数
    013.Python的文件操作
    012.Python的字典和集合的相关函数
    011.Python的列表的相关操作
    010.Python字符串的格式化
    009.Python字符串相关函数
    008.Python循环for循环
    007.Python循环语句while循环嵌套
    Java 反射机制 初探*
    Java 正则初探
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5181697.html
Copyright © 2011-2022 走看看