03-网页设计和开发中,关于字体的常识
title: 03-网页设计和开发中,关于字体的常识publish: true
前言我周围的码农当中,有很多是技术大神,却常常被字体这种简单的东西所困扰。
这篇文章,我们来讲一讲关于字体的常识。这些常识所涉及到的问题,有很强的可操作性,都是在实际业务中真实遇到的,都是需要开发同学和产品经理、设计师不断重复沟通的。
字体真的只是“系统默认,无从解释”这么简单吗?是产品被忽悠?还是开发在敷衍?二者之间的博弈究竟谁能胜出?学会本文,你就能胜出。
字体分类常见的字体可以分为两类:衬线体、无衬线体。
1、serif(衬线体):在字的笔画开始、结束的地方有额外的装饰,而且笔画的粗细会有所不同。
常见的衬线体有:
宋体、楷体
Times New Roman
2、sans-serif(无衬线体):笔划粗细基本一致,只剩下主干,造型简明有力,起源也很晚。适用于标题、广告等,识别性高。
常见的无衬线体有:
黑体
Windows 平台默认的中文字体:微软雅黑(Microsoft Yahei)
Windows 平台默认的英文字体:Arial
Mac & iOS 平台默认的中文字体:苹方 ...
04-CSS选择器:伪类
title: 04-CSS选择器:伪类publish: true
伪类(伪类选择器)伪类:同一个标签,根据其不同的种状态,有不同的样式。这就叫做“伪类”。伪类用冒号来表示。
比如div是属于box类,这一点很明确,就是属于box类。但是a属于什么类?不明确。因为需要看用户点击前是什么状态,点击后是什么状态。所以,就叫做“伪类”。
静态伪类和动态伪类伪类选择器分为两种。
(1)静态伪类:只能用于超链接的样式。如下:
:link 超链接点击之前
:visited 链接被访问过之后
PS:以上两种样式,只能用于超链接。
(2)动态伪类:针对所有标签都适用的样式。如下:
:hover “悬停”:鼠标放到标签上的时候
:active “激活”: 鼠标点击标签,但是不松手时。
:focus 是某个标签获得焦点时的样式(比如某个输入框获得焦点)
超链接a标签超链接的四种状态a标签有4种伪类(即对应四种状态),要求背诵。如下:
:link “链接”:超链接点击之前
:visited “访问过的”:链接被访问过之后
:hover “悬停”:鼠标放到标签上的时候
:ac ...
04-DOM操作练习:Tab栏切换(通过className设置样式)
title: 04-DOM操作练习:Tab栏切换(通过className设置样式)publish: true
京东网页上,可以看到下面这种tab栏的切换:
我们把模型抽象出来,实现一下。
举例引入:鼠标悬停时,current元素的背景变色
本段我们先举一个例子,因为这里用到了排他思想(先干掉 all,然后保留我一个)。对于理解tab切换,很有帮助。
完整的代码实现:
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> button { margin: 10px; width: 100px; height: 40px; cursor: pointer; } .current & ...
Linux执行tar解压报错tar: Error is not recoverable: exiting now
Linux执行tar解压报错tar: Error is not recoverable: exiting nowLinux操作系统下,下载完成xx.tar.gz文件然后执行tar -zxvf xx.tar.gz,执行出现如下错误:
3.4.10/src/java/test/org/apache/zookeeper/test/QuorumUtil.java tar: 归档文件中异常的 EOF tar: 归档文件中异常的 EOF tar: Error is not recoverable: exiting now
解决方案有两种。
方案一:去掉解压参数中的z,执行命令改为:tar -xvf xx.tar.gz。
该方案的原因是:下载的文件并不是“通过 gzip 过滤归档”所以添加参数z就无法正常解压。
如果该方案依旧无法进行正常解压那就尝试第二中方案。
方案二:重新下载或上传压缩文件
本方案是针对下载的压缩文件并不完整,也就是说并没有正常下载完成。可以换个方式重新下载。比如通过wget下载之后,执行出现上面问题。可以尝试在其他机器上直接下载,然后上传到目标服务器上再执行上面的解压命令,即 ...
Linux的硬盘查看/挂载
Linux的硬盘识别:一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息.
fdisk可以用m命令来看fdisk命令的内部命令;
a:命令指定启动分区;
d:命令删除一个存在的分区;
l:命令显示分区ID号的列表;
m:查看fdisk命令帮助;
n:命令创建一个新分区;
p:命令显示分区列表;
t:命令修改分区的类型ID号;
w:命令是将对分区表的修改存盘让它发生作用。
进入磁盘,对磁盘进行分区#fdisk /dev/sdb格式化分区:mkfs.ext3 /dev/sdb1 //注:将/dev/sdb1格式化为ext3类型创建/data1目录:#mkdir /data1开始挂载分区:#mount /dev/sdb1 /data1查看硬盘大小以及挂载分区:#df -h配置开机自动挂载因为mount挂载在重启服务器后会失效,所以需要将分区信息写到/etc/fstab文件中让它永久挂载:#vim /etc/fstab加入:/dev/sdb1(磁盘分区) /data1(挂载目录) ext3(文件格式)def ...
Linux离线安装gcc等依赖包
Linux离线安装gcc等依赖包一、虚拟机可以连接外网情况
直接yum安装 `yum -y install gcc`
二、虚拟机不可以连接外网情况(离线安装)1、首先下载安装包,各种rpm包下载地址:
http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
2、lz百度网盘已下载好了gcc相关依赖,可下载链接:https://pan.baidu.com/s/1YKfsLYuq9UUB8HyIfrMuVg提取码:ol4z
3、将以上安装包上传到linux环境的系统中,执行安装命令:
`[root@CentOS-1 home]#rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm[root@CentOS-1 home]#rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm[root@CentOS-1 home]#rpm -ivh kernel-headers-3.10.0-862.el7.x86_64.rpm[root@CentOS-1 home]#rpm -ivh glibc ...
Linux系统安装Python3环境
Linux系统安装Python3环境(超详细)本文基于如下Linux系统版本:
1、默认情况下,Linux会自带安装Python,可以运行python –version命令查看,如图:
我们看到Linux中已经自带了Python2.7.5。再次运行python命令后就可以使用python命令窗口了(Ctrl+D退出python命令窗口)。
2、查看Linux默认安装的Python位置
看到/usr/bin/python和/usr/bin/python2都是软链接,/usr/bin/python指向/usr/bin/python2,而/usr/bin/python2最终又指向/usr/bin/python2.7。所以运行python/python2/python2.7是一样的,如图:
3、安装python3
(1)登录https://www.python.org/downloads/source/,找到对应版本(我们以Python 3.6.5为例)如图:
下载Python-3.6.5.tgz
(2)文件上传
将文件上传到Linux系统的某个目录下,根据自己情况上传,本例上传到了/ ...
Shell
Shell 编程入门
走进 Shell 编程的大门
为什么要学Shell?
什么是 Shell?
Shell 编程的 Hello World
Shell 变量
Shell 编程中的变量介绍
Shell 字符串入门
Shell 字符串常见操作
Shell 数组
Shell 基本运算符
算数运算符
关系运算符
逻辑运算符
布尔运算符
字符串运算符
文件相关运算符
shell流程控制
if 条件语句
for 循环语句
while 语句
shell 函数
不带参数没有返回值的函数
有返回值的函数
带参数的函数
Shell 编程入门走进 Shell 编程的大门为什么要学Shell?学一个东西,我们大部分情况都是往实用性方向着想。从工作角度来讲,学习 Shell 是为了提高我们自己工作效率,提高产出,让我们在更少的时间完成更多的事情。
很多人会说 Shell 编程属于运维方面的知识了,应该是运维人员来做,我们做后端开发的没必要学。我觉得这种说法大错特错,相比于专门做Linux运维的人员来说,我们对 Shell 编程掌握程度的要求要比他们低,但是shell编程也是 ...
Shell脚本编程30分钟入门
Shell脚本编程30分钟入门什么是Shell脚本示例看个例子吧:
#!/bin/sh
cd ~
mkdir shell_tut
cd shell_tut
for ((i=0; i<10; i++)); do
touch test_$i.txt
done
示例解释
第1行:指定脚本解释器,这里是用/bin/sh做解释器的
第2行:切换到当前用户的home目录
第3行:创建一个目录shell_tut
第4行:切换到shell_tut目录
第5行:循环条件,一共循环10次
第6行:创建一个test_0…9.txt文件
第7行:循环体结束
mkdir, touch都是系统自带的程序,一般在/bin或者/usr/bin目录下。for, do, done是sh脚本语言的关键字。
shell和shell脚本的概念shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。
shell脚本(shell script),是一 ...
linux 批量杀进程
想了一下,应该可以用pipe(管道)来完成这项任务,经过测试,真的成功了。命令如下:
$ ps -ef | grep rtprecv | grep -v grep | awk ‘{print $2}’ | xargs kill -91解释一下:
ps -ef 用于获取当前系统所有进程,如上图所示。grep rtprecv 过滤出与“rtprecv”字符相关的数据(以行为单位)。grep -v grep 的作用是除去本次操作所造成的影响,-v 表示反向选择。awk ‘{print $2}’ 表示筛选出我们所关注的进程号,$2 表示每行第二个变量,在这个例子中就是进程号。所以如果你使用ps工具不一样,或者ps带的参数不一样,那需要关注的就可能不是$2,可能是$1 。xargs kill -9 中的 xargs 命令表示用前面命令的输出结果(也就是一系列的进程号)作为 kill -9 命令的参数,-9 表示强制终止,不是必须的。上面是用 kill 配合过滤操作来完成,实际上还有更简单的方法——使用 killall 命令。killall 通过进程名字终止所有进程,用法如下:killall 。 ...
linux 清理内存使用情况
1.清理前内存使用情况free -m
2.开始清理echo 1 > /proc/sys/vm/drop_caches
3.清理后内存使用情况free -m
ln 软链接
ln -s 源地址 现地址
natfrp docker 部署
首先我们需要获取镜像:
默认 DockerHub 源,国内可能较慢:docker pull natfrp/frpc
######## 或者 ########
阿里云容器镜像 香港地区源,适合国内用户:docker pull registry.cn-hongkong.aliyuncs.com/natfrp/frpc
接下来我们执行:docker run -d –restart=always <你刚复制的镜像tag> -f <启动参数> –remote_control <远程控制密码>,如果一切顺利,就能看到只有一行奇怪的hash的输出,就是实例ID
首先您需要知道启动参数的写法,即:-f <启动密钥>:<隧道ID>,如果要启动多个隧道可以 -f <启动密钥>:<隧道ID1>,隧道ID2,隧道ID3,…,如果还需深入了解请参阅 frpc 用户手册-从命令行启动隧道。
为了提高可用性,建议您开启远程控制功能,即在启动参数后面加上 –remote_control <设置一个远程控制密码>,最终的形 ...
rsync 离线安装
下载地址http://rsync.samba.org/ftp/rsync/
tar -zxvf rsync-3.2.3.tar.gzcd rsync-2.6.9./configure –prefix=/usr/local/rsync –disable-xxhash –disable-zstd –disable-lz4make & make install
注意:没有make方法安装per
安装完成再/usr/local/rsync下
rsync.exe -P –rsh=ssh 《本地目录/文件》 root@10.254.76.6:/paic/《线上文件名》
rsync -P –rsh=ssh /Users/wangchuanli/temp/mdcs.sql root@10.254.76. ...
scp 发送远程文件
scp ./test.txt root@10.254.76.15:/paic/mysql_db/ipmp/test.txtscp ./select_from_setl_d_where_date_format_S.sql root@10.254.76.15:/paic/mysql_db/ipmp/select_from_setl_d_where_date_format_S.sqlLc07!yfwpWLc13yfwpW