css揭秘阅读笔记

css揭秘:半透明边框

早在2008年 24ways.rog就在网页设计中应用了半透明的颜色,是最早尝鲜的网站之一。不过大多都是用于背景中。
半透明边框实现原理就是用rgba() || hsla()来实现
在一个div上用border:20px sold rgba(250,250,250,.5);理想状态下就能实现一个20像素的半透明边框了
但是事实上却是这样:

# css部分
*{ margin: 0; padding: 0;}
    .father_demo{ width: 500px; height: 500px; /*background: hsl(200,0%,50%);*/ background: rgb(0,250,250); text-align: center; display: table-cell; vertical-align:middle;  position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto;}
    .border_demo{ width: 200px; height: 200px;/* border:10px solid hsla(0,0%,100%,.5);*/ border:20px solid rgba(250,250,250,.8); background: white;  position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto;}

# html部分
<div class="father_demo">
    <div class="border_demo">
        demo
    </div>
</div>

效果图:
效果图

用调试工具查看的边框是存在的但是给我们的感觉就没有半透明的效果。而是白色边框的感觉。
这涉及到了背景的原理。背景有个属性background-clip。他默认的值是border-box。意味着背景更具元素的边框来就行裁剪,并且透出来的是元素的背景色。在边框以外才会显示背景。把这个属性值改成padding-box,让背景更具元素的padding来裁剪,这样边框底下就会显示背景。

# css部分
*{ margin: 0; padding: 0;}
    .father_demo{ width: 500px; height: 500px; /*background: hsl(200,0%,50%);*/ background: rgb(0,250,250); text-align: center; display: table-cell; vertical-align:middle;  position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto;}
    .border_demo{ width: 200px; height: 200px;/* border:10px solid hsla(0,0%,100%,.5);*/ border:20px solid rgba(250,250,250,.8); background: white;  position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; background-clip: padding-box;} # 加上background-clip: padding-box;        

效果图:
效果图

小tp:

RGBA 颜色值得到以下浏览器的支持:IE9+、Firefox 3+、Chrome、Safari 以及 Opera 10+。
RGBA 颜色值是 RGB 颜色值的扩展,带有一个 alpha 通道 - 它规定了对象的不透明度。
RGBA 颜色值是这样规定的:rgba(red, green, blue, alpha)。alpha 参数是介于 0.0(完全透明)与 1.0(完全不透明)的数字。

HSL 指的是 hue(色调)、saturation(饱和度)、lightness(亮度) - 表示颜色柱面坐标表示法。
HSL 颜色值是这样规定的:hsl(hue, saturation, lightness)。
Hue 是色盘上的度数(从 0 到 360) - 0 (或 360) 是红色,120 是绿色,240 是蓝色。Saturation 是百分比值;0% 意味着灰色,而 100% 是全彩。Lightness 同样是百分比值;0% 是黑色,100% 是白色。
HSLA 颜色值得到以下浏览器的支持:IE9+、Firefox 3+、Chrome、Safari 以及 Opera 10+。
HSLA 颜色值是 HSL 颜色值的扩展,带有一个 alpha 通道 - 它规定了对象的不透明度。
HSLA 颜色值是这样规定的:hsla(hue, saturation, lightness, alpha),其中的 alpha 参数定义不透明度。alpha 参数是介于 0.0(完全透明)与 1.0(完全不透明)的数字

小tp2:
然元素水平垂直居中:

.demo{
    width: 600px; height: 400px;
    position: absolute; left: 0; top: 0; right: 0; bottom: 0;
    margin: auto;    /* 有了这个就自动居中了 */
}

兼容ie8+浏览器,ie7-就当看不见。
如果一定要在意ie7-我在网上瞄了几眼:

ie8+用display:table,而ie7-用outer绝对定位top:50%,inner用相对定位top:-50%

用js写脚本自动抢购

中秋节已经过去不短的时间了,但是今年的中秋节在某大型公司十分的特别
Paste_Image.png
内部有一个抢购月饼的活动,有一位调皮的程序员灵光一闪我既然是程序员,那我就写个程序来抢月饼玩啊。很快到了抢购月饼的时候发现在购物车里抢购太多了,就联系行政的人退掉。毕竟人家是在某大型公司,事情发生了没有那么容易解决。被上头以作弊的的名义上升到了三观的程度让这位前辈不用再来这里了。
–个人表示很同情这位前辈的

