切图总结

前些日子仿了优酷的首页,中间遇到一些问题,积累了点经验,做个总结。

1. 需要最先明白的两点

不要只是无脑的切图,要去体会设计师的意图,不仅仅是还原设计稿,而且要尽可能去还原设计师的设计理念。
切图的时候就提前想好需求可能会有变化,这要求我们提前做点工作,减少需求变化时的工作量,一般是提取页面中的公共组件。如何提取公共组件,可以参考《编写高质量代码》。

2. 流程

仔细看PSD文件!!!!复杂些的PSD图,起码先看3个小时吧。看不好的话,后面推倒重来简直麻烦死!看PSD的时候主要是注意三个地方:
1. 确认好骨架设计,比如主要的布局方式(是浮动啊,普通流啊,还是绝对定位啊等等),分层设计并赋予相应的z-index值(可以在FW里标注上)。骨架设计好之后写出整理骨架的代码。
2. 提取共有的组件,一方面可以减少工作量,另一方面使得CSS文件的弹性更好,更好的应对需求的变化。提取组件的原则是:模块与模块与模块之间尽量不要包含相同的部分,如果有相同的部分尽量提取出来做成一个独立的模块。为了方便重用,每一个模块的结构都不应该太复杂。并且模块不应该太多,在模块尽可能少的原则下,做到尽可能简单,提高重用性。
3. 全局样式,比如字体样式,链接样式等,这样就不用见到一个字体就写一个样式了。
开始切图了,一次把图切完最省事。某些图标需要用雪碧图合成,减少HTTP请求。
从页首开始做,完全做完(不要留下一部分等到最后在做)一部分之后测试。
开始测量的时候,骨架部分(长宽,间距,背景颜色)可以尝试使用马克鳗来测量标注,比FW方便。具体细节,比如文字颜色,种类什么的,可以使用FW。
测试的时候一方面是测试浏览器兼容性,另一方面是测量像素对齐,推荐使用perfectpixel这个Chrome扩展,功能太强大!!!

3. 其他

选择器命名:
按照功能命名,而不是样式。
驼峰大小写区分单词,分割线区分层次。这样的两级命名法基本不会出现命名重复。
如何组织CSS文件:
可以按照功能划分,比如layout,font,color等。可以按照分区划分,比如header,footer,sidebar等。都可以,没有放之四海皆准的,按照实际的情况。这次我就尝试了base+common+page的结构。但是,在page层,在文件内部我又按照layout,font,color,header,footer,sidebar混合分类的结构。
在page层的文件中,我先把每一部分的注释写上,这样确定了CSS的结构,然后再一部分一部分的填充。
优先使用class,如果某个元素要在JS中添加动态效果并且只在页面中出现了一次,那么可以选择使用id标签,而不是class,这样在写JS的时候选择器的效率更高。

4. 遇到的问题

  1. 不指明图片大小,IE8甚至不能显示图片。
  2. 某个样式无效,一种可能是拼写错误,更可能的原因是选择器的权重太低,增加一加权重就好啦。只要打开调试器定位到元素,很容易找到出错的地方。
  3. 如果想要a链接链接到某个具体的万维网页,在链接前面加上http:// 就好了。

转载于:https://www.cnblogs.com/technology-life/p/4537601.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux更改cxxflags环境变量,在64位的ubuntu 14.04 上开展32位Qt 程序开发环境配置(pro文件中增加 QMAKE_CXXFLAGS += -m32 命令)...

为了能中一个系统上开发64或32位C程序,费了些周折,现在终于能够开始干过了。在此记录此时针对Q5.4版本的32位开发环境配置过程。1. 下载Qt 5.4 的32位版本,进行安装,安装过程中会发现一些32位的库没有安装,根据提示的错…

git 合并冲突_GIT提交记录和Revert commit过程分析

一、根据GIT提交记录查看提交过程先做个git分支的背景介绍图1步骤说明1⃣️ 项目A 默认分支是 master2⃣️ 基于master分支创建 f1、f2、test分支3⃣️ f1 发起合并请求到 test分支4⃣️ f2 fetch & merge test分支 (此时可能会有冲突)5⃣️ &#x…

使用android-junit-report.jar导出单元测试报告

Android在使用脚本编译和测试时,使用默认的testrunner不会输出文件类型的单元测试报告,每次只能分析logcat的无法直观的看到单元测试结果和报告,这给编写自动化脚本带来了不少麻烦,虽然可以自己动手编写支持junit测试报告输出的Te…

2020.2idea创建web_使用IDEA配置Tomcat(亲测成功)

优质文章导读: XML入门(零基础教程) 一文了解Java反射 Servlet入门(零基础教程)配置环境变量打开环境变量设置,点击新建 新建两个变量CATALINA_HOME和CATELINA_BASE,变量值为Tomcat的安装路径 打开Path 添加进去刚刚创建的两个变量 IDEA中配置Tomcat创建web项目 点击 号 选择 …

linux打开另一台linux的图形化,【工具大道】ssh登录Linux服务器,并显示图形化界面...

点击关注微信公众号 "程序员的文娱情怀"分享提纲:1. 概述2. mac版实现ssh登录,显示图形化1. 概述平时ssh登录到Linux服务器都是在命令行下进行操作的,简单高效。但是有些时候,需要配置一些Linux系统下的图形化软件的参数…

c++循环执行一个函数_循环

循环目标程序的三大流程while 循环基本使用break 和 continuewhile 循环嵌套01. 程序的三大流程在程序开发中,一共有三种流程方式:顺序 —— 从上向下,顺序执行代码分支 —— 根据条件判断,决定执行代码的 分支循环 —— 让 特定代…

