• 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

  • 相关阅读:
    开源的免费的对比工具
    win10 git bash 配置
    Java SSH 不使用终端也能调用环境变量中的指令
    MySQL WITH ROLLUP
    docker安装postgres
    开源的应用容器引擎
    清除浮动有哪几种方法
    js中的yield
    git的速学了解
    string/stringBuffer/StringBuilder的区别
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5181697.html
Copyright © 2020-2023  润新知