趁着清明的3天时间,我专门看了xhtml的一套视频,虽然是xhtml但是也隐喻了很多经验,巩固了一下自己的基础,我自己也写了很多大大小小的东西,但是越写我越发觉自己基础的薄弱,果然没错!还是学到了一些我以前没理解、不知道的一些概念和一些经验之谈,这里我写一篇文章做一个总结。
一、首先W3C标准
结构、表现、动作 与 html、css、javascript相对应,它本意是结构表现分离,而且按照html规范编写结构。
标签方面:
-所有标签都要小写、关闭、并且合理嵌套,id不能重复
-标签要有属性,属性必须有值,并且用“”表示
-img标签不能忽略alt属性
-表格标签不适用height属性
-尽量减少ifream的使用会影响浏览器响应速度,虽然在html5中也能使用ifream
内容模型:
-body、form、blockquote仅能包含块级元素
-文本、图像、链接等内联元素不能直接暴露在body标签中,必须用其他标签包裹
-内联元素不能包含块级元素
其他方面:
-特殊字符用编码表示
番外:
初学者的误区:
1、div是万能的!
2、table是丢人的!
3、为标准而标准
1、div严格意义上称作容器,大家有一些页面的装饰可以通过嵌套div来实现,但是千万不能整个页面全都用div来编写,很多标签是有特定含义的,比如说h1~h3,p,strong等,在html5中就更加语义化了比如,footer、head、nav、article、section等标签,还有很多标签,我这里只说常用的一些标签,而且如果整个页面全都用div来写不便于搜索引擎搜索到你的网站。
2、table并不丢人,只不过很少用而已,table是用来装载数据的,所有标签只要合理应用就不会丢人。
3、我们写网站网页其实说白了是为了客户和用户来看的,根据他们的需求我们学出对应的网站,我们强调页面应该灵活编写,不能死板的来。
二、你必须掌握的
1、块状元素和内联元素
(1)块状元素
块元素一般是其他元素的的容器元素,块元素一般从新的一行开始,它可以容纳文本、内联元素和其他块状元素,通过width和height属性可以设置其大小,常见的块元素有 h标签 和p标签、div标签
番外:form标签也属于块标签并且只能容纳块级标签
(2)内联元素
内联元素非块级元素。内联元素只能容纳文本或者其他内联元素,不会独占一行,width和height对其不起作用,常见的内联元素有 a img span 等
番外: 这里我提一下 w3c为了让开发人员更方便 增加了一个 inline-block 属性值 ,包含块状元素的特点:能够改变元素大小,也包含内联元素的特点:大小只有盒内元素大小
2、盒子模型
下图能代表所有,具体和深入请看各种大神技术博:
3、css页面控制样式方法
(1)行内式
(2)内嵌式
(3)链接式
(4)导入式
优先级:
就近元素,行内>内嵌>链接>导入,在国内经前端经常用的是 链接式。
4、常用选择器
-标签选择器(div、p)
-id选择器(#)
-类选择器(.)
-通用选择器(*)
-伪类选择器(:link,:active,:hover,:visited)
优先级:
ID>类>标签>通用
5、文本流
文本流讲述的是一个概念性的东西,页面内的元素是:从上至下、从左自右的顺序进行排列的。
番外:
如何脱离文本流?
我们为了方便布局,通常使用浮动和定位的方式布局
6、命名方法
-骆驼命名法
-帕斯卡命名法
-匈牙利命名法
-或者全首字母大写
命名规则:
头:head/header
内容:content/container
尾:foot/footer
导航:nav/navigation
侧栏: sidebar
三、css的控制能力
1、首行缩进
text-indent:2em;
如果文字是英文,也是缩进2个汉字的宽度
知识点:
px 像素
rem 相对浏览器的单位
% 百分比单位
cm、mm 绝对单位
2、增强页面文字灵活性
在body中设置文字大小font-size:62.5% 在需要设置12px的地方设置文字大小为1.2em以此类推14px相对1.4em
因为任意浏览器默认字体高度为16px 1em=16px
1px=1/16em 10px=10/16em=0.625em=0.625*1em=62.5%*1em
12px=62.5%*1.2em
14px=62.5%*1.4em
16px=62.5%*1.6em
番外:
ie下设置1.2em会比12px大,为什么? 怎么处理?
因为ie浏览器总是吧 62.5 小数点换算错所以我们以后设置页面大小直接设置为63%就可以兼容所有浏览器
3、浮动和定位
浮动:
float:left
float:right
定位:
position:absolute
position:relative
番外:
清除浮动:
-clear:both
-clear:left
-clear:right
浮动清除的并不是本元素的浮动,清除的是上级元素对于本元素的影响,我们可以讲页面整体分为三级
第一级是文本流 也就是页面默认的显示方式
第二级是浮动 它脱离文本流向上一层
第三级是定位 它是比浮动更高一级的为第三级
4、position
-absolute
-relative
-static
-Inherit
-Fixed
Absolute:绝对定位,绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块,绝对定位比较灵活如果你想,可以定位到浏览器的任意点
Relative: 相对定位,相对与父级盒子定位
static:默认的元素定位方式
inherit:继承父级盒子的position属性 这个没多大用,如果我们要继承的话,倒不如自己重写一个省的自己再找一遍元素。
Fixed:元素固定在浏览器body的一个位置,浏览器上拉下拉都不会改变位置
番外:一般网站都是都是以浮动为主,定位为辅,你们可以看看现在的淘宝网站。
5、CSS Reset
css样式具有继承和重置的作用
常用的CSS Reset
*{ margin:0,padding:0 }
body,div,p,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,form,input,textarea,th,td {padding:0; margin:0;}
table {border-collapse: collapse; border-spacing: 0;}
img {border: 0;}
ol,ul{list-style: none;}
h1,h2,h3,h4,h5,h6 {font-weight: normal; font-size: 100%;}
四:页面调试/纠错方法
1、页面debug调试
2、排除法
3、设置背景法
番外:
网站的页面的加载顺序是按照文本流的顺序加载,
我们编写页面优先考虑:
1、搜索引擎加载
2、便于浏览者观察
3、页面结构简单整洁
最后
告诉大家一个调试神器:http://getf5.com/
以上是一些经验之谈和一些基础的东西。
本文如果有描述错误的地方希望及时指出,我会积极改正。
生命不止、学习不止。
越学习越发现自己不足的地方还有很多,我会继续加油的!