我们还是来聊聊技术吧

那么这位前辈到底是怎么实现让抢购页面自动抢购的呢?

我们先来简单模拟下抢购页面
html:

1
2
3
4
5
6
7
8
9
10
11
12
13
<body>
<h1>抢月饼</h1>
<div class="button">
<button id="buy">点击抢购</button>
</div>
</body>
<script type="text/javascript">
var buy;
buy = document.getElementById("buy");
buy.onclick=function(){
console.info("抢购成功");
};
</script>

页面效果:

Paste_Image.png

那么问题来了我们怎么实现让按钮自动点击呢?

我们写一个原生js用定时器来实现:

1
2
3
4
setInterval(function(){
var buy=document.getElementById("buy");
buy.click();
},1000)

嗯,确实如果放到js中的话只要调用这个定时器就能让他不断的点击抢购了,但是怎么才能放到线上的抢购页面呢,毕竟那个不是在自己的本地啊?

在chrome下:

  1. 首先,把刚才我们写好的原生js保存为.user.js比如clicktool.user.js
  2. 打开chrome浏览器输入chrome://extensions,来打开chrome的扩展程序
  3. 把我们保存的clicktool.user.js拖进来安装。
  4. 重新打开我们的抢购页面就开始自动抢购啦。

Paste_Image.png

在FireFox下:

  1. 下载安装greasemonkey(“油猴子”)。
  2. 重新启动浏览器
  3. 打开greasemokey拖入我们刚才的clicktool.user.js
  4. 重新进入抢购页面就可以啦

恩恩,学到了,原来自己写的脚本只要这样就能用在页面上了,涨姿势了!瞬间慢慢的成就感,这很geek。

如何省去git提交时候的用户名和密码输入

前言:在大家使用github的过程中,一定会碰到这样一种情况,就是每次要push 和pull时总是要输入github的账号和密码,作为一只喜欢鼓(xia)捣(gao)的前端,在网上找了方法来避免这种状况,这些成果也是前辈提出来的,我在此只是做个总结加深自己的印象和备忘。

#1. 创建文件存储GIT用户名和密码
在%HOME%目录中,一般为C:\users\Administrator,也可以是你自己创建的系统用户名目录(笔者的是w7系统在C:\用户\Administrator)。创建文件名为.git-credentials,由于在Window中不允许直接创建以”.”开头的文件,所以需要借助git bash进行,C:\users\Administrator下右键打开git bash客户端,然后用touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式:

touch .git-credentials
vim .git-credentials
https://{username}:{password}@github.com

ps:笔者开始时在用了touch .git-credentials 后用vim打开后写完不知道如何保存,取巧的用DW打开.git-credentials写。


vim保存关闭总结:

用vim “文件名字” 来打开文件后进入的是命令模式,增删改查,按esc退回bash命令行
在进入文件后再按i或者insert后就是编辑模式,直接在这里敲键盘写文字。按大写的ZZ或者:wq保存并退出

下面是笔者网上找的vim的操作···我们不是为了说省输入户名吗?可以直接看第二步

  • 1、vim 有两种工作模式:
    (1) 命令模式:接受、执行 vi & vim 操作命令的模式,打开文件后的默认模式;
    (2) 编辑模式:对打开的文件内容进行 增、删、改 操作的模式;
    在编辑模式下按下 ESC 键,回退到命令模式。
  • 2、创建、打开文件:$ vi [filename]
    (1)使用 vi 加 文件路径(或文件名)的模式打开文件,如果文件存在则打开现有文件,如果文件不存在则新建文件,并在终端最下面一行显示打开的是一个新文件。
    (2)键盘输入字母 “i”或“Insert”键进入最常用的插入编辑模式。
    Paste_Image.png
  • 3、保存文件:
    (1)在插入编辑模式下编辑文件。
    (2)按下 “ESC” 键,退出编辑模式,切换到命令模式。
    (3)在命令模式下键入”ZZ”或者”:wq”保存修改并且退出 vi 。
    (4)如果只想保存文件,则键入”:w”,回车后底行会提示写入操作结果,并保持停留在命令模式。
  • 4、放弃所有文件修改:
    (1)放弃所有文件修改:按下 “ESC” 键进入命令模式,键入 “:q!” 回车后放弃修改并退出vi。
    (2)放弃所有文件修改,但不退出 vi ,即回退到文件打开后最后一次保存操作的状态,继续进行文件操作:按下 “ESC” 键进入命令模式,键入 “:e!” ,回车后回到命令模式。

