RED

盒子模型

China☆狼群 提交于 2020-12-23 08:40:02
------ IE6以下版本不支持:max-width 和 min-width两个值。 --------------- <style type="text/css">   p{width:500px;}   #one{max-width:400px; min-width:200px;}   #two{max-width:800px; min-width:600px;} </style> <div>   <p id="one"></p> //显示为400px; </div> <div>   <p id="two"></p> //显示为600px; </div> ==============================================   在IE6以下版本是不支持:max-height 和 min-height. 元素可以同时设置min-height属性与height属性 如果一个元素同时设置max-height和min-height属性, 并且max-height值小于min-height值,结果:显示min-height值 当一个元素同时设置 max-height和min-height,max-height值小于min-height值,最大高度自动转换成最小高度的值 =============== img标签是有它的src决定的,它指定的图片大小决定了

聊聊golang的zap的level

纵然是瞬间 提交于 2020-12-22 00:15:08
序 本文主要研究一下golang的zap的level Level zap@v1.16.0 /zapcore/level.go // A Level is a logging priority. Higher levels are more important. type Level int8 const ( // DebugLevel logs are typically voluminous, and are usually disabled in // production. DebugLevel Level = iota - 1 // InfoLevel is the default logging priority. InfoLevel // WarnLevel logs are more important than Info, but don't need individual // human review. WarnLevel // ErrorLevel logs are high-priority. If an application is running smoothly, // it shouldn't generate any error-level logs. ErrorLevel // DPanicLevel logs are particularly

CSS设置居中的方案总结

荒凉一梦 提交于 2020-12-21 18:59:48
CSS设置居中的方案总结-超全 前几天面试一家公司,被问到垂直居中的方法,我只答出了margin、table-cell、flex三种。回来之后觉得特别惭愧,于是整理了一下居中的方案做个记录,希望对大家也有帮助。 如果哪里写的不对,欢迎指正,非常感谢。 块级元素居中 html代码部分 <div class="parent"> <div class="child">child</div> </div> 复制代码 行内元素居中 html代码部分 <div class="parent"> <span class="child">child</span> </div> 复制代码 水平居中 01 行内元素 text-align: center; .parent { text-align: center; } 复制代码 02 块级元素 margin: auto; (低版本浏览器还需要设置 text-align: center;) .parent { text-align: center; } .child { width: 100px; margin: auto; border: 1px solid blue; } 复制代码 由于本文主要想记录的是垂直居中的方案,这里水平垂直的其他方案就不做过多记录了。 垂直居中 01 行内元素(单行文字垂直居中):设置 line-height = height

资深架构师谈论Java 枚举

拜拜、爱过 提交于 2020-12-20 09:01:17
概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。 枚举的好处 :可以将常量组织起来,统一进行管理。 枚举的典型应用场景 :错误码、状态机等。 枚举类型的本质 尽管 enum 看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法。 创建enum时,编译器会为你生成一个相关的类,这个类继承自 java.lang.Enum。 java.lang.Enum类声明 public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { ... } 枚举的方法 在enum中,提供了一些基本方法: values() :返回 enum 实例的数组,而且该数组中的元素严格保持在 enum 中声明时的顺序。 name() :返回实例名。 ordinal() :返回实例声明时的次序,从0开始。 getDeclaringClass() :返回实例所属的

控制反转( IoC)和依赖注入(DI)

蹲街弑〆低调 提交于 2020-12-20 04:09:48
控制反转( IoC)和依赖注入(DI) tags: 容器 依赖注入 IOC DI 控制反转 引言:如果你看过一些框架的源码或者手册,像是laravel或者tp5之类的,应该会提到容器,依赖注入,控制反转等词汇。或者是某些面试官会问到这类问题。希望这篇文章能让你有所收获。 ###1.1、IoC(控制反转 Inversion of Control) 简述:控制反转并不是一种技术,而是一种 设计思想 。通过控制反转容器(以后称容器),改变了原本某些对象运行时依赖其他对象资源时需要自己进行获取(比如通过new ClassName),所造成的对象之间的强耦合(耦合的概念如果不理解,可以先去了解一下。)。   所谓IoC,对于程序来说,就是构造了一个容器,比如在tp5中,这个容器叫Container,此容器来负责控制对象和对象间的关系。在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个),这样的话一个对象A和另一个对象B之间就有了很强的联系(也就是强耦合)。这种耦合体现在如果被依赖的资源类初始化的时候(也可能是其他时候)传入的参数变化了,你要修改两个类的代码,举例说明:    你本来用的是php本身的session机制,现在想改成也支持redis,并在初始化的时候增加一个参数来控制。这个时候你不止需要去修改类Session类的代码,还要去修改类A的代码。部分代码如下 //原代码

Vue-嵌套路由

北城余情 提交于 2020-12-19 17:02:33
  一个被渲染组件同样可以包含自己的嵌套 <router-view>。同样要有vue-router的三个要素:路由map 、路由视图、路由导航。   举个在"/apple" 下再嵌套路由的例子。 要素一:路由map   子路由需要在 VRouter 的参数中使用 children 配置: let router= new VRouter({ mode: 'history' , routes:[ { path: '/apple/:color' , component:Apple, name: 'applename' , children:[ { path: 'red-apple' , component:RedApple }, { path: 'green-apple' , component:GreenApple } ] }, { path: '/banana' , name: 'banananame' , component:Banana } ] }); 要素二:路由视图   在上级路由匹配组件里添加路由视图,本例中在 Apple 组件的模板添加 <router-view> < template > < div > < p > apple </ p > < router-view ></ router-view > </ div > </ template > 要素三:路由导航  

