垂直居中
我最先想到的是使用Flex

display:flex;
aligin-items:center

而后中有不足,这样一来块中所有元素都居中了。甚是怪异。
随后 姑姑了一下。
有大神竟找到12中方式。一一参悟,受益良多。
稍后附上链接 供众位看官参透。
这里只做简单总结。

  1. 使用绝对定位 position:absolute;
    绝对定位可指定元素位置,通过top,bottom可控制其在垂直方向移动。
    但是居中的元素都会有宽度,要调整下其相对中线位置。
    i. 使用margin上下偏移元素自身高度一半。
    ii. 使用 transform: translate(1,-50%);
    iii. 使用margin:auto; 来设置偏移,前提需要topbottom设置为相同的值 如top:0;bottom:0;或是top:333px;bottom:333px;
  2. 使用flex布局

链接

最近项目最新配置 mark一下子
官网地址

<?php
return [
    // 文档标题
    'title'              => 'API接口文档',
    // 文档描述
    'desc'               => '',
    // 版权申明
    'copyright'          => 'Powered By hg-code',
    // 默认作者
    'default_author'=>'',
    // 默认请求类型
    'default_method'=>'GET',
    // 设置应用/版本(必须设置)
    'apps'           => [
        [
            'title' => 'admin',
            'path' => 'app\admin\controller',
            'folder' => 'admin',
            'groups'             => [
                ['title'=>'基础模块','name'=>'admin'],
                ['title'=>'业务模块','name'=>'business'],
            ],

        ]
    ],
    // 控制器分组
    'groups'             => [
        ['title' => 'admin', 'name' => 'admin'],
        ['title' => 'index', 'name' => 'index'],
    ],
    // 指定公共注释定义的文件地址
    'definitions'        => "app\common\controller\ApiDocDefinitions",
    //指定生成文档的控制器
    'controllers'        => [
    ],
    // 过滤,不解析的控制器
    'filter_controllers' => [
        // 'app\admin\controller\SettingWechat',
    ],
    // 缓存配置
    'cache'              => [
        // 是否开启缓存
        'enable' => false,
        // 缓存文件路径
        'path'   =>  '../runtime/apidoc/',
        // 是否显示更新缓存按钮
        'reload' => true,
        // 最大缓存文件数
        'max'    => 5,  //最大缓存数量
    ],
    // 权限认证配置
    'auth'               => [
        // 是否启用密码验证
        'enable'     => false,
        // 验证密码
        'password'   => "123456",
        // 密码加密盐
        'secret_key' => "apidoc#hg_code",
        'expire' => 24*60*60,
    ],
    // 统一的请求Header
    'headers'=>[],
    // 统一的请求参数Parameters
    'parameters'=>[],
    // 统一的请求响应体,仅显示在文档提示中
    'responses'=>[
        // ['name'=>'code','desc'=>'状态码','type'=>'int'],
        // ['name'=>'message','desc'=>'操作描述','type'=>'string'],
        // ['name'=>'data','desc'=>'业务数据','main'=>true,'type'=>'object'],
    ],
    // md文档
    'docs'              => [],
    'curd'=>[
        // 生成控制器配置
        'controller' => [
            'path' => 'app\${app[0].folder}\controller',
            'template' => '../private/apidoc/controller',
            'file_name' => '${controller.class_name}',
        ],

        // 生成验证器配置
        'validate' => [
            'path' => 'app\common\validate',
            'template' => '../private/apidoc/validate',
            'file_name' => '${validate.class_name}Validate',
            'rules' => [
                ['name' => '必填', 'rule' => 'require', 'message' => '${field} must'],
                ['name' => '1是0否', 'rule' => 'require|in:0,1', 'message' => ['${field}.require' => '${field} must', '${field}.in' => '${field} 1是0否']]
            ]
        ],

        // 生成业务逻辑配置
        'service' => [
            'path' => 'app\common\service',
            'template' => '../private/apidoc/service',
            'file_name' => '${service.class_name}Service',
        ],

        // 生成缓存配置
        'cache' => [
            'path' => 'app\common\cache',
            'template' => '../private/apidoc/cache',
            'file_name' => '${cache.class_name}Cache',
        ],

        // 生成模型配置
        'model' => [
            'path' => 'app\common\model',
            'template' => '../private/apidoc/model',
            'file_name' => '${model.class_name}Model',
            'default_fields' => [
                [
                    'field' => 'id',
                    'desc' => 'id',
                    'type' => 'int',
                    'length' => 11,
                    'default' => '',
                    'not_null' => true,
                    'main_key' => true,
                    'incremental' => true,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => true,
                    'detail' => true,
                    'add' => false,
                    'edit' => true,
                    'delete' => true
                ],
                [
                    'field' => 'is_delete',
                    'desc' => '是否删除1是0否',
                    'type' => 'tinyint',
                    'length' => 1,
                    'default' => 0,
                    'not_null' => false,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => false,
                    'detail' => false,
                    'add' => false,
                    'edit' => false,
                    'delete' => false
                ],
                [
                    'field' => 'create_time',
                    'desc' => '添加时间',
                    'type' => 'int', // 'datetime'
                    'length' => 11, // 0
                    'default' => 0, // NULL
                    'not_null' => false,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => true,
                    'detail' => true,
                    'add' => false,
                    'edit' => true,
                    'delete' => false
                ],
                [
                    'field' => 'update_time',
                    'desc' => '修改时间',
                    'type' => 'int',
                    'length' => 11,
                    'default' => 0,
                    'not_null' => false,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => true,
                    'detail' => true,
                    'add' => false,
                    'edit' => true,
                    'delete' => false
                ],
                [
                    'field' => 'delete_time',
                    'desc' => '删除时间',
                    'type' => 'int',
                    'length' => 11,
                    'default' => 0,
                    'not_null' => false,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => false,
                    'detail' => false,
                    'add' => false,
                    'edit' => false,
                    'delete' => false
                ],
                [
                    'field' => 'is_disable',
                    'desc' => '是否禁用',
                    'type' => 'tinyint',
                    'length' => 1,
                    'default' => 0,
                    'not_null' => false,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => false,
                    'detail' => false,
                    'add' => false,
                    'edit' => false,
                    'delete' => false
                ],
                [
                    'field' => 'sort',
                    'desc' => '排序',
                    'type' => 'int',
                    'length' => 11,
                    'default' => 999,
                    'not_null' => false,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => false,
                    'detail' => false,
                    'add' => false,
                    'edit' => false,
                    'delete' => false
                ],
                [
                    'field' => 'title',
                    'desc' => '标题',
                    'type' => 'varchar',
                    'length' => 255,
                    'default' => '',
                    'not_null' => true,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => 'LIKE',
                    'list' => true,
                    'detail' => true,
                    'add' => true,
                    'edit' => true,
                    'delete' => false
                ],
                [
                    'field' => 'creator_id',
                    'desc' => '创建人',
                    'type' => 'int',
                    'length' => 11,
                    'default' => 0,
                    'not_null' => false,
                    'main_key' => false,
                    'incremental' => false,
                    'validate' => '',
                    'query' => false,
                    'where' => '=',
                    'list' => false,
                    'detail' => false,
                    'add' => false,
                    'edit' => false,
                    'delete' => false
                ],
            ],
            'fields_types' => [
                'int',
                'varchar',
                'datetime',
                'tinyint',
                'char',
                'text',
                'float',
                'decimal',
            ],
            'fields_wheres' => [
                'LIKE',
                '=',
                'IN',
                'EXP',
            ]
        ]
    ]

];

笔记本时钟一直有问题,导致断电后开机时钟停留在关机时。自带的同步时间一直失败,今天想找个法子减轻点痛苦。
  1. 借鉴网友文章,使用powershell 同步时间。
    shell 命令 w32tm /resync 结果发现报错了,w32tm 这个软件没启动
    执行 Start-Service W32Time 启动 再次执行 w32tm /resync 搞定
  2. 方便的同步时间,不使用管理员身份会提示 0x80070005 这个错误,没有权限。
    因此快捷的打开管理员powershell 为首先要做的事情。
    有两种比较快速的方法,在命令行里执行 start-process PowerShell -verb runas 会快速打开 管理员版的对话框。
    另一种就是右键桌面右下角图标,点击Windows Powershell 管理员 按钮打开。
    简单记录一下