2. 添加Git Config内容

进入git bash终端, 输入如下命令:

git config --global credential.helper store

执行完后查看%HOME%目录下的.gitconfig文件,会多了一项:

[credential]
    helper = store

笔者随便加了几个注释文字重新开启git bash然后提交了下再也不用每次提交都要输入用户名和密码啦

git status
git add .
git commit
git push origin master

Paste_Image.png

end

git常用命令

1. 提交github前提 ssh

  • 你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代码,那么 GitHub 上的项目岂不乱了套了,所以提交代码之前一定是需要某种授权的,而 GitHub 上一般都是基于 SSH 授权的。
  • 那么什么是 SSH 呢?
    简单点说,SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。

    1.1 生成SSH key

  • Linux 与 Mac 都是默认安装了SSH ,而 Windows 系统安装了 Git Bash 应该也是带了SSH 的。大家可以在终端(win下在Git Bash 里)输入 ssh如果出现以下提示证明你本机已经安装SSH。
    Paste_Image.png
  • 紧接着输入 ssh-keygen -t rsa,什么意思呢?就是指定 rsa 算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件 id_rsa id_rsa.pub ,而id_rsa 是密钥,id_rsa.pub 就是公钥。这两文件默认分别在如下目录里生成:
    Linux/Mac 系统 在~/.ssh下,win系统在 /c/Documents and Settings/username/.ssh 下都是隐藏文件。
    ps: (id_rsa.pub 公钥可以用DW,sublime等打开)

    1.2 GitHub (setting中)上添加 SSH key

  • 在 GitHub 上的设置页面,点击最左侧 SSH and GPG keys
    Paste_Image.png
    需要做的只是在 Key 那栏把 id_rsa.pub 公钥文件里的内容复制粘贴进去就可以了(上述示例为了安全粘贴的公钥是无效的),Title 那栏填写你自己喜欢的名,点击 Add SSH key 按钮就ok了

    1.3 测试

    输入 ssh -T git@github.com 进行测试,如果出现以下提示证明添加成功了。(第一次配置中间可能会出现要你填写yes/no)

    Administrator@PC-20131019WPLR MINGW64 /github/mycv (gh-pages)
    $ ssh -T git@github.com
    Hi shenyubin! You’ve successfully authenticated, but GitHub does not
    provide shell access.

2. github常用代码

  • git config –globaluser.name “shenyubin”
  • git config –globaluser.email “shenyubin_html@163.com” #配置你的用户名和邮箱,这样在上传后会显示提交人的有户名

  • git pull origin master #「拉」的意思,如果别人提交代码到远程仓库,这个时候你需要把远程仓库的最新代码拉下来,然后保证两端代码的同步。

  • git clone git@github.com:shenyubin/test.git # 克隆github上创建的库
  • git status # 在clone好的库中写好或添加好项目后通过status查看
  • git add . # 查看确实已经有添加后通过git add . 来添加全部库中的修改
  • git commit -m “这里写上操作信息” # 用commit 来添加操作信息
  • git push origin master # 最后提交。如果你本地代码有更新了,那么就需要把本地代码推到远程仓库,这样本地仓库跟远程仓库就可以保持同步了,会出现让你输入用户名和密码然后完成提交。

开启多说

开启博客的多说

1. 多说账号和多说站点

创建站点点这里


多说站点创建截图

2. 配置config

在themes/yilia/_config.yml

#是否开启多说评论,填写你在多说申请的项目名称 duoshuo: duoshuo-key
#若使用disqus,请在博客config文件中填写disqus_shortname,并关闭多说评论
duoshuo: true
duoshuo_shortname: shenyubinblog


3. 修改themes/landscape/layout/_partial/article.ejs的文件

把原来的

<% if (!index && post.comments && config.disqus_shortname){ %>
<section id="comments">
<div id="disqus_thread">
<noscript>Please enable JavaScript to view the <a href="//disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
</section>
<% } %>

改成