C++11笔记:静态断言

纵饮孤独 提交于 2020-12-19 12:36:22
##断言(assert)   断言(assert)是一种编程中常用的手段。断言就是将一个返回值总需要为真的判别式放在语句中,用于排除在设计的逻辑上不该产生的情况。请看如下代码: void assert_test(int i) { cout << "Before assert, i is " << i << endl; assert(i > 0); cout << "After assert." << endl; } </br>  上述代码期望函数的参数总是大于0,如果小于等于0,则(i > 0)不成立,当传入参数为-1的时候看到以下结果:    </br>  在C++中,可以使用NDEBUG宏可以禁用assert宏,上述代码在编译过程中加入<font color=red size=4>“-DNDEBUG”</font>参数,则执行上述代码结果如下:    </br>  可以看到并未出错。在用户使用场景中,发送错误导致程序退出对用户来说总是不友好的,在某些错误即使发生也不会影响其他的功能,但在开发过程中找到错误则是必要的。所以在Debug版程序中需要使用assert,而Release版则可以添加-DNDEBUG宏来关闭assert。 </br> </br> ###error   从上述可知assert是在运行阶段判断是否有错误,编译器也为我们提供来在编译预处理阶段进行断言操作的方法

Unity---DOTween插件学习(1)---Transform、Material、Camera、Text、Sequence

非 Y 不嫁゛ 提交于 2020-12-19 01:08:59
本文及系列参考于Andy老师的DOTween系列 欢迎大家关注**<font color=Red> Andy老师 </font>** <font color=Red>介绍 </font> 在Unity Asset Store上搜索DOTween下载免费版。 Pro收费版就比免费版多了可视化功能,作用并不大。 添加引用 Using DG.Tweening; 以 DO 开头的方法:设置动画的方法 以 Set 开头的方法:设置动画属性的方法 以 On 开头的方法:设置动画的回调函数 [Toc] 1、Transform方法 在 Unity 中添加一个 Cube ,并挂载这个脚本 <font color=Red>Position</font> transform.DOMove(Vector3.one, 2); //1.要移动的目标位置,2.移动的时间s transform.DOMoveX(1, 2); //只控制X轴方向上的移动 transform.DOLocalMove(); //改变局部坐标 <font color=Red>Rotate</font> transform.DORotate(new Vector3(0,90,0), 2); //旋转 transform.DOLocalRotate(); transform.DORotateQuaternion(new Quaternion

Ubuntu 18.04 Server 设置静态IP

谁说我不能喝 提交于 2020-12-18 09:41:57
一、背景 Netplan 是 Ubuntu 17.10中 引入的一种新的命令行网络配置实用程序,用于在 Ubuntu 系统中轻松管理和配置网络设置。它允许您使用 YAML 抽象来配置网络接口。它可与 NetworkManager 和 systemd-networkd 网络守护程序(称为 渲染程序 ,您可以选择使用其中的哪一个)一起作为内核的接口。 它读取 /etc/netplan/*.ymal 中描述的网络配置,并且可以将所有网络接口的配置存储在这些文件中。 在本文中。我们将解释如何使用 Netplan 实用程序在 Ubuntu 18.04 中为网络接口配置网络静态或动态IP地址。 二、解决方案 列出Ubuntu上的所有活动网络接口 首先,您需要确定要配置的网络接口。 您可以使用ifconfig命令列出系统中所有连接的网络接口,如图所示。 ifconfig -a 检查Ubuntu中的网络接口 从上述命令的输出中,我们有 2个 连接到Ubuntu系统的 接口 :1个以太网接口和环回接口。 Ubuntu设置静态IP地址 在这个例子中,我们将 ens33 以太网网络接口配置一个静态IP。如图所示,使用 vim 打开 netplain 配置文件。 <span style='color:red'>重要提示</span>:如果 YAML 文件不是由发行版安装程序创建的

[总结]Floyd算法及其应用

余生颓废 提交于 2020-12-18 09:39:53
[TOC] ## 一、Floyd算法 如何求任意两点最短路?我们可以运行n次SPFA或Dijkstra求得, 而Floyd算法能在$O(N^3)$的时间复杂度内求出图中任意两点的最短路(多源最短路),且代码十分简短。 Floyd算法(弗洛伊德算法) 的本质是动态规划。设$f(k,i,j)$表示<font color=Blue>"由若干个编号不超过k的节点中转后"</font>从$i$到$j$的最短路。 该"动态规划"有两个决策,一是经过编号不超过$k-1$的节点由$i$到$j$,二是先由$i$到$k$,再由$k$到$j$。 我们很容易写出此时的转移方程: $$f(k,i,j)=min(f(k-1,i,j),f(k-1,i,k)+f(k-1,k,j))$$ 初始$f$数组所有值均为正无穷,随后令$f(0,i,j)=maps(i,j)$,其中$map(i,j)$为邻接矩阵。 由于$k$是动态规划的阶段,因此$k$为最外层循环,可以得到如下代码: inline void floyd(){ for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) f[k][i][j]=min(f[k-1][i][j],f[k-1][i][k]+f[k-1][k][j]); } 算法最终$f(n,i,j),i\in [1,n],j