HTML
概念:
超文本标记语言。
核心:
语义。
主体结构:
<!doctype html> //告诉浏览器这是什么语言
html //主体
head //头文件
body //页面主体
meta //设置字符集,放在head标签的第一行
title //网页标题
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。(重点:告诉浏览器按照何种规范解析页面)
主流浏览器内核:
IE: trident内核
Firefox:gecko内核
Safari:webkit内核
Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核
Chrome:Blink(基于webkit,Google与Opera Software共同开发)
常用的标签:
功能性标签
超链接:<a herf=“链接地址”>文字内容 </a>
表格:table
tr行
td列
th相当于加粗居中的td
align对齐方式
bgcolor表格背景颜色
collspacing=“0” 单元格之间的距离为0
border-collapse:collapse表格内部之间的距离
rules=“all”内部边框的显示
border=“1”表格边框的宽度
表单:form用于用户输入input表单的
iframe:iframe 元素会创建包含另外一个文档的内联框架,无法解析的文字放入会原样输入
列表:
无序列表:ul li
有序列表:ol li
自定义列表:dl dt (dd修饰dt)
图片:img
通过img标签的src引入图片地址
【注】在开发过程中一定要写alt属性,当图片加载失败的时候显示的文字,会加强搜索引擎对网页的排名
img的alt与title有何异同?
alt(alt text):为不能显示图像、窗体或applets的用户代理(UA),alt属性用来指定替换文字。替换文字的语言由lang属性指定。
(在IE浏览器下会在没有title时把alt当成 tool tip显示)
title(tool tip):该属性为设置该属性的元素提供建议性的信息。
辅助性标签
部分举例:
b 加粗
i 倾斜
strong 加粗
em 加粗
....
strong与em的异同?
strong:粗体强调标签,强调,表示内容的重要性
em:斜体强调标签,更强烈强调,表示内容的强调点
HTML5新增的语义化结构标签:
section元素 表示页面中的一个内容区块
article元素 表示一块与上下文无关的独立的内容
aside元素是辅助 article 区域的内容。也可以理解为整个网页的 辅助区域
header元素 表示页面中一个内容区块或整个页面的标题
footer元素 表示页面中一个内容区块或整个页面的脚注
nav元素 表示页面中导航链接部分
figure元素 表示一段独立的流内容,使用figcaption元素为其添加标题(第一个或最后一个子元素的位置)
main元素 表示页面中的主要的内容(ie不兼容)
语义化功能标签:
meter
progress
output
.....
无语义标签:
div
span
多媒体标签:
audio 音频播放(注意:<audio>元素不支持播放wma格式的文件)
video 视频播放
source 为video和audio提供媒介资源
media:规定媒体资源的类型(没有浏览器支持)
src:规定媒体文件的url
type:规定媒体资源的MIME类型
常用类型
音频
audio/ogg
audio/mpeg
视频
video/ogg
video/mp4
video/webm
标签等级分类:
文本级标签:
span
i
b
p(最特殊)
...
容器级标签:
div
h1
ul li
....
条件注释:
gt:大于
lt:小于
gte:大于等于
lte:小于等于
写法示例
<!--[if lte ie8]>
您的浏览器版本过低
<![endif]-->
CSS
定义:
层叠样式表
核心:
层叠
用法:
写在标签里的style属性:权重最高
style标签:直接写css
@import url()
link标签:引入外部样式
选择器:
三大基础选择器:
标签:权重最低
id:权重最高
class:权重其次
高级选择器:(具体用法及规则请查询w3c)
并集
交集
后代
子元素选择器
相邻兄弟选择器
普通兄弟选择器
通配符
超链接伪类选择器
css3选择器:
属性选择器:
E[attr] 选择具有某个属性的元素
E[attr=value] 选择某个属性等于指定值的元素
E[attr^=value] 选择某个属性值以value开始的元素
E[attr$=value] 选择某个属性值以value结尾的元素
E[attr*=value] 选择某个属性值中包含value的元素
E[attr~=value] 属性列表中包含有value
E[attr|="value"] 指定了属性名,并且属性值是value或者以“value-”开头的值(比如说zh-cn);
结构伪类选择器:
X:first-child 匹配子集的第一个元素。IE7就可以支持
X:last-child匹配父元素中最后一个X元素
X:nth-child(n)用于匹配索引值为n的子元素。索引值从1开始
X:only-child这个伪类一般用的比较少,比如上述代码匹配的是div下的有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。
X:nth-of-type(n)匹配同类型中的第n个同级兄弟元素X
X:only-of-type匹配属于同类型中唯一兄弟元素的X
X:first-of-type匹配同级兄弟元素中的第一个X元素
X:nth-last-child(n)从最后一个开始算索引。
X:nth-last-of-type(n) 匹配同类型中的倒数第n个同级兄弟元素X
X:root匹配文档的根元素。在HTML(标准通用标记语言下的一个应用)中,根元素永远是HTML
X:empty匹配没有任何子元素(包括包含文本)的元素X
目标伪类选择器:
E:target 选择匹配E的所有元素,且匹配元素被相关URL指向
UI元素状态伪类选择器:
E:enabled 匹配所有用户界面(form表单)中处于可用状态的E元素
E:disabled 匹配所有用户界面(form表单)中处于不可用状态的E元素
E:checked 匹配所有用户界面(form表单)中处于选中状态的元素E
E:selection 匹配E元素中被用户选中或处于高亮状态的部分
否定伪类选择器:
E:not(s) (IE6-8浏览器不支持:not()选择器)
动态伪类选择器:
E:link
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并未被访问过。常用于链接描点上
E:visited
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并已被访问过。常用于链接描点上
E:active
用户行为选择器
选择匹配的E元素,且匹配元素被激活。常用于链接描点和按钮上
E:hover
用户行为选择器
选择匹配的E元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a:hover
层级选择器:
E>F 子元素选择器
E+F 相邻兄弟选择器
E~F 通用选择器/普通兄弟选择器
权重比较:
id、class、html标签选择器的数量
权重不同看权重等级
权重相同看位置
【继承】
看谁近
一样近,比较权重
不一样,谁的权重大听谁的
权重一样,听后面的
布局:
标准文档流:
定义:网页的解析顺序
特性:从左往右,从上往下
标签等级分类:行内元素,块级元素,行内块元素
脱离标准文档流方法:
浮动
绝对定位和固定定位
更改元素等级: display
常用值:none,inline,block,inline-block
盒子模型:
主要元素:width,height ,padding ,border,margin
BFC:
定义:块级格式化上下文
触发方式:
display不为none
定位不为static
overflow不为visiable
浮动为none
html
。。。
解决问题:
margin塌陷
布局
Tip:调整子元素的位置,尽可能适合用padding,不用margin
浮动:
类型:float:left|right
特性:脱离文档流,但是不脱离文本流,产生字围效果,兄弟元素之间相互贴靠等
浮动带来的影响:高度塌陷,影响布局
清除浮动:
overflow:hidden
clear:both
完美解决方案:
.clearfix { *zoom: 1; } .clearfix:before, .clearfix:after { content: " "; display: table; } .clearfix:after { clear: both; }
定位:
CSS position 属性
通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。
position 属性值的含义:
- static
- 元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
- relative
- 元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
- absolute
- 元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。
- 元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
- fixed
- 元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
CSS 定位属性允许你对元素进行定位。
属性 | 描述 |
---|---|
position | 把元素放置到一个静态的、相对的、绝对的、或固定的位置中。 |
top | 定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。 |
right | 定义了定位元素右外边距边界与其包含块右边界之间的偏移。 |
bottom | 定义了定位元素下外边距边界与其包含块下边界之间的偏移。 |
left | 定义了定位元素左外边距边界与其包含块左边界之间的偏移。 |
overflow | 设置当元素的内容溢出其区域时发生的事情。 |
clip | 设置元素的形状。元素被剪入这个形状之中,然后显示出来。 |
vertical-align | 设置元素的垂直对齐方式。 |
z-index | 设置元素的堆叠顺序。 |
【注】定位的参考点很重要,具体参考w3c学习
table:
tr , td , th
核心属性: colspan , rowspan
【tip】在早些年前采用table表格布局,现在已经淘汰
div+css的布局较table布局有什么优点?
改版的时候更方便 只要改css文件。
页面加载速度更快、结构化清晰、页面显示简洁。
表现与结构相分离。
易于优化(seo)搜索引擎更友好,排名更容易靠前。
更多请看(HTML + CSS)下篇