<% if (!index && post.comments && config.duoshuo_shortname){ %>
  <section id="comments">
    <!-- 多说评论框 start -->
    <div class="ds-thread" data-thread-key="<%= post.layout %>-<%= post.slug %>" data-title="<%= post.title %>" data-url="<%= page.permalink %>"></div>
    <!-- 多说评论框 end -->
    <!-- 多说公共JS代码 start (一个网页只需插入一次) -->
    <script type="text/javascript">
    var duoshuoQuery = {short_name:'<%= config.duoshuo_shortname %>'};
      (function() {
        var ds = document.createElement('script');
        ds.type = 'text/javascript';
        ds.async = true;
        ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
        ds.charset = 'UTF-8';
        (document.getElementsByTagName('head')[0] 
         || document.getElementsByTagName('body')[0]).appendChild(ds);
      })();
      </script>
    <!-- 多说公共JS代码 end -->
  </section>
<% } %>


hexo主题更换

既然要鼓(zhuang)捣(bi)那博客要geek一点,不多说换个简约又不失bi格的主题

1. 下载yilia主题

1
2
3
$ #在我的D:/git/shenyubinblog根目录下
$ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia
$ #就会在themes的文件夹下下载好yilia主题

2. 配置yilia主题config.yml

在themes/yilia/路径下的_config.yml文件用我的打开能让我等到头发白的Hbuilder来编辑末尾带*的就是我修改的地方

menu:
  主页: /
  所有文章: /archives *

# SubNav
subnav:
  github: "https://github.com/shenyubin" *
  #weibo: "#" *
  #rss: "#" *
  #zhihu: "#" *
  #douban: "#"
  #mail: "#"
  #facebook: "#"
  #google: "#"
  #twitter: "#"
  #linkedin: "#"

rss: /atom.xml

# 是否需要修改 root 路径
# 如果您的网站存放在子目录中,例如 http://yoursite.com/blog,
# 请将您的 url 设为 http://yoursite.com/blog 并把 root 设为 /blog/。
root: 

# Content
excerpt_link: more
fancybox: true
mathjax: false

# 是否开启动画效果
animate: true 

# 是否在新窗口打开链接
open_in_new: false

# Miscellaneous
google_analytics: ''
#favicon: /favicon.png

#你的头像url
avatar: "/img/head_portrait.jpg" *

#是否开启分享
share_jia: true
share_addthis: false

#是否开启多说评论,填写你在多说申请的项目名称 duoshuo: duoshuo-key
#若使用disqus,请在博客config文件中填写disqus_shortname,并关闭多说评论
duoshuo: false

# 如不需要,将该项置为false
# 比如
#smart_menu:
#  friends: false

smart_menu:
  innerArchive: '所有文章'
  tagcloud: '标签'
  friends: '友链'
  aboutme: '关于我'

friends:
 github博客: https://shenyubin.github.io/ *
  刘恩的博客: https://leenty.github.io/ *
  #友情链接4: http://localhost:4000/
  #友情链接5: http://localhost:4000/
  #友情链接6: http://localhost:4000/

aboutme: 这是一只<br><br>喜欢鼓(xia)捣(gao)的前端  *

3. 修改根目录的配置文件

在更目录的_config.yml文件中吧theme的属性改成yilia
ps: 没错我就掉坑里的了,在theme:yilia之间一定要有一个空格,不然会报错。

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: yilia

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repository: git@github.com:shenyubin/shenyubin.github.io.git
  branch: master

打开localhost:4000就能看到我的博客了,然后部署到github就可以了
shenyubinblog

嗯,更换个主题原来就这么简单!




理想状态是上面的,但是事实却是经过了无数的下面这样的坑,看看笑过就好

在配置yilia的config文档后
本地预览:出错(检查出就是自己电脑配置的问题,只能半英文写:github博客在另一台电脑上没有遇到这个问题)
error2.jpg


在配置更目录config文档后
同样的我的github的地址用https和用ssh方式还不同,我的笔记本上用https地址死活不给你部署,一换ssh地址就ok了。

deploy:
  type: git
  repository: https://github.com/shenyubin/shenyubin.github.io.git
  branch: master

同样是github上复制下来的你们哥俩还要分各家,吵个架!

deploy:
  type: git
  repository: git@github.com:shenyubin/shenyubin.github.io.git
  branch: master



在配置更目录config文档后
作为一只爱鼓(xia)捣(搞)的前端我用windows自带的命令窗口cmd也试着建博客,理想很美好,现实就是下面的
error3.jpg

但是同样的配置没动过我前脚关掉windows自带的命令窗口cmd,后手用git bash他就部署好了!!!wort fuck
error_right.jpg


