分类目录归档:前端

快速切图

第一种

按C用切片工具,然后随便框选你要的内容,F3(mac可能是Fn+F3),然后cmd+n,ctrl+v或者(F4)(mac可能是Fn+F4)
整个过程不用3s

第二种

把你的要图层设置成组,然后命个名,比如xxx.png
然后菜单 > 文件> 生成 > 生成xxx资源什么鬼的
然后保存

第三种

把你要的图层合并,M,cmd+c,cmd+n,cmd+v

其他

第三方工具,一大堆

By:Evan

简单学习CSS box model Box-sizing

CSS盒模型描述了一个为文档树中的元素生成的并根据可视化格式模型进行布局的矩形框

先上一张Banner.
CSS box model

<!–more–>

Box-sizing这个CSS3中出现的新属性,以前只是用用,没有仔细的去学习一下(出来混总是要还的),最近不算忙就补习一下。

整理了一个简单的脑图

CSS box model mind map

一个简单的demo

<p data-height="265" data-theme-id="0" data-slug-hash="EyaqaV" data-default-tab="css,result" data-user="Keystion" data-embed-version="2" class="codepen">See the Pen <a href="http://codepen.io/Keystion/pen/EyaqaV/">box-sizing</a> by Keystion (<a href="http://codepen.io/Keystion">@Keystion</a>) on <a href="http://codepen.io">CodePen</a>.</p>
<script async src="//assets.codepen.io/assets/embed/ei.js"></script>

content-box(标准盒模型)

box.width = content-box.width(300px)
box.height = content-box.height(300px)

box所占位置大小

宽:
margin-left(10px) + border-left-width(10px) + padding-left(10px) + content-width(300px) + padding-right(10px) + border-right-width(10px) + margin-right(10px) = 360px

高:
margin-top(10px) + border-top-width(10px) + padding-top(10px) + content-height(300px) + padding-bottom(10px) + border-bottom-width(10px) + margin-bottom(10px) = 360px

border-box

box.width = border-left-width(10px) + padding-left(10px) + content-width(260px) + padding-right(10px) + border-right-width(10px) = 300px
box.height = border-top-width(10px) + padding-top(10px) + content-height(260px) + padding-bottom(10px) + border-bottom-width(10px) = 300px

box所占位置大小

宽:
margin-left(10px) + border-left-width(10px) + padding-left(10px) + content-width(260px) + padding-right(10px) + border-right-width(10px) + margin-right(10px) = 320px

高:
margin-top(10px) + border-top-width(10px) + padding-top(10px) + content-height(260px) + padding-bottom(10px) + border-bottom-width(10px) + margin-bottom(10px) = 320px

wiki相关:

JavasSript 变量的寻址与传递

代码片段 1

var obj   = {};
    obj.x = 1;
    obj.y = 2;

function test (obj)  {
    obj.x = 111;
}

test(obj);
console.log(obj);
// result >>>>>>>>>  {x=111,y=2}

代码片段 2

var obj   = {};
    obj.x = 1;
    obj.y = 2;

function test(obj) {
    var obj2 = {};
        obj  = obj2;
}

test(obj);
console.log(obj)
// result >>>>>>>>>  {x=1,y=2}

代码片段一就不在讲述,但凡对值类型和引用类型有一定的了解的话,那这个应该是没疑问的。

<!–more–>

代码片段二有两个应该注意的地方:

1 test方法内变量的寻址

test方法内部可以取到三个变量,新定义了的对象obj2参数obj还有方法外的obj
这三个参数有一个特别要注意的地方是,后面两个的名字是一样的,这样在方法运行的时候一定会优先取得参数的那个obj变量。而方法外的那个obj参数实际相当于window.obj

2 变量的传递过程

在调用test方法,并传入方法外的obj变量,实际相当于传入window.obj这样一个引用类型①,也就是说代码obj = obj2;实际是对这个拷贝的地址的改变,因为这个地址只是个拷贝,所以这并不会改变其指向的真实对象。而代码片段1的obj.x = 111;这会通过obj这个地址查询到x这个属性,并对其赋值。

other

var num = 1;

function outFn() {
    this.num = 10;
    function inFn() {
        console.log(num);
        var num = 100;
        console.log(this.num);
        console.log(window.num);
    }
    return inFn;
}

var newfn = outFn();
new newfn();  // this指向了对象

注:
引用类型:引用类型的特点是在传递的过程中并不进行自身的值复制,而是传入地址的拷贝。

转自:http://www.cnblogs.com/rulee/archive/2012/09/03/2663800.html

PSD图层管理指南

