发表于: 2019-08-23 20:52:48

1 852


 今天完成的任务:

          1.学习CSS样式分离

          2.完成任务十五第二个页面。

          3.准备小课堂。

          4.总结代码规范。


  html规范

1、页面的第一行添加标准模式声明<!DOCTYPE html>

2、代码缩进:tab键设置四个空格(通常在软件右下角设置相应空格大小)

3、html中除了开头的DOC和'UTF-8'或者head里特殊情况可以大写外,其他都为小写,css类都为小写

4、建议为html根元素指定lang属性,从而为文档设置正确的语言lang="zh-CN"

5、不同doctype在不同浏览器下会触发不同的渲染模式< meta http-equiv="X-UA-Compatible" content="IE=Edge">

6、非特殊情况下样式文件必须外链至< head >...< /head>之间;非特殊情况下JavaScript文件必须外链至页面底部

7、尽可能减少div嵌套

8、在页面中尽量避免使用style属性,即style="…";写在相应的样式文件中

9、对于属性的定义,确保全部使用双引号,绝不要使用单引号

10、背景图片请尽可能使用sprite技术,减小http请求

11、给区块代码及重要功能(比如循环)加上注释,方便后台添加功能

12、不要使用@import,与<link>标签相比,@import指令要慢很多,不光增加了额外的请求次数,还会导致不可预料的问题。

  CSS规范

排版规范

1、如果是在html中写内联的css,则必须写成单行

2、每一条规则的大括号{前后加空格

3、属性名冒号之前不加空格,冒号之后加空格

4、每一个属性值后必须添加分号,并且分号后加空格

5、多个selector共用一个样式集,则多个selector必须写成多行形式

class命名

1、规则命名中,一律采用小写加中划线的方式,不允许使用大写字母或_

2、命名避免使用中文拼音,应该采用更简明有语义的英文单词进行组合

3、不允许通过1、2、3等序号进行命名;避免class与id重名

4、class用于标识某一个类型的对象,命名必须言简意赅

5、尽可能提高代码模块的复用,样式尽量用组合的方式

6、规则名称中不应该包含颜色(red/blue)、定位(left/right)等与具体显示效果相关的信息。应该用意义命名,而不是样式显示结果命名

  CSS书写规范

CSS有些属性是可以缩写的,比如padding,margin,font等等,这样精简代码同时又能提高用户的阅读体验。

去掉小数点前的“0”

简写命名——很多用户都喜欢简写类名,但前提是要让人看懂你的命名。

16进制颜色代码缩写——有些颜色代码是可以缩写的,我们就尽量缩写吧,提高用户体验为主。

长名称或词组可以使用中横线来为选择器命名。

不要随意使用Id——id在JS是唯一的,不能多次使用,而使用class类选择器却可以重复使用,另外id的优先级优先与class,所以id应该按需使用,而不能滥用。

相关的属性声明应该以下面的顺序分组处理:

1、Positioning位置属性(position, top, right, z-index, display, float等)

2、Box model盒模型 (width,height,padding,margin)

3、Typographic排版(font,line-height,letter-spacing,color,text-align等)

4、Visual外观(background,border等)


明天计划的事情:

            

              完成任务十五,准备开启JS任务、


遇到的问题:


    如何做默认样式重置?resetting 和 normalizing 之间有什么区别?

RESET和NORMALIZE的区别:

1. Normalize.css 保护了有价值的默认值

Reset通过为几乎所有的元素施加默认样式,强行使得元素有相同的视觉效果。 相比之下,Normalize.css保持了许多默认的浏览器样式。这就意味着你不用再 为所有公共的排版元素重新设置样式。当一个元素在不同的浏览器中有不同的默认值时, Normalize.css会力求让这些样式保持一致并尽可能与现代标准相符合。

2. Normalize.css 修复了浏览器的bug

它修复了常见的桌面端和移动端浏览器的bug。 这往往超出了Reset所能做到的范畴。关于这一点, Normalize.css修复的问题包含了HTML5元素的显示设置、 预格式化文字的font-size问题、在IE9中SVG的溢出、许多 出现在各浏览器和操作系统中的与表单相关的bug。

3. Normalize.css 不会让你的调试工具变的杂乱

使用Reset最让人困扰的地方莫过于在浏览器调试工具中大段大段的继承链, 如下图所示。在Normalize.css中就不会有这样的问题,因为在我们的准则中 对多选择器的使用时非常谨慎的,我们仅会有目的地对目标元素设置样式。

4. Normalize.css 是模块化的

这个项目已经被拆分为多个相关却又独立的部分, 这使得你能够很容易也很清楚地知道哪些元素被设置了特定的值。 因此这能让你自己选择性地移除掉某些永远不会用到部分(比如表单的一般化)。

5. Normalize.css 拥有详细的文档

Normalize.css的代码基于详细而全面的跨浏览器研究与测试。 这个文件中拥有详细的代码说明并在Github Wiki中有进一步的说明。 这意味着你可以找到每一行代码具体完成了什么工作、为什么要写这句代码、 浏览器之间的差异,并且你可以更容易地进行自己的测试。



我的小课堂是移动端有哪些常见布局。其中遇到的难点是:


    固定宽度布局开发WebApp如何实现多终端下自适应?  

Viewport的概念

1).通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域。

2).在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。

3).在默认情况下,一般来讲,移动设备上的viewport都是要大于浏览器可视区域的,这是因为考虑到移动设备的分辨率相对于桌面电脑来说都比较小,所以为了能在移动设备上正常显示那些传统的为桌面浏览器设计的网站。

移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小的。

移动设备哪些因素会引起css中px的变化?

在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。

1)从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的(意思就是你分辨率越大,css中1px代表的物理像素就会越多)。

2)用户对设备界面的缩放,例如,当用户把页面放大一倍,那么css中1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。

devicePixelRatio属性

1)它的官方的定义为:设备物理像素和设备独立像素的比例,也就是devicePixelRatio =物理像素/独立像素。

理解:css中的px可以看做是设备的独立像素,所以知道devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。

举个栗子:在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。

ideal viewport——完美适配移动设备的理想viewport。

所谓的完美适配指的是:

1)不需要用户缩放和横向滚动条就能正常的查看网站的所有内容;

2)显示的文字的大小是合适,比如一段14px大小的文字,不会因为在一个高密度像素的屏幕里显示得太小而无法看清,理想的情况是这段14px的文字无论是在何种密度屏幕,何种分辨率下,显示出来的大小都是差不多的。


收获:


在总结完HTML的书写规范后,又相继完成了小课堂知识点添加、



返回列表 返回列表
评论

    分享到