
---/html/ |---- /index |---- /index/index.html 首页 |---- /user/ 与用户相关的页面 |---- /user/login.html 登录页 ---/css/ |---- /base.css 重置浏览器样式 |---- /page 逻辑页面的css |---- /page/pagename.css 单独书写的css |---- /common.css css通用样式库 ---/js/ |---- /lib 公用组件 |---- /lib/jquery.2.2.3.min.js 调用jq库文件 |---- /page 逻辑页面的js |---- /page/pagename.js 单独书写的js |---- /common.js 公用方法 ---/img/ |---- /page 页面对应的图片 |---- /page/wap 手机端图片夹 |---- /page/wap/wap_icon.png 手机端图标 |---- /logo.png 公用图片
项目:用项目对应的英文单词命名
文件及文件夹:
命名参考如下:
| CSS样式命名 | 说明 |
|---|---|
| 网页公共命名 | |
| wrapper | 页面外围控制整体布局宽度 |
| container或content | 容器,用于最外层 |
| layout | 布局 |
| head, header | 页头部分 |
| foot, footer | 页脚部分 |
| nav | 主导航 |
| sub_nav | 二级导航 |
| menu | 菜单 |
| sub_menu | 子菜单 |
| side_bar | 侧栏 |
| sidebar_l, sidebar_r | 左边栏或右边栏 |
| main | 页面主体 |
| tag | 标签 |
| msg message | 提示信息 |
| tips | 小技巧 |
| vote | 投票 |
| friendlink | 友情链接 |
| title | 标题 |
| summary | 摘要 |
| login_bar | 登录条 |
| search_input | 搜索输入框 |
| hot | 热门热点 |
| search | 搜索 |
| search_output | 搜索输出和搜索结果相似 |
| search_bar | 搜索条 |
| search_results | 搜索结果 |
| copyright | 版权信息 |
| branding | 商标 |
| logo | 网站LOGO标志 |
| site_info | 网站信息 |
| site_info_legal | 法律声明 |
| site_info_credits | 信誉 |
| join_us | 加入我们 |
| partner | 合作伙伴 |
| service | 服务 |
| regsiter | 注册 |
| arr arrow | 箭头 |
| guild | 指南 |
| site_map | 网站地图 |
| list | 列表 |
| home_page | 首页 |
| sub_page | 二级页面子页面 |
| tool, toolbar | 工具条 |
| drop | 下拉 |
| dorp_menu | 下拉菜单 |
| status | 状态 |
| scroll | 滚动 |
| tab | 标签页 |
| left right center | 居左、中、右 |
| news | 新闻 |
| download | 下载 |
| banner | 广告条(顶部广告条) |
向"无ID,无层级,无标签"准则靠拢,可有效提高重用性,减小文件大小,提升渲染效率
用来区分页面的注释,如/******************************************产品中心****************************************/
模块的注释,如/*首页导航栏*/
由于定位(positioning)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。盒模型决定了组件的尺寸和位置,因此排在第二位。 其他属性只是影响组件的内部(inside)或者是不影响前两组属性,因此排在后面。
使用不换行方式书写,增加书写速度
.box{background: none repeat scroll 0 0 transparent;bottom: 11px;position: relative;width: 22px;z-index: 33;}
3.1.1 JS 变量命名
命名方法:小驼峰式命名
命名规范:前缀应当是名词。(函数的名字前缀为动词,以此区分变量和函数)
命名建议:尽量在变量名字中体现所属类型,如:length、count等表示数字类型;而包含name、title表示为字符串类型。
示例
// 好的命名方式 var maxCount = 10; var tableTitle = 'LoginTable'; // 不好的命名方式 var setCount = 10; var getTitle = 'LoginTable';
3.1.2 JS 函数命名
命名方法:小驼峰式命名法
命名规范:前缀应当为动词
命名建议:可使用常见动词约定
| 动词 | 含义 | 返回值 |
| can | 判断是否可执行某个动作(权限) | 函数返回一个布尔值。true:可执行;false:不可执行 |
| has | 判断是否含有某个值 | 函数返回一个布尔值。true:含有此值;false:不含有此值 |
| is | 判断是否为某个值 | 函数返回一个布尔值。true:为某个值;false:不为某个值 |
| get | 获取某个值 | 函数返回一个非布尔值 |
| set | 设置某个值 | 无返回值、返回是否设置成功或者返回链式对象 |
| load | 加载某些数据 | 无返回值或者返回是否加载完成的结果 |
3.1.3 JS 常量命名
命名方法:名称全部大写
命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词
示例
var MAX_COUNT = 10; var URL = 'http://www.runoob.com';
3.1.4 JS 文件命名
使用短线(-)或句点(.)作为分隔符号,推荐使用句点,最好使用小写英文字符,不要使用其他符号和扩展字符,如 jQuery UI 1.9.0 的源文件可命名为"jquery-ui-1.9.0.js"
使用 .js 扩展名,这个扩展名的兼容性最好。其实任何扩展名都可以,只要是 text 类型、编码正确即可
用句点分隔表示名称中的从属关系,范围大的在前,如jQuery 的表单插件 Form既可以命名为jquery.form.js
3.2 js 注释格式
使用多行注释,以/*开头,*/结尾
3.3 js 注意事项
书写格式
性能
尽量减少标签层级
双标签必须闭合,单标签用斜线闭合
HTML第一行统一使用HTML5标准<!DOCTYPE html>
一律统一标签结尾斜杠的书写形式:`<br />` `<hr />` 注意之间空格
避免使用已过时标签,如:`<font>` `<frame>` `<s>`
`<img>`标签默认默认格式:`<img src="#" alt="默认时文字" />`
`<a>`标签默认格式:`<a href="#" title="链接名称">xxx</>` 注:`target="_blank"` 根据需求决定
style、link、script可省略type属性,因为 text/css 和 text/javascript 分别是他们的默认值
<!--内容--> <div class="content"> <p>content</p> </div>
手机端的自适应布局尽量采用弹性布局,而不是百分比
`css`文件都 置于头部
HTML换行缩进:采用 tab空格
其他效果`js`及`统计代码` 文件置于尾部
手机端的页面都按750px来做,显示效果按375px
图片大小:切图时使用web格式保存,减小图片大小
图片尺寸:一律采用整数,如20X20,50X50
图片合并:小图片一律要合并,并保存对应的psd文件,以便后期修改
原文链接:https://lingdianit-com.github.io/Front-End-Standards/
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些
Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile
我想找到在某些文本中找到一些(让它是两个)句子的好方法。什么会更好-使用正则表达式或拆分方法?你的想法?应JeremyStein的要求-有一些例子示例:输入:ThefirstthingtodoistocreatetheCommentmodel.We’llcreatethisinthenormalway,butwithonesmalldifference.IfwewerejustcreatingcommentsforanArticlewe’dhaveanintegerfieldcalledarticle_idinthemodeltostoretheforeignkey,butinthis
我正在为毕业设计开发GEM,TravisCI构建不断失败。这是我在Travis上的链接:https://travis-ci.org/ricardobond/perpetuus/builds/8709218构建错误是:$bundleexecrakerakeaborted!Don'tknowhowtobuildtask'default'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in`eval'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_
我正在使用Maruku,将Markdown(超集)转换为HTML,你知道我该怎么做才能从HTML转换为Markdown吗? 最佳答案 Google发现了一个名为reverse_markdown的ruby脚本.它似乎可以满足您的需求。 关于ruby-on-rails-我需要从HTML转到markdown,有什么建议吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/175162
我正在使用ruby1.8.7。p=lambda{return10;}deflab(block)puts'before'putsblock.callputs'after'endlabp以上代码输出为before10after我将相同的代码重构到这里deflab(&block)puts'before'putsblock.callputs'after'endlab{return10;}现在我收到LocalJumpError:意外返回。对我来说,这两个代码都在做同样的事情。是的,在第一种情况下我传递了一个过程,在第二种情况下我传递了一个block。但是&block将该block转换为pro
我在Ruby中有一个哈希:hash=Hash.new里面有一些键值对,比如说:hash[1]="One"hash[2]="Two"如果散列包含键2,那么我想将“Bananas”添加到它的值中。如果散列没有键2,我想创建一个新的键值对2=>"Bananas"。我知道我可以通过首先使用has_key?检查散列是否具有key2来做到这一点,然后采取相应的行动。但这需要一个if语句和不止一行。那么是否有一种简单、优雅的单行代码可以实现这一目标? 最佳答案 这个有效:hash[2]=(hash[2]||'')+'Bananas'如果您希望所有
我有几个跳过的规范。Pending:(Failureslistedhereareexpectedanddonotaffectyoursuite'sstatus)1)...#Notyetimplemented#./spec/requests/request_spec.rb:22如何抑制未决规范的输出? 最佳答案 您可以添加以下配置选项以从运行中过滤掉所有待处理的规范:RSpec.configuredo|config|config.filter_run_excludingskip:trueend此外,here是一个更详细的抑制输出的建议
我正在构建Rails应用程序并使用RSpec制定测试。我为我正在创建的名为current_link_to的方法编写了测试。此方法应该检查当前页面是否对应于我传递给它的路径,并将current类添加到生成的链接中,以防它匹配。这是规范:require"spec_helper"describeApplicationHelperdodescribe"#current_link_to"dolet(:name){"Products"}let(:path){products_path}let(:rendered){current_link_to(name,path)}context"whenthe
tl;dr:跳到最后一段最近一直在尝试使用RSpec的requestspecs做一些更有针对性的测试。我的测试主要是这样的:通用cucumber功能规范,即用户转到带有评论的帖子,对评论点赞,作者获得积分modelspecs当模型实际上具有某些功能时,即User#upvote(comment)controllerspecs我在其中stub了大部分内容,只是试图确保代码按照我期望的方式运行viewspecs当View中有一些复杂的东西时,例如仅在用户尚未投票时呈现upvote链接,这些被stub为好吧问题是当我有一些导致错误的特定场景时,一切似乎都在我无法重现它的模型/View层中工作。