写文章的时候图片可以用网络地址图片也可以用本地的
我用了本地的放在了public/img中,但是每次提交后图片都没有了!!!仔细看了我的操作过程才发现原来是你!,于是我从此把图片放在themes/yilia/source/img/
clean.jpg


配置yilia主题config的时候没有注释favicon: /favicon.png
error4
error4-1


哈哈哈,看看笑过就好

hexo+github搭建个人博客

作为一只想要鼓(zhuang)捣(bi)的前端得有个写博客的地方,于是话不多说抄起键盘就是干

ps:github账号注册https://github.com/ 就不多说了

1.0 安装git(无脑下一步即可)

2.0 安装node(无脑下一步)

3.0 安装hexo

3.1 在如何地方鼠标右键选择git bash

1
$ npm install -g hexo



3.2 hexo安装完后在自己喜欢的地址下创建blog。我在D:\git\shenyubinblog中创建博客
ps:shenyubinblog这个文件夹是我自己右键新建的

1
2
$ cd D:/git/shenyubinblog
$ hexo init



3.3 加入nmp管理

1
$ npm install

这样在本地的一个hexo blog就已经初步完成了。
ps:这里执行命令的路径一直都在D:/git/shenyubinblog我中途有退出后别的地方是执行不了的自己犯过的小错误。


3.4 查看本地博客

1
2
$ hexo generate
$ hexo server

打开浏览器地址栏输入localhost:4000就可以看到本地的这个基础博客了。里面有一篇自带的Hello World文章。
ps:如果关掉git bash 或者在命令行按ctrl+c就会关闭本地服务器的预览。

小问题:

1
2
# 在hexo server后提示找不到该指令则:
$ npm install hexo -server --save


4.0 修改自己的博客配置和写文章

修改shenyubinblog/_config.yml文件
ps:这里的配置格式要求很严个属性名加上:然后要有空格再接属性。例如(type: git)如果冒号后面没有空格会报错,我再次踩坑2次,在这里跌倒就再在这里跌一次然后就跌傻了

1
2
3
4
5
6
7
# Site
title: shenyubin blog #标题
subtitle:
description:
author: shenyubin #作者
language: zh-CN #语言
timezone:
1
2
3
4
5
6
7
8
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
# 这条是https地址下面的是ssh地址我试了两台电脑有一台https地址识别不了
# repository: https://github.com/shenyubin/shenyubin.github.io.git与
repository: git@github.com:shenyubin/shenyubin.github.io.git
branch: master

新建一篇文章

1
$ hexo new 文章名字

在shenyubinblog/source/_posts/下面会生成 “文章名字”.md用markdown编写这个文档
ps:期间可以边保存边刷新看一直打开在哪里的localhost:4000,这里有篇不错的markdown语法说明

5.0 最最最关键的发布到github

5.1 在提交之间要先与自己的github配对好

1
$ ssh-keygen -t rsa -C "github上绑定的邮箱地址"

3个回车,就能在C:\Users\Administor.ssh中得到id_rsa和id_rsa.pub,把id_rsa.pub里的内容复制到你的https://github.com/settings/ssh 点add ssh key,title填你喜欢的,在下面框中粘贴。


5.2 在自己的github上新建一个名为 “你的用户名”.github.io的项目

点击绿色按钮会有一个复制clone地址的下拉框,可点击https或者ssh来切换clone地址,这个地址就可以直接填写到上面配置文件中的repository:
repo
ps:如果有一个地址不行可以试试另一个,我再此坑中躺尸半天。


5.3 部署到自己的github

1
2
3
$ hexo clean #清楚缓存
$ hexo generate #生成页面
$ hexo deploy #部署到github博客

当执行完hexo deploy后最后结尾是这样的才是部署成功了
right deploy
如果不是那就去找上面的”error:….”那个就是报错(突然发现报错了也不是那么可怕)
error1

5.4 写博客常用命令

1
2
3
4
5
6
$ hexo n "文章名" #新建文章 == hexo new
$ 能新建当然得能删除啊,如果要删除已经写好的文章就在source/_posts/下面找到相应文章删除就可以了
$ hexo clean #清楚缓存
$ hexo g #生成页面 == hexo generate
$ hexo s #开启本地预览服务器 == hexo server
$ hexo d #部署到博客 == hexo deploy
这样hexo+github的博客就完成了,是时候睡个觉庆祝下了!
这是一只<br><br>喜欢鼓(xia)捣(gao)的前端