如何配置一个最基本的web富文本编辑器?--之wangEditor(验证成功)

第一步&#xff0c;引用wangEditor的css文件&#xff0c;css文件最好在<head>中引用 <link rel"stylesheet" type"text/css" href"css/wangEditor-1.3.0.min.css"> 第二步&#xff0c;引用jquery和wangEditor.js&#xff0c;js文件最…

地表反射率影响因素_【热岛强度可影响城市夏季降水落区】

本期嘉宾&#xff1a;北京城市气象研究院研究员 苗世光 副研究员 张亦洲采访人&#xff1a;中国气象报记者 宛霞 通讯员 楚艳丽本期观点&#xff1a;城市化对天气的影响越来越显著 &#xff0c;城市热岛强度可作为区分城市下垫面对夏季降水影响类型的重要因素。一直以来&#x…

linux 查看机器ram,Linux查看CPU信息、机器型号等硬件信息

测试机器的硬件信息&#xff1a;查看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c8 Intel(R) Xeon(R) CPU E5410 2.33GHz(看到有8个逻辑CPU, 也知道了CPU型号)# cat /proc/cpuinfo | grep physical | uniq -c4 physical id : 04…

gitlab 将管理员权限移交给ldap账户_CDPDC中Atlas集成FreeIPA的LDAP认证

文档编写目的Cloudera从CM6.3版本开始&#xff0c;引入了Red Hat IdM来做整个集群的认证&#xff0c;Red Hat IdM对应的软件为FreeIPA&#xff0c;在本文中描述如何使用FreeIPA来做CDP-DC集群的认证。关于FreeIPA服务器搭建参考<使用FreeIPA对Linux用户权限统一管理>。之…

emwin edit控制的输入长度小数点怎么处理_变频器学习,变频器主电路与控制回路学习...

一、变频器主电路的接线流程1、当我们拿到变频器&#xff0c;挤压变频器两侧凹槽&#xff0c;打开上盖&#xff0c;取下挡线板&#xff0c;变频器的R, S, T端子接电源线&#xff0c;U, V, W端子接电机线&#xff0c;地线符号处接地线。2、我们将电源线的黄、绿、红按照顺序接到…

linux 安全审计功能,数据库安全审计在数据安全中的功能

导读在数据安全治理过程中&#xff0c;首先通过数据资产梳理确定敏感数据的存储位置和使用情况&#xff0c;从而制定有效的数据安全管理制度和规范一. 数据安全治理稽核在数据安全治理过程中&#xff0c;首先通过数据资产梳理确定敏感数据的存储位置和使用情况&#xff0c;从而…

python识别图片上的文字_Python如何识别图片中的文字 【转】

Python如何识别图片中的文字&#xff0c;这里给个案例并附上详细步骤&#xff1a;模块包的安装&#xff1a; 1、安装PIL&#xff1a;pip install Pillow 2、安装pytesser3&#xff1a;pip install pytesser3 3、安装pytesseract&#xff1a;pip install pytesseract 4、安装aut…

[LeetCode-JAVA] Remove Linked List Elements

题目&#xff1a; Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val 6Return: 1 --> 2 --> 3 --> 4 --> 5 思路&#xff1a;设置前置指针&#xff0c;并随…

win10电脑桌面透明便签_在win10电脑桌面上使用工作跟进提醒办公软件可用哪个便签软件?...

每天在开展工作之前&#xff0c;您会列一个详细的计划清单吗&#xff1f;很多人为了避免工作中出现躁动不安的情绪&#xff0c;会提前制定工作跟进计划表&#xff0c;将每日的每项工作一条条记录好&#xff0c;按照计划有目的地来完成。由于在日常工作中&#xff0c;电脑是办公…

c语言 strcpy作用,c语言中strcpy的用法

c语言中strcpy的用法的用法你知道吗&#xff1f;下面小编就跟你们详细介绍下c语言中strcpy的用法的用法&#xff0c;希望对你们有用。c语言中strcpy的用法的用法如下&#xff1a;strcpy原型声明&#xff1a;extern char *strcpy(char* dest, const char *src);头文件&#xff1…

python array函数_Python 中的range()函数与array()函数

我们在Python中存在一个非常好用的range()与array()函数&#xff0c;下面作用法简要介绍。 一、range()函数 >>> range(1,10)   ——>不包括10 [1, 2, 3, 4, 5, 6, 7, 8, 9]>>>range(1,10,2)  ——>1到10&#xff0c;间隔为2(不包括10) [1, 3, 5, …

ajax封装调用

封装的ajax&#xff1a; function ajaxJson(url,data,callfun){$.ajax({type:"POST",url:url,data:data,dataType:json,success:callfun,error:function(){$(.modal-body).html(参数丢失&#xff0c;请重新操作一次);$(#myModal).modal(show);},});}使用实例&#xf…

c++源码矢量图形编辑器_下一代代码编辑器的设想

在通过各种编辑工具使用各类编程语言进行开发的过程中&#xff0c;我们会被大量噪音分心。举个例子我们为了美观性&#xff0c;为了代码格式和对齐&#xff0c;我们会大量的插入/删除Space、Tab和Enter。对于一些同层级的操作&#xff0c;我们可能会手工对齐它。举一个极端的例…

c语言inline不起作用,C语言inline内联函数学习小结

//inline(内联)函数&#xff1a;将普通的函数定义为inline函数&#xff0c;可以避免普通函数入栈出栈的开销&#xff0c;它是将函数内的代码直接粘贴到调用处。除此之外&#xff0c;它和普通函数无异。//要成为inline函数必须具备以下几点&#xff1a;//1、函数代码很短&#x…