「转载」一劳永逸的搞定 flex 布局

作者:osimly
链接:https://juejin.im/post/58e3a5a0a0bb9f0069fc16bb
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

寻根溯源话布局

一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 float 属性不由得感觉眼前一亮,顺理成章的联想到 Word 文档排版中用到的的左对齐、右对齐和居中对齐,然而很快就失望的发现 CSS 中并不存在 float: center 的写法,那么 text-align: centerverticle-align: center 是否可行呢?答案也是否定的。这两个属性只能用于行内元素,对于块级元素的布局是无效的。
在网页布局没有进入 CSS 的时代,排版几乎是通过 table 元素实现的,在 table 的单元格里可以方便的使用 alignvalign 来实现水平和垂直方向的对齐,随着 Web 语义化的流行,这些写法逐渐淡出了视野,CSS 标准为我们提供了 3 种布局方式:标准文档流、浮动布局和定位布局。这几种方式的搭配使用可以轻松搞定 PC 端页面的常见需求,比如实现水平居中可以使用 margin: 0 auto,实现水平垂直同时居中可以如下设置:

1
2
3
.dad {
position: relative;
}

查看更多

VMware 安装 CentOS 后网络设置

这是一个适用性比较小解决方法,若此方法不能解决你遇到的问题请自行百度其他方法。

打开虚机看看虚机的网络设置了。命令如下

1
vi /etc/sysconfig/network-scripts/ifcfg-eth0

其中部分内容如下:

1
2
3
4
DEVICE=eth0  #设备名称,可根据ifcofnig命令查看到。
BOOTPROTO=dhcp #连接方式,dhcp会自动分配地址,此时不需要在下面设置ip和网关
HWADDR=00:0C:29:AD:66:9F #硬件地址,可根据ifcofnig命令查看到。
ONBOOT=yes #yes表示启动就执行该配置,需要改为yes

查看更多

「转载」PHP 判断文件存在是用 file_exists 还是 is_file

原文链接

结论:
如果要判断文件是否存在,用函数 is_file()
如果要判断目录是否存在,用函数 is_dir()
好像没地方需要用 file_exists 了,不确定传入的参数是文件还是目录的时候用?

以下为原文作者的证明过程:

在写程序时发现在判断文件是否存在时,有两种写法,有的人用了 is_file,有的人用了 file_exists,用哪个更好或者说更合适呢?

判断文件存在用 is_file 还是 file_exists

查看更多

「转载」PHP 静态方法和非静态方法简单对比

静态方法优点

效率比实例化高
静态方法和静态变量创建后始终使用同一块内存

静态方法缺点

不自动进行销毁

实例化优点

可以做销毁

实例化缺点

会创建多个内存

如何选择?

很好理解,能够拿起来就用的,就用静态实现,比如工具类。
你想用锤子,不可能先拿个锤子的模具制造出锤子之后再用吧,就是这么个意思。

查看更多

vue-cli 下配置 Element + axios + Mockjs

近期打算配合学习计划写一个小的匿名树洞,打算结合之前学习的 ThinkPHP5 和正在学习的 Vue 两个框架,最近在写项目的前端部分踩了好多坑还在一步一步摸索中。

本文是讲解在刚开始接触 Vue 时就使用 vue-cli 脚手架(官方不建议这么做而且确实有道理)的情况下如何配置 Element + axios + Mockjs 完成前后端分离开发(听起来很吊的样子)。

其中:
Element 为饿了吗团队编写的一套 Vue 组件库
axios 是一个基于 promiseHTTP 库,可以用在浏览器和 node.js 中(简单的说就是一个 Ajax 构造器)
Mockjs 是一个大佬写的[生成随机数据,拦截 Ajax 请求]的脚本(我其实还没完全研究明白这个东西怎么用)

1. 安装 vue-cli 脚手架

参考博文:Vue 使用 vue-cli 搭建项目

2. 安装并配置 Element

2.1 安装 loader 模块

1
2
3
npm install style-loader --save-D
npm install css-loader --save-D
npm install file-loader --save-D

查看更多

ThinkPHP5 + 梦网实现手机验证码登陆后台逻辑

前言

之前一直挺好奇各个大平台怎么实现手机验证码登陆的,前几天手痒就尝试着通过 ThinkPHP 和梦网云通讯的短信 API 实现了一下服务器端的逻辑,功能实现很简单,不过还是有几个坑存在因此写下这篇文章记录一下。

本文记录了本人此次尝试的全部思路,比较冗长,提前劝退各位已经熟悉此类操作的大佬,当然如果有大佬愿意检查我的思路过程并指出其中不足我还是很欢迎的。

准备

1. 模拟服务器环境准备

我是用自己的笔记本来码的代码因此需要做一些前期的模拟服务器准备,不过由于我之前一直在写 PHP 所以环境早就搭建好了也不想在赘述过程了,具体环境信息如下:
PHPStudy: PHP 7 + MySQL + Apache
IDE: PHPStrom

2. 短信验证码服务准备

我简单的搜索了一下并尝试了几个别人说还不错的产品最后选择了梦网云通讯,原因有两个:注册简单,能免费体验。

需要准备的东西有:认证后的账号一个,上线的梦网短信发送账号一个(登录后在控制台的业务中心自己开启),PHP API 文件一份(官网开发者中心下载)

查看更多

Windows 下 ThinkPHP5 配置 redis 缓存

最近再写一个小的学校论坛项目,项目是基于 Vue + ThinkPHP5 开发的,在开发过程中遇到一个小问题让我纠结了好久,就是如何实现用户给帖子点赞。

用户给帖子点赞是一个很细节的小功能,在刚开始学习 Web编程 的时候曾经尝试过实现这个功能但总是会莫名其妙的卡住,当时觉得不是问题太难应该是我还没有学习相关的知识,直到最近开发项目的时候才发现问题并没有那么简单,我已经掌握了基本的前后端和数据库的知识但是具体实践起来还是有些困难,于是就百度了一下在 V2EX 上找到了这样一篇帖子 小菜我准备写一个简单的论坛…,看了里面大佬的回复才发现原来还是知识体系不全面,如大佬所言要很好的实现点赞功能需要借助 redis 等缓存机制来完成快速的读写。

于是我又赶紧补习了一下关于 redis 的一下皮毛并进行了 WindowsThinkPHP5 配置 redis 缓存,过程中还是有几个小坑的,于是写下这篇文章记录一下:

1. 声明

本教程所配置的仅是 Windows 下的开发环境并非服务器环境若需要服务器环境配置请自行百度。

2. 安装 php 的 redis 和 igbinary 拓展

php_igbinary: 在序列化和反序列化的效率上高于其自带的
php_redis: 效率是相当高有链表排序功能

查看更多

新部署一台Linux云服务器时常用的命令

每次部署新的云服务器总是会进行一些流程化的东西,现在还不会写脚本所以只能一个一个的码命令,但是有些命令很少会用到所以每次都要去查一遍,干脆就搬运到自己的博客里以供下次使用。

根据一下命令可以进行的操作:拿到新服务器 -> SSH 远程连接 root -> 新建一个用户组 -> 新建一个用户并添加到新建的用户组 -> 设置新用户密码 -> 添加新用户到 sudoer -> 开启一个随机端口号 -> 重启防火墙- > 修改 SSH 登陆端口号为随机端口号 -> 重启 SSH

firewall

查看更多