W3school在线教程
html5+css3基本不兼容ie678。
一、html5
二、css3选择器
(1)写法更简单;
(2)标签语义化;
(3)语法更宽松;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
</body>
</html>
(4)多设备跨平台;
(5)自适应网页设计;
(6)兼容性: html4+css2.0 兼容 ie6/7/8,html5不能兼容ie6/7。
语义化就是口头化,信息直白,更好地理解:
(1)新增的语义化标签:
① 常用的语义化标签:
,头标签;
,导航标签;
,表示文档的结构/栏目;
,页脚(通常包含文档的作者、版权信息、使用条款链接、联系信息等);
,文章标签;
,侧边栏导航;
,凸显文字,行元素;
,主要部分(不支持ie6/7/8);② 其他:
,用来表示网页上一块独立内容;
,用来表示 figure 的标题(作为第一个或最后一个元素),常与 figure
配合使用;
,显示表单元素结果;
提供表单选项列表等。
;
<ol start="3">
<li>aaaali>
<li>aaaali>
<li>aaaali>
ol>
③ 配合 js:
*.mp4
、*.ogg
、*.webM
)
、
、
)
④ 删除的 Html 标签(部分浏览器支持):
bgsound>
⑤ 完全抛弃:
(2)语义化标签的优点:
标签有更加丰富的含义,方便开发与维护;
- 方便搜索引擎能识别页面结构,有利于SEO;
- 方便其他设备解析(如移动设备、盲人阅读器等);
- 有利于合作,遵守W3C标准;
3. 智能表单的使用和规范
有兼容问题.
(1)地址栏:
;输入无效地址会自动提示;
(2)输入数字:
;step 跳跃数,min 最小值,max 最大值;
(3)输入电子邮件:
;required 判断是否为空,multiple 可用逗号分隔邮件地址;
(4)拖动:
;
(5)搜索:
;
(6)颜色:
;value 的值必须为6位
(7)电话:
;
(8)日期:
;
(9)月份:
;
(10)XX年第X周:
;
(11)时间:
;
(12)日期时间:
;
- 查看更多…
二、css3选择器
只支持ie9及ie9+,部分兼容ie8。
- CSS即层叠样式表(Cascading StyleSheets),用于控制网页的样式和布局。
- css 概念:
- CSS3 是最新的 CSS 标准。
- css3 是 css 技术的升级,css3 语言开发时朝着 模块化 发展的;
- 模块包括: 盒子模型,列表模块,超链接方式,语言模块,背景和边框,文字特效,多栏布局 等
- css3 完全向后兼容(ie8以上),浏览器通常支持 css2。
选择器:选择器是 css3 中的一个重要内容,使用它可以大幅度提高开发人员书写或修改样式表时的工作效率。
1. 属性选择器:
(1)[属性A]
: 选择当前页面所有含 属性A 的元素,权重 = 10;
(2)[属性B=属性值b]
: 选择所有 属性B=属性值b 的元素;
- ① 属性值为数字或特殊字符必须加双引号,否则不生效。即
[属性B="1"]
,常用于表单元素中;当属性值有多个时,此方法不适用,应该使用下面这种。
- ② 加双引号其实是为了让代码规则符合 w3c 规范。
(3)[class="a b"]
: 选择 class="a b"
的元素;
值为多个时必须全部写上,且要加双引号;
(4)[class~="a"]
: 选择包含 单词为 a 的元素;
<style>
[class~="a"]{background:#f9f;}
<style/>
<body>
<div title="div1" class="a">1div>
<div class="a b">a bdiv>
<div class="aa b">aa bdiv>
<div class="ab">abdiv>
<div class="aa ab">aa abdiv>
<div class="aa a">aa adiv>
body>
(5)[class|=a]
:选择要么为单词 a ,要么 a- 开头的完整单词的元素;
注意: //错误
,这也就意味着,class里面只有一个单词,没有空格分隔的两个及两个以上的单词。
(6)[class^=a]
:选择所有 a 开头的元素;
注意: //错误
(7)[class$=a]
:选择所有 a 结尾的元素;
注意: //正确
(8)[class*=a]
:选择所有带 a 的元素;
2. 结构性伪类选择器(层级选择器/符)
① 不常用:
-
(1):root{}
,选择根目录;
:root{background:#ff0}
,相当于给 html 标签设置样式(伪类权重为 10,属性选择器权重为 01);
-
(2):not(元素A){}
,给 除了元素A 以外的所有元素设置样式;
例如:body :not(p){background:#000}
,给 body
标签内除 元素p
以外的其他所有元素设置样式。
-
(3)元素B:empty{}
,选择 元素B内容为空 的元素设置样式(换行和空格不算内容为空);
-
(4):target{}
,给 当前锚点选中的元素 设置样式(锚点切换时有坑,常用 js 去做,而不用伪类);
② 常用:
-
(1)元素A:first-child{},选择第一个(子)元素;元素A作为第一个子元素;
-
(2)元素B:last-child{},选择最后一个(子)元素;
-
(3)元素C:nth-child(n){},n 为数字,选择第n个(子)元素(n 从 1 开始);元素C并且该元素作为第n个子元素;
-
(4)元素D:nth-last-child(n){},n 为数字,选择倒数第n 个(子)元素;
-
(5)元素E:nth-child(odd){},选择奇数个(子)元素(从第 1 个开始);
-
(6)元素F:nth-child(even){},选择偶数个(子)元素(从第 2 个开始);
-
(7)元素G:nth-of-type(2){},有关这个元素的第二个(子)元素;
-
(8)元素H:nth-last-of-type(2){},有关这个元素的倒数第二个(子)元素;
-
(9)元素I:only-child{},只有 I元素 是唯一一个个(子)元素才有效;
③ n 元算法(n 是从 0 开始计算无限大的数字):
-
(1)元素A:nth-child(n+2){},匹配从第二个元素开始(包括2);
-
(2)元素B:nth-child(2n){},匹配偶数;
-
(3)元素B:nth-child(2n+1){},匹配奇数;
3. UI状态性伪类选择器:
(1)input:focus{},元素获取焦点时的状态;
(2)input:enabled{},元素时的状态;
(3)input:disabled{},元素禁用时的状态;
(4)input:read-only{},元素只读时的状态;
只读状态:不能编辑但可以复制;禁用状态:不能编辑也不能复制
(5)input:read-write{},元素非只读时的状态;
(6)input:checked{},元素被选中时的状态;
(7)input:default{},元素默认有checked时的状态;
(8)input:indeterminate{},元素都没选中过的状态;只支持Google;
(9)input::selection{},元素被选取的状态;(也可以设置选取文字时的样式,只能用 color 和 background 属性)
4. 相邻兄弟选择器:
(1)li+li{}
:选择下一个元素;
<style>
div{
display: flex;}
ul.one li+li{
color:#f00}
ul.two .first+li{
color:#f00;}
</style>
<div>
<ul class="one">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<ul class="two">
<li class="first">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
(2)span~p{}
:选择 span 之后 所有的同级 p 元素;
5. 其他:
ul>li{} 选择 ul 的亲儿子;
outline:1px solid #000;
书写input的外框;
三、文字相关属性
1. 兼容前缀
(1)-o- Presto
(2)-ms- Trident
(3)-moz- Gecko
(4)-webkit- Webkit
很久以前
-
浏览器前缀 css3 和正常 css3 都不支持;
不久之前
-
浏览器只支持前缀 css3 ,不支持正常 css3;
现在
-
有些浏览器既支持前缀 css3 ,又支持正常 css3;
未来
-
所有浏览器不支持前缀 css3 ,仅支持正常 css3;
2. 渐进增强和优雅降级
(1)渐进增强: 一开始就针对低版本浏览器进行构建页面到高版本的变化;
(2)优雅降级: 一开始就构建网站针对高版本向低版本进行兼容;
详细介绍……
3. 文字相关属性
(1)文本阴影属性(可以继承): text-shadow: x坐标 y坐标 阴影大小 颜色;
/*多个阴影用 逗号"," 隔开*/
span{
text-shadow:1px 1px 1px #f00,
2px 2px 1px #f80,
3px 3px 1px #ff0;
}
(2)word-bread: nomal
(默认)/ keep-all
(只能在半角空格或连接字符处换行)/ bread-all;
(允许在单词内换行,将单词当文字换行);
(3)word-wrap: normal
(默认)/ break-word;
(允许在单词内换行,单纯的换行);
(4)text-transform: uppercase
(单词都大写)/ lowercase
(单词都小写)/ capitalize;
(每个单词首字母大写);
(5)显示服务端字体:@font-face{}
@font-face{
/*创建字体*/
font-family:WebFont;/*创建字体名*/
src:url("fonts/Fontin_Sans_B_45b.otf");/*链接字体库*/
format("opentype");
}
p:nth-child(1){
font-family:WebFont;} /*使用*/
示例:
@font-face{
/*创建字体*/
font-family:"自创字体";/*创建字体名*/
src:url("fonts/Fontin_Sans_B_45b.otf");/*链接字体库*/
}
p:nth-child(2){
font-family:"自创字体";}
- format:声明文件类型;
- opentype
*.otf
- truetype
*.ttf
*eot
格式文件不需要声明 format
(6)颜色值 : rgba(十六进制,十六进制,十六进制,透明度(0-1))
;
rgba : r->red、g->green、 b->blue 、 a->alpha(透明度)
- opacity 与 ragba 的区别:
有 opacity 属性的所有后代元素都会继承 opacity 属性,而RGBA后代元素不会继承不透明属性。
hsla(色调(0-100),饱和度(0-100%),亮度(0-100%),透明度(0-1));
(7)盒子阴影: box-shadow:x轴 y轴 模糊度 颜色;
可设置内阴影:inset
/*多个阴影用 逗号"," 隔开*/
div{
box-shadow:0px 0px 5px #f00,
0px 0px 10px #f80,
0px 0px 15px #ff0;
}
(8)与边框和背景有关:
background-clip: border-box / padding-box / content-box;
设置背景显示区域;
background-origin: border-box / padding-box / content-box;
指定绘制背景图像时的起点;
background-size: 大小或百分比 / cover / contain;
指定背景中图像的尺寸;
cover: 按比例撑满背景; contain : 刚好填满一遍大小的尺寸;
background-break
border-color
边框颜色;
border-image
例子-12;
(9)圆角属性: border-radius
类似 margin 的值,想象 将方块向右旋转45°。
border-radius: 左上右下 右上左下;
border-radius: 左上 右上左下 右下;
border-radius: 左上 右上 右下 左下;
border-radius: 宽高值小的一半px; 胶囊型;
border-radius: 10px/10px; 左边设置水平半径,右边设置垂直半径;