PS图层命名和分组看似麻烦,会打断设计的兴致,但是当图层多得自己都找不到时就知道好处了。科学有调理的管理你的PSD既是一名优秀设计师的必备技能,也是设计师跟上下游同事打交道的礼仪准则。和你的基友协同工作的过程中,可以说对PSD图层的命名和管理是最大的冲突所在,一堆不知所云的“新建图层”和“图层1副本”只会让基友抓狂!

  • 图层管理的精髓在于:分组、链接和命名。
  • 合理使用图层分组(图层文件夹)。以UI组件、功能模块等为分组基准,图层分组可以更快地看清楚整个文件的架构,并且可以很快的找到想要的那一层。
  • 善用链接,把关联紧密的图层相互链接,这样能保持相对位置、大小不变。就像人的脖子和头是一个整体,相互连在一起的
  • 每个分组以及分组外的每个图层都必须命名,且是有意义的命名,像“图层1、副本、副本2、组3”这样的图层命名是严格禁止的,养成新建图层后第一件事就是命名的习惯。图层命名中英文均可。
  • icon与按钮。icon命名以icon-为前缀,按钮命名以btn-,例如:icon-close.png, btn-login.png , btn-login-hover.png
  • 删除不必要的图层。你是一个图层堆积狂吗?PSD在交付给前端之前,请删除不必要的图层。
  • 文本图层不要合并或格式化,方便修改及前端同事复制文本内容。
  • 纯色文本不要使用颜色叠加进行配色,请使用文字工具进行配色。
  • 字体的字号必须是整数,不要随意拉伸字体。除了会使字体变得难看模糊之外, HTML/CSS也无法实现这种效果。
  • 中大型、长期项目需要提供至少两份附件:1、所有icon与按钮(各种状态)的集合;2、设计稿配色标注,可使用“设计稿配色标注”工具。

转自:https://github.com/yyued/PSD-Etiquette

Some Sass writing standards

// 由于 Node 原生支持模块的作用域,并不需要额外的 wrapper
// "as though the module was wrapped in a function"

var a = require('./a')  // 加载模块(同步加载)
a.doSomething()         // 等上一句执行完才会执行

exports.b = function(){ // 暴露 b 函数接口
  // do something
}

Sass – CSS 预处理器

简介

CSS 预处理器:

定义一种新的语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,开发者可以使用这种语言进行编码工作

Sass背景

Sass是对CSS的语法的一种扩充,诞生于2007年,最早也是最成熟的一款CSS预处理器语言,它可以使用变量、常量、嵌套、混入、函数等功能,可以更有效有弹性的写出CSS

Sass已经有了两套语法规则:

  • 一个依旧是用缩进作为分隔符来区分代码块的;
  • 另一套规则和CSS一样采用了大括号作为分隔符。
    后一种语法规则又名Scss。(Scss更常用,以下说得Sass在没有特别指出得情况下,指的都是Scss)。

书写规范

  1. 声明文档的字符编码
  2. 导入引用 @mixinfunction 等等
  3. 文档的简要概述
  4. 嵌套层级不要太深,适当的时候使用 @at-root
  5. 不要忘记写;
@charset "UTF-8";
@import "mixin.scss"; //导入其他文件 
@import "mixin";      //导入其他文件 
/**
 * @fileoverview <%= projectName %>.
 * @author <%= author %> <<%= email %>>
 * @version <+DATE+>
 */

局部文件

名字以下划线开头比如 _reset.scss. 下划线让Sass知道这个文件是一个分部文件,不会为它单独产生一个CSS文件。可以使用@import导入分部文件.

———–_reset.scss———–

html,body,ul,ol {
   margin: 0;
  padding: 0;
}

———base.scss———–

/* base.scss */
@import 'reset'; // 可忽略下划线
body {
  font: 100% Helvetica, sans-serif;
  background-color: #efefef;
}

———编译后———–

/* base.scss */
html, body, ul, ol {
  margin: 0;
  padding: 0;
}

body {
  font: 100% Helvetica, sans-serif;
  background-color: #efefef;
}

常见错误

1. 编译后css文件中出现 @at-root
  • @at-root 是Sass3.3版本的新特性
  • 解决方法:升级你的sass版本
    • gem update sass
    • sass -v
    • Ps:升级过程中可能需要当前生产环境下的某个文件夹的读写权限;
    • ERROR: While executing gem … (Gem::FilePermissionError) You don’t have write permissions into the /usr/local/bin directory.
    • 执行命令:sudo chmod -R 777 <-filepath->
    • 关于”chmod“的更多信息,请百度或google学习
2. 忘记设置编码
Error: Invalid US-ASCII character "`\xE4`"
on line 4 of app/assets/scss/_web/topdeals-web.scss
Use --trace for backtrace.
Warning: Exited with error code 65 Use --force to continue.
Syntax error: Invalid GBK character "`\xE5`"

