css 结构和层叠

特殊性值

CSS 可以对一个元素使用两个或多个规则, 每个规则都有自己的选择器. 例如:

1
2
h1 { color: red; }
body h1 { color: green; }

h1 对应着两个规则, 但是只有一个规则生效, 通过 css 特殊性值来计算

选择器 特殊性值
包含ID 0, 1, 0, 0
包含类,属性, 伪类 0, 0, 1, 0
包含元素和为元素 0, 0, 0, 1
内联样式 1, 0, 0, 0

上一个规则的特殊性值为

1
2
h1 { color: red; } /* 0, 0, 0, 1*/
body h1 { color: green; } /* 0, 0, 0, 2*/

所以h1的字体颜色显示为绿色

阅读更多
css 选择器

css 通过选择器精确定位 HTML 元素。我们可以通过 css 选择器改变 HTML 的样式.

1
2
3
div {
background-color: red;
}

div是一个选择器, 紧跟着 css 的声明块, 其中 background-color表示属性, red表示属性的值.

阅读更多
mysql 常用命令

因为项目中使用 orm, mysql 一些常用的命令都模糊了, 在此记录下 mysql 常用命令方便随时查看.

库操作

对库的一些操作

创建数据库

1
create database `db_name` default character set utf8;

删除数据库

1
drop database `db_name`;

表操作

对表的一些操作

创建数据表

创建一个user的数据表

1
2
3
4
5
6
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT '' COMMENT '用户名',
`password` varchar(255) DEFAULT '' COMMENT '密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
阅读更多
vim zsh 增强命令行

使用 vim 插件来增强终端下的编辑能力, 使用 zsh 替换 bash 提升自动补全

安装 vim 和插件管理器 vundle

vundle 包管理, 可以轻松的安装 vim 插件, 首先安装 vundle

1
2
mkdir -p ~/.vim/bundle/vundle
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

添加 vim 配置, 在用户主目录下创建.vim并编辑内容

阅读更多
docker 安装与配置

安装 docker

使用官方的配置脚本, 在 centos 上安装 docker

1
2
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

启动 docker

1
2
systemctl enable docker
systemctl start docker

测试 docker

通过下载镜像来测试 docker 是否正常运行

1
docker run hello-world

加速 docker

因为网络原因国内下载 docker 镜像会非常缓慢, 可以通过配置阿里云镜像加速 docker

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

可以通过docker info命令查看镜像源是否换成了国内的


基于Token认证的公共Api接口设计

公共 API 通过设计 token 和 sign 等方法,保证接口安全.

基于 token

客户端通过服务器设置的规则访问特定 url 获取 token

1
2
3
4
5
6
7
8
9
10
11
12
http://host/api/v1/token?app_id=xxx&app_secret=xxx
# 也可以通过post方法获取
{
"app_id": xxx,
"app_secret": xxx,
}

# 服务端返回值
{
"access_token": "kkIs5V9uTri6",
"expires_in": 7200
}

之后访问别的 API 接口可以通过参数上传 access_token 来保证访问

阅读更多
基于docker的mysql主从配置

目的

备份数据, 主库挂了从库依然可以访问

使用 docker 生成镜像

本文默认为已安装 docker 环境, ubuntu 环境

1
2
3
4
5
在本机上安装mysql5.7版本
sudo docker pull mysql:5.7

# code 在code目录下创建mysql/master和mysql/slave目录
mkdir -p mysql/{master,slave}

然后在 master 和 slave 目录中写入配置文件Dockerfilemy.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# master/Dockerfile和slave/Dockerfile
FROM mysql:5.7
COPY my.cnf /etc/mysql/
EXPOSE 3306
CMD ["mysqld"]

# master/my.cnf, 主库和从库的server-id不能相同
[mysqld]
log-bin=mysql-bin
server-id=1

# slave/my.cnf
log-bin=mysql-bin
server-id=2

分别在目录中执行以下命令生成镜像

阅读更多