目录
HTML
1.如何理解HTML?
2.对WEB标准的理解?
2.1 结构层标准
2.2 表现层标准
2.3 行为层标准
3.对W3C的认识?
3.1 对于结构的要求
3.2 对于css和js的要求
4.什么是前端语义化?
4.1 标签是有语义的
4.2 HTML5的语义标签
5.HTML5新增的内容有哪些?
6..HTML的元素分类?
7.HTML嵌套关系?
8.HTML的默认样式?
css
1.介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?
2.box-sizing属性?
3.CSS选择器有哪些?哪些属性可以继承?
4.CSS3新增伪类有那些?
5. 垂直居中div的方法?
6.雪碧图(精灵图)统称CSS Sprites的作用?
7.伪类和伪元素的区别?
8.圣杯布局
9. 双飞翼布局
10.清除li之间的缝隙
11.BFC是什么?如何触发BFC?
12.清除浮动的方式
13.em和rem的区别?
14.CSS预处理器是什么? 常见的CSS预处理器有哪些?有什么区别?CSS预处理器的优缺点?
15.display有哪些值?说明他们的作用?
16.position的值?
17. CSS3有哪些新特性?
18.用纯CSS创建一个三角形的原理是什么?
19.css3实现0.5px的细线
20.怎么让Chrome支持小于12px 的文字?
21.开发中为什么要初始化css样式
22.style标签写在body后与body前有什么区别?
23.CSS属性overflow属性定义溢出元素内容区的内容会如何处理?
24.css设置字符间距
25.持续更新中
- HTML类似于一份word“文档”
- 描述文档的“结构”
- 有区块和大纲
Web标准是由一系列标准组合而成。一个网页主要由三部分组成:结构层、表现层和行为层。
对应的标准也分三方面:
- 结构化标准语言主要包括XHTML和HTML以及XML,
- 表现层标准语言主要包括CSS,
- 行为标准主要包括对象模型,DOM、ECMAScript等
结构化标准语言,就是W3C规定的主要包括HTML和XHTML以及XML,在页面body里面我们写入的标签都是为了页面的结构。
- 标签的书写,需要开始和结束。单便签除外;
- 块级元素不能放在p标签里面。li内可以包含div标签。
- 块元素里面可以放在块和内联,特殊的 p和 h1—h6里面不要放块元素,li和div可以放很多。因为这两个标签,本身就有容器的属性
- 内联里面要放内联,不要放块。(嵌套关系)
- 结构与表现分离
- 命名一定要规范
表现标准语言主要包括CSS,通过CSS样式表,通过CSS样式可以是页面的结构标签更具美感
- 尽可能使用外部引入的方式,达到分离的目的
- CSS选择器,优先级
- 代码简洁
页面和用户具有一定的交互,同时页面结构或者表现发生变化,标准主要包括对象模型(如W3C DOM)、ECMAScript并要求这三部分分离。
DOM是Document Object Model文档对象模型的缩写。
ECMAScript是ECMA(EuropeanComputer Manufacturers Association)制定的标准脚本语言(JAVAScript)
W3C(万维网)对web标准提出了规范化的要求,也就是在实际编程中的一些代码规范。
主要包含如下几点:
- 1)标签字母要小写
- 2)标签要闭合
- 3)标签不允许随意嵌套
- 1)尽量使用外链css样式表和js脚本。使结构、表现和行为分为三块,符合规范。同时提高页面渲染速度,提高用户的体验。
- 2)样式尽量少用行间样式表,使结构与表现分离,标签的id和class等属性命名要做到见文知义,标签越少,加载越快,用户体验提高,代码维护简单,便于改版。
- 3)不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性。
语义化就是是让机器可以读懂内容,web页面的解析是由搜索引擎来进行搜索,机器来解析。
h1~h6、thead、ul、ol等标签,初期的语义化标签:程序员利用HTML标签的id和class属性,进一步对HTML标签进行描述,如对页脚HTML标签添加如id="footer"或者class="footer"的属性(值)(使用有语义的对于需要声明的变量和class,id)
header/footer; section(章节、页眉、页脚)/article(内容区域); nav导航;aside 不重要的内容;em(emphasize)/strong增强; i(icon)制作图标
- 新的区块标签:section,article,nav,aside
- 表单增强:日期、时间、搜索(修改type的类型实现);表单验证;placeholder
- 语义增强:header/footer; section/article; nav导航;aside 不重要的内容;em(emphasize)/strong增强; i(icon)制作图标
- 块级元素block(方块形状,占据一整行):div ul ol li dl dt dd h1 h2 h3 h4…p
- 行内元素inline(一行中的某个位置):a b span img input select strong(强调的语气)
- inline-block(行内,有宽高属性):selection
行内元素:a、b、span、img、input、strong、select、label、em、button、textarea
块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
空元素:br、meta、hr、link、input、img
- 块级元素可以包含行内元素
- 块级元素不一定能包含块级元素(p标签不能包含div标签)
- 行内元素“一般”不能包含块级元素(a包含div是可以的)
- 默认样式的意义
- 默认样式代理的问题
- CSS Reset 的作用
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; }
标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin
用来控制元素的盒子模型的解析模式,默认为content-box
context-box:W3C的标准盒子模型,设置元素的 height/width 属性指的是content部分的高/宽
border-box:IE传统盒子模型。设置元素的height/width属性指的是border + padding + content部分的高/宽
CSS选择符:id选择器(#myid)、类选择器(.myclassname)、标签选择器(div, h1, p)、相邻选择器(h1 + p)、子选择器(ul > li)、后代选择器(li a)、通配符选择器(*)、属性选择器(a[rel=”external”])、伪类选择器(a:hover, li:nth-child)
可继承的属性:font-size, font-family, color
不可继承的样式:border, padding, margin, width, height
优先级(就近原则):!important > [ id > class > tag ]
!important 比内联优先级高
p:first-of-type 选择属于其父元素的首个元素
p:last-of-type 选择属于其父元素的最后元素
p:only-of-type 选择属于其父元素唯一的元素
p:only-child 选择属于其父元素的唯一子元素
p:nth-child(2) 选择属于其父元素的第二个子元素
:enabled :disabled 表单控件的禁用状态。
:checked 单选框或复选框被选中。
第一种
div绝对定位水平垂直居中【margin:auto实现绝对定位元素的居中】,
兼容性:,IE7及之前版本不支持
div{ width: 200px; height: 200px; background: green; position:absolute; left:0; top: 0; bottom: 0; right: 0; margin: auto; }
第二种
div绝对定位水平垂直居中【margin 负间距】
这或许是当前最流行的使用方法。
div{ width:200px; height: 200px; background:green; position: absolute; left:50%; top:50%; margin-left:-100px; margin-top:-100px; }
第三种
div绝对定位水平垂直居中【Transforms 变形】
兼容性:IE8不支持;
div{ width: 200px; height: 200px; background: green; position:absolute; left:50%; /* 定位父级的50% */ top:50%; transform: translate(-50%,-50%); /*自己的50% */ }
第四种
css不定宽高水平垂直居中
animation zzt第五种
将父盒子设置为table-cell元素,可以使用text-align:center和vertical-align:middle实现水平、垂直居中。比较完美的解决方案是利用三层结构模拟父子结构
animation zzt第六种
对子盒子实现绝对定位,利用calc计算位置
父元素设置:position: relative;
子元素设置:position: absolute;
left:calc((500px - 200px)/2);
top:calc((120px - 50px)/2);
对子盒子实现绝对定位,利用calc计算位置 zzt
1.将一个页面涉及到的所有图片都包含到一张大图中去。
2.利用CSS的 background-image,background- repeat,background-position 的组合进行背景定位。
3.减少网页的http请求,提高页面的性能;
4.CSS Sprites能减少图片的字节。
- 伪元素是真的有元素
- 前者是单冒号,后者是双冒号
- 111
- 222
- 333
- 444
- 555
h1文本
p文本1
p文本2
p文本3
p文本4
css1
css2
css3
伪元素