原因:文档没有设置 编码格式
解决方法:文档第一行@charset "UTF-8"; "UTF-8"大写

3. 句末忘记写 “;" 也会报错
@charset "UTF-8"
/**
 * @fileoverview Home Paga Stylesheet
 * @author shang.yantao shang.yantao@topka.cn
 * @copyRight topka.cn
 * @versioon v1.0
 */
body{
    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
}

第一行 @charset 句末忘记写 “;”。报错会出现在第8行(也就是错误本身的下一个css主体处,找错应该向上找;):
![](/images/posts2015/02-05/image2014-12-12 15-41-32.png)

gulp-ruby-sass 相关
gulp-ruby-sass: stderr: OptionParser::InvalidOption: invalid option: --sourcemap=none
Use --trace for backtrace.

升级sass> gem update sass

http://sass-lang.com/guide 官方文档

  • Preprocessing(预处理)
  • Variables(变量)
  • Nesting(嵌套)
  • Partials(局部文件)
  • Import(导入文件)
  • Mixins(混合变量)
  • Extend/Inheritance(扩展/继承)
  • Operators(运算符)

Bootstrap Scss 源码解析

Bootstrap Scss 源码解析

  • _bootstrap-compass.scss
  • _bootstrap-mincer.scss
  • _bootstrap-sprockets.scss
  • _bootstrap.scss
  • bootstrap 主体
    • _alerts.scss 警告信息
    • _badges.scss 徽章 消息提示
    • _breadcrumbs.scss 面包屑
    • _button-groups.scss 按钮组
    • _buttons.scss 按钮
    • _carousel.scss 旋转木马
    • _close.scss 关闭Icon
    • _code.scss 代码块
    • _component-animations.scss animations动画
    • _dropdowns.scss 下拉菜单
    • _forms.scss form表单
    • _glyphicons.scss 字体图标
    • _grid.scss 栅格系统
    • _input-groups.scss 输入框相关
    • _jumbotron.scss 巨幕 大块div
    • _labels.scss 标签相关
    • _list-group.scss 列表组
    • _media.scss 响应式相关
    • _mixins.scss mixins 相关
    • _modals.scss 模态框 模式对话框 弹出对话框的形式出现
    • _navbar.scss 导航栏
    • _navs.scss 导航 Tab 切换相关
    • _normalize.scss 处理浏览器之间差异
    • _pager.scss 翻页 上一页下一页
    • _pagination.scss 分页(多页)
    • _panels.scss 面板 标题内容
    • _popovers.scss 弹出框 上下左右弹窗
    • _print.scss 打印样式
    • _progress-bars.scss 进度条
    • _responsive-embed.scss 响应式特性的嵌入内容 iframe video embed obiect
    • _responsive-utilities.scss 响应式相关
    • _scaffolding.scss 脚手架
    • _tables.scss 表格相关
    • _theme.scss 主题
    • _thumbnails.scss 缩略图相关
    • _tooltip.scss 弹出提示条 上下左右
    • _type.scss 印刷相关
    • _utilities.scss 工具类 左右浮动 显示/隐藏
    • _variables.scss 常用变量
    • _wells.scss
    • mixins mixin相关
      • _alerts.scss 警告
      • _background-variant.scss 背景颜色
      • _border-radius.scss 圆角边框
      • _buttons.scss 按钮
      • _center-block.scss 居中对齐的块级元素
      • _clearfix.scss 清除浮动
      • _forms.scss 表单mixin
      • _gradients.scss
        • 水平渐变
        • 水平的三色渐变
        • 垂直渐变
        • 垂直的三色渐变
        • 角度渐变
        • 径向渐变
        • 条纹渐变
      • _grid-framework.scss 网格架构
      • _grid.scss 网格相关 左右边距相关
      • _hide-text.scss CSS图片替换技术 hide div
      • _image.scss 图片 圆角图片
      • _labels.scss 标签
      • _list-group.scss 列表组
      • _nav-divider.scss 分割线 存在导航栏 和 下拉菜单中
      • _nav-vertical-align.scss nav垂直居中
      • _opacity.scss 不透明度
      • _pagination.scss 分页
      • _panels.scss 面板
      • _progress-bar.scss 进度条
      • _reset-filter.scss 重置IE滤镜 filter
      • _resize.scss 是否可由用户调整元素尺寸等
      • _responsive-visibility.scss 响应式之后 显示
      • _size.scss 设置一个块级元素宽和高
      • _tab-focus.scss WebKit-style 风格 焦点效果
      • _table-row.scss 表格背景色
      • _text-emphasis.scss 文字颜色
      • _text-overflow.scss 文本溢出
      • _vendor-prefixes.scss 浏览器前缀 for 新属性