├── .gitignore
├── CSS
├── background.html
├── border.html
├── color
│ ├── color.html
│ └── opacity.html
├── content
│ ├── content.html
│ ├── counter-increment&counter-reset.html
│ └── quotes.html
├── dimension.html
├── font
│ ├── font-family.html
│ ├── font-size-adjust.html
│ ├── font-size.html
│ ├── font-stretch.html
│ ├── font-style.html
│ ├── font-variant.html
│ ├── font-weight.html
│ └── font.html
├── hack.html
├── img
│ ├── chenwubai
│ │ ├── attachment_fixed.JPG
│ │ ├── attachment_local.JPG
│ │ ├── attachment_scroll.JPG
│ │ ├── bg.JPG
│ │ ├── border.png
│ │ └── tubiao.png
│ ├── z-index-1.png
│ └── z-index-2.png
├── layout
│ ├── display.html
│ ├── float.html
│ └── layout.html
├── list
│ └── list-style.html
├── margin.html
├── media.html
├── padding.html
├── positioning
│ └── position.html
├── printing.html
├── printing
│ └── page.html
├── private.html
├── rules
│ └── font-face.html
├── table
│ ├── border-collapse.html
│ ├── border-spacing.html
│ ├── caption-side.html
│ ├── empty-cells.html
│ └── table-layout.html
├── text
│ ├── block-vertical-center.html
│ ├── line-height.html
│ ├── tab-size.html
│ ├── text-align&text-align-last.html
│ ├── text-indent.html
│ ├── text-transform.html
│ ├── vertical-align.html
│ ├── white-space.html
│ ├── word-break&word-wrap&overflow-wrap.html
│ └── word-spacing&letter-spacing.html
├── textDecoration
│ ├── text-decoration.html
│ └── text-shadow.html
├── transform.html
└── writingModes
│ ├── direction&unicode-bidi.html
│ └── writing-mode.html
├── HTML
├── doctype.html
├── form
│ ├── form.html
│ ├── input.html
│ └── others.html
├── head
│ ├── head.html
│ └── meta.html
├── html.html
├── iframe.html
├── layout.html
├── special.html
├── svg
│ ├── svg.html
│ ├── svg_others.html
│ ├── svg_shape.html
│ └── svg_structure.html
├── table
│ ├── others.html
│ └── table.html
├── text
│ └── text.html
└── video.html
├── JavaScript
├── Array-Prototype.html
├── Array.html
├── Date.html
├── Iterator.html
├── Module.html
├── Promise.html
├── Reflect.html
├── RegExp.html
├── String.html
├── WeakSetp-WeakMap.html
├── destructuring.html
├── error.html
├── es6Function.html
├── function.html
├── let-const.html
├── misc_miscellaneous.html
├── miscellaneous.html
├── object-prototype.html
├── seniorFunction.html
├── set-map.html
├── strictMode.html
├── undefined.html
└── urlEncode.html
├── LICENSE
├── README.md
├── Webpack
├── Concepts
│ ├── README.md
│ ├── concepts-part1.md
│ ├── concepts-part2.md
│ └── concepts-part3.md
├── Configuration
│ ├── README.md
│ ├── configuration-part1.md
│ ├── configuration-part2.md
│ ├── configuration-part3.md
│ ├── configuration-part4.md
│ ├── configuration-part5.md
│ └── configuration-part6.md
├── Loaders
│ ├── README.md
│ ├── loaders-part1.md
│ ├── loaders-part2.md
│ ├── loaders-part3.md
│ ├── loaders-part4.md
│ └── loaders-part5.md
└── Plugins
│ ├── README.md
│ ├── webpack-plugins1-6.md
│ ├── webpack-plugins13-18.md
│ ├── webpack-plugins19-24.md
│ ├── webpack-plugins25-30.md
│ ├── webpack-plugins31-36.md
│ └── webpack-plugins7-12.md
└── images
├── Object-Function-prototype-proto.png
├── __proto__-prototype.png
├── hasOwnProperty-browser-support.png
└── toString.png
/.gitignore:
--------------------------------------------------------------------------------
1 | # Object files
2 | *.o
3 | *.ko
4 | *.obj
5 | *.elf
6 |
7 | # Precompiled Headers
8 | *.gch
9 | *.pch
10 |
11 | # Libraries
12 | *.lib
13 | *.a
14 | *.la
15 | *.lo
16 |
17 | # Shared objects (inc. Windows DLLs)
18 | *.dll
19 | *.so
20 | *.so.*
21 | *.dylib
22 |
23 | # Executables
24 | *.exe
25 | *.out
26 | *.app
27 | *.i*86
28 | *.x86_64
29 | *.hex
30 |
31 | # Debug files
32 | *.dSYM/
33 |
34 | .idea
35 | .DS_Store
36 |
--------------------------------------------------------------------------------
/CSS/color/color.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 颜色属性介绍
6 |
29 |
30 |
31 | 颜色属性介绍-color
32 | 语法
33 |
34 | color:<color>
35 | 默认值:由客户端“user agent”决定
36 | 适用于:所有元素
37 | 继承性:有
38 | 动画性:是
39 | 计算值:指定值
40 |
41 | 说明
42 | 取值单位包括
43 |
44 | 颜色名称 :颜色名称设定的color不一定能被识别
45 | red ,green
46 | HEX :十六进制颜色值
47 | #ff33E9; ,#3e3/#33ee33
48 | RGB :R[红]G[绿]B[蓝]
49 | rgb(123,231,13) ,rgb(20%,25%,100%)
50 | RGBA :比RGB多了一个透明度值
51 | rgba(123,231,13,0.5)
52 | HSL :H[色调][0-360]、S[饱和度][0%-100%]、L[亮度][0%-100%]
53 | hsl(280,100%,
75%)
54 | HSLA :比HSL多了一个透明度值
55 | hsla(120,100%,75%,0.7)
56 | transparent :透明色,IE8及以下浏览器将文本颜色设置为transparent,文本将显示为黑色
57 | transparent
58 |
59 | 其他特性
60 | 1.color属性值被间接用来提供一个中间值 currentColor 以供其他接受颜色值的属性(如border)使用
61 |
62 |
63 | div{
64 | border:2px solid;
65 | color:red;
66 | }
67 |
68 | 2.相应的脚本特性为color,即通过el.style.color
即可设置或获取颜色
69 | 兼容性
70 | 颜色名称和RGB单位所有浏览器都支持.
71 | RGBA,HSL,HSLA,transparent在IE6-8不支持。transparent会被设置成黑色(不管父级元素有没有color属性),其他方式设置无效,如果有继承的颜色就表现为继承的颜色,如果没有就是黑色(user agent)
72 |
73 |
74 |
--------------------------------------------------------------------------------
/CSS/color/opacity.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 透明度属性介绍
6 |
29 |
30 |
31 | 透明度属性介绍-opacity
32 | 语法
33 |
34 | opacity:<number>
35 | 默认值:1
36 | 适用于:所有元素
37 | 继承性:无
38 | 动画性:是
39 | 计算值:指定值
40 |
41 | 说明
42 | <number>:使用浮点数,在0.0-1.0之间,0.0表示完全透明,1.0表示完全不透明,取值小于0.0的话按0.0展现,大于1.0的话按照1.0展现
43 | 其他特性
44 | 1.这里的透明度和color属性中rgba的透明度是有区别的,这里指的是整体的透明度,包括字体,颜色,边框,rgba只是表示字体的透明度。
45 | 2.如果既设置了rgba或hsla的透明度,又设置了opacity,容器中字体的透明度绘会叠加(应该是相乘的关系)
46 |
47 | div{
48 | opacity:0.49;
49 | color:rgb(123,231,13);
50 | }
51 |
52 |
53 | div{
54 | opacity:0.7;
55 | color:rgba(123,231,13,0.7);
56 | }
57 |
58 | 添加背景颜色
59 | 3.相应的脚本特性为opacity,即通过el.style.opacity
即可设置或获取透明度
60 | 兼容性
61 | IE6-8不支持该属性,可以通过设置IE私有的滤镜属性实现相同效果,opacity的取值范围是0-100,对应opacity的0.0-1.0
62 |
63 | div{
64 | filter:alpha(opacity=50);
65 | opacity:0.5;
66 | }
67 |
68 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/CSS/content/content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 在元素前或后显示内容
6 |
17 |
18 |
19 | 设置在元素前或后显示内容- content
20 | 取值
21 |
29 | 说明
30 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/CSS/content/counter-increment&counter-reset.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 计数器
6 |
33 |
34 |
35 | 设置计数器- counter-increment/counter-reset
36 | 取值
37 | counter-increment/counter-reset
38 |
39 | none:阻止计数器增加
40 | <identifier>:identifier定义一个或多个将被增加的selector,id,或者class
41 | <integer>:定义计算器每次增加的数值或复位的数值,可以为负值
42 |
43 | 说明
44 |
45 | 1.counter-increment是设置在元素属性里的,而counter-reset是设置到元素的伪元素里;
46 |
47 | 示例
48 |
49 | 列表项
50 | 列表项
51 | 列表项
52 |
53 |
54 | 列表项
55 | 列表项
56 | 列表项
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/CSS/content/quotes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 嵌套标记
6 |
20 |
21 |
22 | 设置嵌套标记- quotes
23 | 取值
24 |
25 | none:不显示任何嵌套标记
26 | <string>:定义content属性的open-quote和close-quote值的标记,2个为一组
27 |
28 | 说明
29 |
30 | 如果属性值不是2个一组出现的话,设置无效。
31 |
32 | 示例
33 |
34 |
Quote me Quote me Quote me!
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/CSS/dimension.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 尺寸
6 |
33 |
34 |
35 | 尺寸相关
36 |
37 |
38 | width属性
39 | 该属性用于设置元素的宽度,在box-sizing属性值为content-box时,width为元素内容区的宽度,而当属性值为border-box时,width等于内容区宽度加padding加边框宽度。
40 | 默认值为auto,其计算值取决于其他属性;取值也可为长度值,不允许负值,如10px;或者为百分比,百分比参照其包含块的宽度进行计算,同样不允许负值。
41 |
42 |
43 | height属性
44 | 该属性用于设置元素的高度,在box-sizing属性值为content-box时,height为元素内容区的高度,而当属性值为border-box时,height等于内容区高度加padding加边框宽度。
45 | 默认值为auto,和取auto的width一样,实际高度取决于其他属性;取值为长度值或者百分比,不允许负值。
46 |
47 |
48 | width、height注意点及示例
49 |
59 |
60 |
61 | min-width、max-width、min-height和max-height属性
62 | min-width定义元素的最小宽度,默认值为0,取值可为长度值或者百分比,均不允许负值。
63 | max-width定义元素的最大宽度,默认值为none(即无最大宽度限制),取值可为长度值或者百分比,均不允许负值。
64 | min-height定义元素的最小高度,默认值为0,取值可为长度值或者百分比,均不允许负值。
65 | max-height定义元素的最大高度,默认值为none(即无最大高度限制),取值可为长度值或者百分比,均不允许负值。
66 |
67 |
68 | min-width、max-width、min-height和max-height注意点即示例
69 |
93 |
94 |
95 | min-width、max-width、min-height和max-height兼容IE方法
96 | 因为这四个属性在IE6中不支持,所以需要针对IE6做兼容。
97 |
98 | .min_width {
99 | min-width: 300px;
100 | _width: expression(document.body.clientWidth < 300 ? "300px" : "auto");
101 | }
102 |
103 | .max_width {
104 | max-width: 600px;
105 | _width: expression(document.body.clientWidth > 600 ? "600px" : "auto");
106 | }
107 |
108 | .min_height {
109 | min-height: 300px;
110 | _height: expression(this.scrollHeight < 300 ? "300px" : "auto");
111 | }
112 |
113 | .max_height {
114 | max-height: 600px;
115 | _height: expression(this.scrollHeight > 600 ? "600px" : "auto");
116 | }
117 |
118 | .min_and_max_width {
119 | min-width: 300px;
120 | max-width: 600px;
121 | _width: expression(document.body.clientWidth > 600 ? "600px" : (document.body.clientWidth < 300 ? "300px" : "auto"));
122 | }
123 |
124 | .min_and_max_height {
125 | min-height: 300px;
126 | max-height: 600px;
127 | _height: expression(this.scrollHeight > 600 ? "600px" : (this.scrollHeight < 300 ? "300px" : "auto"));
128 | }
129 |
130 |
131 |
132 | 参考链接
133 |
137 |
138 |
139 |
140 |
141 |
--------------------------------------------------------------------------------
/CSS/font/font-family.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 字体名称属性介绍
6 |
17 |
18 |
19 | 字体名称属性介绍-font-family
20 | 语法
21 |
22 | font-family:[<family-name> | <generic-family>]
23 | 默认值:客户端user agent决定
24 | 适用于:所有元素
25 | 继承性:有
26 | 动画性:否
27 | 计算值:指定值
28 |
29 | 取值说明
30 |
31 | <family-name>:字体名称。按优先顺序排列。以逗号隔开。如果字体名称包含空格或中文,则应使用引号括起
32 | <generic-family>:字体序列名称
33 |
34 | 示例
35 | 指定字体
36 |
37 | 其他特性
38 | 1.相应的脚本特性为fontFamily,即通过el.style.fontFamily
即可设置或获取字体类型
39 | 2.扩展字体 @font-face
40 | 兼容性
41 | 所有浏览器均支持该属性
42 |
43 |
44 |
--------------------------------------------------------------------------------
/CSS/font/font-size-adjust.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 字体大小调整属性介绍
6 |
17 |
18 |
19 | 字体大小调整属性介绍-font-size-adjust
20 | 语法
21 |
22 | font-size-adjust:[ none | <number>]
23 | 默认值:客户端user agent决定
24 | 适用于:所有元素
25 | 继承性:有
26 | 动画性:当值是<number>时
27 | 计算值:指定值
28 |
29 | 取值说明
30 |
31 | none:不保留首选字体的 x-height
32 | <number>:定义字体的 aspect 值
33 |
34 | 示例
35 | 这是正常的<h1>
36 | 这是设置font-size-adjust: 0.8的<h1>
37 | 这是设置font-size-adjust: 0.3的<h1>
38 |
39 | 其他特性
40 | 1.相应的脚本特性为fontSizeAdjust,即通过el.style.fontSizeAdjust
即可设置或获取字体大小调整
41 | 2.字体的小写字母 "x" 的高度与字号之间的比率被称为一个字体的 aspect 值
42 | 3.高 aspect 值的字体被设置为很小的尺寸时会更易阅读。举例:Verdana 的 aspect 值是 0.58(意味着当字体尺寸为 100px 时,它的 x-height 是 58px)。Times New Roman 的 aspect 值是 0.46。这就意味着 Verdana 在小尺寸时比 Times New Roman 更易阅读。
43 | 4.可以使用这个公式来为可用字体推演出合适的字号:可应用到可用字体的字体尺寸 = 首选字体的字体尺寸 * (font-size-adjust 值 / 可用字体的 aspect 值)
44 | 兼容性
45 | 只有FireFox浏览器支持该属性
46 |
47 |
48 |
--------------------------------------------------------------------------------
/CSS/font/font-size.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 字体大小属性介绍
6 |
17 |
18 |
19 | 字体大小属性介绍-font-size
20 | 语法
21 |
22 | font-size:<absolute-size> | <relative-size> | <length> | <percentage>
23 | 默认值:medium
24 | 适用于:所有元素
25 | 继承性:有
26 | 动画性:是
27 | 计算值:指定值
28 |
29 | 取值说明
30 |
31 | <absolute-size>:根据对象字号进行调节。以 medium 作为基础参照,xx-small相当于medium 3/5 (h6),x-small: 3/4,small: 8/9 (h5),medium: 1 (h4),large: 6/5 (h3),x-large: 3/2 (h2),xx-large: 2/1 (h1)
32 | <relative-size>:相对于父对像中字号进行相对调节。使用成比例的em单位计算
33 | <length>:用长度值指定文字大小。不允许负值
34 | <percentage>:用百分比指定文字大小。其百分比取值是基于父对象中字体的尺寸。不允许负值
35 |
36 | 示例
37 | 指定xx-small字体
38 | 指定x-small字体
39 | 指定small字体
40 | 指定medium字体
41 | 指定large字体
42 | 指定x-large字体
43 | 指定xx-large字体
44 |
45 | 指定smaller字体
46 | 指定larger字体
47 |
48 | 指定xx-large字体
49 |
50 | 父级20px指定父级60%的字体
51 |
52 | 其他特性
53 | 1.相应的脚本特性为fontSize,即通过el.style.fontSize
即可设置或获取字体大小
54 | 兼容性
55 | 所有浏览器均支持该属性
56 |
57 |
58 |
--------------------------------------------------------------------------------
/CSS/font/font-stretch.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 字体宽度属性介绍
6 |
17 |
18 |
19 | 字体宽度属性介绍-font-stretch
20 | 语法
21 | 取值说明
22 | 示例
23 |
24 | 其他特性
25 | 1.相应的脚本特性为fontStretch,即通过el.style.fontStretch
即可设置或获取字体宽度
26 | 兼容性
27 | 所有浏览器均 不支持 该属性
28 |
29 |
30 |
--------------------------------------------------------------------------------
/CSS/font/font-style.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 字体风格属性介绍
6 |
17 |
18 |
19 | 字体风格属性介绍-font-style
20 | 语法
21 |
22 | font-style:normal | italic | oblique
23 | 默认值:normal
24 | 适用于:所有元素
25 | 继承性:有
26 | 动画性:否
27 | 计算值:指定值
28 |
29 | 说明
30 |
31 | normal:指定正常字体
32 | italic:指定设置斜体字,前提是该字体有设计的斜体字,否则须使用oblique。<em>,<i>实际是设置字体的font-style为italic
33 | oblique:指定倾斜的文本,人为倾斜,不管该字体是否有斜体字设计
34 |
35 | 示例
36 | 指定正常字体
37 | 指定设置斜体字
38 | 指定倾斜的文本
39 |
40 | 其他特性
41 | 1.相应的脚本特性为fontStyle,即通过el.style.fontStyle
即可设置或获取字体风格
42 | 兼容性
43 | 所有浏览器均支持该属性
44 |
45 |
46 |
--------------------------------------------------------------------------------
/CSS/font/font-variant.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 小型大写字母属性介绍
6 |
17 |
18 |
19 | 小型大写字母属性介绍-font-variant
20 | 语法
21 |
22 | font-variant:normal | small-caps
23 | 默认值:normal
24 | 适用于:所有元素
25 | 继承性:有
26 | 动画性:否
27 | 计算值:指定值
28 |
29 | 说明
30 |
31 | normal:指定正常字体
32 | small-caps:小型的大写字母字体
33 |
34 | 示例
35 | This is normal font.
36 | This is small-caps font.
37 |
38 | 其他特性
39 | 1.相应的脚本特性为fontVariant,即通过el.style.fontVariant
即可设置或获取字体是否为小型的大写字母
40 | 兼容性
41 | 所有浏览器均支持该属性
42 | 注意事项
43 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/CSS/font/font-weight.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 字体粗细属性介绍
6 |
17 |
18 |
19 | 字体粗细属性介绍-font-weight
20 | 语法
21 |
22 | font-weight:normal | bold | bolder | lighter | < interger >
23 | 默认值:normal
24 | 适用于:所有元素
25 | 继承性:有
26 | 动画性:是
27 | 计算值:数字重量值
28 |
29 | 说明
30 |
31 | normal:正常的字体。相当于数字值400
32 | bold:粗体。相当于数字值700
33 | bolder:定义比【继承值】更重的值
34 | lighter:定义比【继承值】更轻的值
35 | <interger>:用数字表示文本字体粗细。取值范围:100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
36 |
37 | 示例
38 | 指定正常字体
39 | 指定设置粗体
40 |
41 |
42 | 指定设置800的字体
43 | 指定设置100的字体
44 |
45 | 其他特性
46 | 1.相应的脚本特性为fontWeight,即通过el.style.fontWeight
即可设置或获取字体粗细
47 | 2.作用由客户端系统安装的字体的特定字体变量映射决定。系统选择最近的匹配。也就是说,用户可能看不到不同值之间的差异
48 | 兼容性
49 | 所有浏览器均支持该属性
50 |
51 |
52 |
--------------------------------------------------------------------------------
/CSS/font/font.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 字体属性介绍
6 |
17 |
18 |
19 | 字体属性介绍-font
20 | 语法
21 |
22 | font:[ [ <' font-style '> || <' font-variant '> || <' font-weight '> ]? <' font-size '> [ / <' line-height '> ]? <' font-family '> ] | caption | icon | menu | message-box | small-caption | status-bar
23 | 默认值:由各独立属性决定
24 | 适用于:所有元素
25 | 继承性:有
26 | 动画性:由各独立属性决定
27 | 计算值:由各独立属性决定
28 |
29 | 说明
30 |
31 | <font-style>:指定文本字体样式
32 | <font-variant>:指定文本是否为小型的大写字母
33 | <font-weight>:指定文本字体的粗细
34 | <font-size>:指定文本字体尺寸(必须有)
35 | <line-height>:指定文本字体的行高
36 | <font-family>:指定文本使用某个字体或字体序列(必须有)
37 | caption:使用有标题的系统控件的文本字体(如按钮,菜单等)
38 | icon:使用图标标签的字体
39 | menu:使用菜单的字体
40 | message-box:使用信息对话框的文本字体
41 | small-caption:使用小控件的字体
42 | status-bar:使用窗口状态栏的字体
43 |
44 | 示例
45 | 指定字体大小和字体: 18px Simsun, arial
46 | 指定字体样式、大小和字体: italic 18px Simsun, arial
47 | 指定字体样式、小型大写字母、大小和字体: italic small-caps 18px Simsun, arial
48 | 指定字体样式、小型大写字母、粗细、大小和字体: italic small-caps bold 18px Simsun, arial
49 | 指定字体样式、小型大写字母、粗细、大小、行高和字体: italic small-caps bold 18px/20px Simsun, arial
50 | 指定字体为 caption = normal normal normal normal 13px normal .HelveticaNeueDeskInterface-Regular
51 | 指定字体为 icon = normal normal normal normal 13px normal .HelveticaNeueDeskInterface-Regular
52 | 指定字体为 menu = normal normal normal normal 13px normal .HelveticaNeueDeskInterface-Regular
53 | 指定字体为 small-caption = normal normal normal normal 11px normal .HelveticaNeueDeskInterface-Regular
54 | 指定字体为 status-bar = normal normal normal normal 10px normal .HelveticaNeueDeskInterface-Regular
55 |
56 | 其他特性
57 | 1.相应的脚本特性为font,即通过el.style.font
即可设置或获取字体
58 | 兼容性
59 | 所有浏览器均支持该属性
60 | 需要注意的点
61 |
62 |
63 | font是一个复合属性,但是至少需要两个独立属性,font-size和font-family
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/CSS/hack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Hack - CSS
7 |
8 |
9 |
20 |
21 |
22 | Hack
23 | 条件Hack
24 |
52 |
53 | 属性级Hack
54 |
73 |
74 | 选择符级Hack
75 |
76 |
77 | 语法
78 |
79 | <hack> selector{ sRules }
80 |
81 |
82 |
83 | 实例说明
84 |
85 | * html .test { color: #090; } /* For IE6 and earlier */
86 | * + html .test { color: #ff0; } /* For IE7 */
87 | .test:lang(zh-cmn-Hans) { color: #f00; } /* For IE8+ and not IE */
88 | .test:nth-child(1) { color: #0ff; } /* For IE9+ and not IE */
89 |
90 |
91 |
92 | 参考
93 | 选择符级Hack
94 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/CSS/img/chenwubai/attachment_fixed.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/chenwubai/attachment_fixed.JPG
--------------------------------------------------------------------------------
/CSS/img/chenwubai/attachment_local.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/chenwubai/attachment_local.JPG
--------------------------------------------------------------------------------
/CSS/img/chenwubai/attachment_scroll.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/chenwubai/attachment_scroll.JPG
--------------------------------------------------------------------------------
/CSS/img/chenwubai/bg.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/chenwubai/bg.JPG
--------------------------------------------------------------------------------
/CSS/img/chenwubai/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/chenwubai/border.png
--------------------------------------------------------------------------------
/CSS/img/chenwubai/tubiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/chenwubai/tubiao.png
--------------------------------------------------------------------------------
/CSS/img/z-index-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/z-index-1.png
--------------------------------------------------------------------------------
/CSS/img/z-index-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xgfe/Basics/4a400988c69dd8cc8afd301f40b3f297eebc632c/CSS/img/z-index-2.png
--------------------------------------------------------------------------------
/CSS/layout/layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 常用布局
6 |
201 |
202 |
203 | 布局相关主要参考[张鑫旭] 对布局的讲解
204 | 一列剧中:使用margin:0 auto剧中
205 |
206 |
207 |
208 |
209 | 单行两列布局:float布局
210 |
215 |
216 | 三行两列布局:定高
217 |
218 |
222 |
223 |
224 | 三列布局:使用absolute(定高)
225 |
230 |
231 | 三栏网页宽度自适应布局:左右两栏目宽度固定,中间拦宽度自适应--absolute
232 |
237 |
238 | 三栏网页宽度自适应布局:左右两栏目宽度固定,中间拦宽度自适应--margin负值法
239 |
246 |
247 | 三栏网页宽度自适应布局:左右两栏目宽度固定,中间拦宽度自适应--自身浮动法
248 |
253 |
254 |
--------------------------------------------------------------------------------
/CSS/list/list-style.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 列表项目相关内容
6 |
17 |
18 |
19 | 设置列表项目相关内容- list-style
20 | 语法
21 |
22 | list-style:<' list-style-type '> || <' list-style-position '> || <' list-style-image '>
23 |
24 | 说明
25 |
26 | list-style-type:指定列表项所使用的预设标记
27 | list-style-position:对象的列表项标记如何根据文本排列,outside,inside
28 | list-style-image:对象的列表项标记的图像
29 |
30 | 注意事项
31 | 1.当使用符合属性时,list-style-image要写在list-style-type之后。
32 | 2.复合属性或单独属性都只适用于 display 设置为list-item的元素。
33 |
34 |
35 |
--------------------------------------------------------------------------------
/CSS/padding.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 内补白相关
6 |
59 |
60 |
61 | 内补白相关
62 |
63 |
64 | padding属性
65 | 该属性用来设置元素与元素内容之间的内边距。
66 | 其默认取值为0,也可取值为长度值或者百分比,均不允许负值。当取值为百分比时,计算值是参照包含块的宽度(水平书写模式下参照宽度,其他书写模式下参照高度)来得到的。
67 | 如果提供4个参数值,则按上右下左(顺时针)的顺序作用于四边;如果提供3个参数,则第一个用于上边距,第二个用于左右边距,第三个用于下边距;如果提供2个参数,则第一个用于上下边距,第二个用于左右边距;如果提供1个参数,则作用于四边。
68 |
69 |
70 | 注意点
71 | padding和margin有所区别,当设置背景色时,背景色覆盖的范围会覆盖到padding的区域。
72 | 如果要设置非替代行内元素的上下padding,则需要先把元素变为块级或者内联块级元素。
73 |
74 |
75 | 示例
76 | 下面的示例中,绿色div为外部div(带边框)的内容,绿色div与外部div的内边距依照上右下左的顺序分别为10px、20px、30px、40px。
77 |
80 |
81 |
82 |
83 |
84 | padding-top、padding-right、padding-bottom和padding-left属性
85 | 这四个属性可以对元素四个方向上的内边距进行单独的设置,其取值和注意点和padding属性类似,不再赘述。
86 |
87 |
88 | 参考链接
89 |
92 |
93 |
94 | 扩展
95 | 时常在我们设计页面的时候,margin和padding都能够在视觉上达到同样的效果。To be margin or to be padding, that's a question.
96 | padding的作用是用来隔绝元素和其中的内容,而margin的作用是用隔绝元素与元素之间的距离。同时,对于隔开子元素和父元素的距离这样的问题,如果用margin的话,很可能会因为意外出现的margin折叠而打乱了自己的原本的设计。
97 |
98 |
99 |
我是孩子1和孩子2的父节点的兄弟节点,我的margin是30px。
100 |
101 |
我是孩子1,为了隔开与父亲的距离,我的margin-top为10px。
102 |
我是孩子2
103 |
104 |
105 |
106 |
我是孩子1和孩子2的父节点的兄弟节点,我的margin是30px。
107 |
108 |
我是孩子1,为了隔开我和父亲的距离,我的父亲的padding-top为10px。
109 |
我是孩子2
110 |
111 |
112 |
113 | 可以看到,上述左边的例子并没有达到想要的效果,因为这时候孩子1的父亲的兄弟节点的margin-bottom(30px)和孩子1的margin-top折叠了。所以,这时候用padding是更明智的选择。
114 | 参考链接
115 |
118 |
119 |
--------------------------------------------------------------------------------
/CSS/positioning/position.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | positioning(定位)属性知识点总结
6 |
117 |
118 |
119 | position
120 |
121 | 含义:定义对象的定位方式
122 |
123 | 取值
124 |
125 |
126 | static:对象遵循常规流.top,right,left,bottom等属性不会被应用.
127 |
128 | 常规流中元素框的位置由元素所在HTML中的位置决定.
129 |
130 |
131 |
132 | relative:对象遵循常规流,并且参照自身在常规流中的位置通过 top,right,left,bottom属性进行偏移时不影响常规流中的任何元素.
133 |
134 | 如果对一个元素进行相对定位,它将出现在它所在的位置上,通过设置水平或者垂直位置使元素"相对于"它的起点移动.使用相对定位,无论移动与否,它仍然占据原来的空间,移动元素会导致它覆盖其他框
135 |
136 |
137 |
Demo
138 |
139 |
140 | position: relative;
141 | left:20px;
142 | top:20px;
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 | absolute:对象脱离常规流,使用top,right,left,bottom等属性进行绝对定位,盒子的偏移位置不影响常规流中的任何元素,其margin不与其他任何margin折叠.
152 |
153 | 绝对定位的元素的位置是相对于距离它最近的那个已定位的祖先元素确定的,如果元素没有已定位的祖先元素,那么它的位置是相对于初始包含块根据用户代理的不同,初始包含块可能是画布或者HTML元素.
154 | 绝对定位元素与文档流无关,因此它们不影响普通流中的框,如果扩大绝对定位的框,周围的框不会重新定位,因此,尺寸的任何变化都会导致绝对定位的框产生重叠
155 |
156 |
157 |
Demo
158 |
159 |
Tel: 185159474XX
160 |
161 |
162 |
163 |
164 |
165 |
166 | fixed:对象脱离常规流,使用top,right,left,bottom等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动.
167 |
168 | 固定定位是绝对定位的一种,差异在.于固定定位元素的包含块是视口(viewport).可以创建总是出现在窗口中相同位置的浮动元素.
169 | IE6及以下版本不支持,IE7也只是部分支持.
170 |
171 |
172 |
Demo
173 |
174 |
175 | demo:
176 | position:fixed;
177 | left:20px;
178 | top:20px;
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 | center:对象脱离常规流,使用top,right,left,bottom等属性指定盒子的位置或尺寸大小.盒子在其包含容器垂直水平居中.盒子的偏移位置不影响常规流中的任何元素,其margin不与其他任何margin折叠.(CSS3)(暂无浏览器支持)
187 |
188 |
189 | page(css3)(暂无浏览器支持)
190 |
191 |
192 | sticky:对象在常态时遵循常规流.它就像是「relative」和「fixed」的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如「fixed」.该属性的表现是现实中你见到的吸附效果.如[美团商家位置] 的效果(CSS3)(部分浏览器支持)
193 |
194 |
195 |
196 |
197 | 注意事项
198 |
199 | 当 position的值为非static时,其层叠级别通过z-index属性定义.
200 | 绝对定位的元素,在top,right,left,bottom属性未设置时,会紧随在其前面的兄弟元素之后,但在位置上不影响常规流中的任何元素.
201 |
202 |
203 |
204 |
205 | z-index
206 |
207 |
208 | 含义:检索或设置对象的层叠顺序.为元素指定沿着Z轴的值.
209 |
210 | 在这个坐标系中有较高z-index值的元素比z-index值较低的元素离读者更近.
211 |
212 | 图例
213 |
214 |
215 | 叠放概念视图
216 |
217 |
218 |
219 | 具体叠放
220 |
221 |
222 |
223 |
224 |
225 |
226 | 取值:auto(元素在当前层叠上下文中的层叠级别是0.元素不会创建新的局部层叠上下文,除非它是根元素的层叠上下文)|'integer'(可以为负值)li>
227 | 适用对象:定位元素
228 | 注意点:如果存在父元素设置了z-index,子元素也设置了z-index.则依据父元素设置的z-index进行覆盖,并且子元素不会超出父优先级.
229 |
230 |
231 |
Demo
232 |
233 |
z-index:1
234 |
z-index:100
235 |
236 |
z-index:2
237 |
z-index:10
238 |
239 |
240 |
241 |
242 |
243 |
244 | clip
245 |
246 | 含义:检索或设置对象的可视区域.区域外的部分是透明的.
247 |
248 | 取值
249 |
250 | auto:对象无剪切
251 | rect(|auto |auto |auto |auto):依据上右下左的顺序提供自对象左上角(0,0)坐标计算的四个偏移数值,其中任何一个数值都可以用auto替换,即此边部剪切.
252 | '上,左'方位的裁剪:从0开始剪裁直到设定值,即'上,左'方位的auto值等同于0;
253 | '右,下'方位的裁剪:从设定值开始剪裁直到最右边和最下边,即 '右,下'方位的auto值为盒子的实际宽度和高度.
254 |
255 |
256 | 适用对象:position设为absolute或fixed的元素.
257 | 注意:使用clip剪切掉的区域不可见.
258 |
259 |
260 |
Demo
261 |
262 | clip:rect(auto 50px 20px auto):上边不剪切,右边从左起第50个像素开始剪切直至最右边,下边从上起第20个像素开始剪切直至最底部,左边不剪切.
263 | 效果:剩余区域宽50px,高20px.
264 |
265 |
clip 属性剪切了一幅图像:
266 |
267 |
268 |
269 |
270 |
271 |
--------------------------------------------------------------------------------
/CSS/printing.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 打印属性 - CSS
7 |
8 |
9 |
10 |
11 | 打印属性
12 |
65 |
66 |
--------------------------------------------------------------------------------
/CSS/printing/page.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | page demo
7 |
13 |
14 |
15 | 这是答应测试,请通过cmd+p开启打印预览查看效果。
16 | @page:first{size: A4 landscape; margin: 50px;}
17 | @page:left{size: A4 portrait; margin: 100px;}
18 | @page{size: A4 portrait; margin: 150px;}
19 |
20 |
--------------------------------------------------------------------------------
/CSS/private.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 常用浏览器私有属性 - CSS
7 |
8 |
9 |
20 |
21 |
22 | 常用浏览器私有属性
23 | 常用IE私有属性
24 |
25 |
26 |
27 | 属性
28 | 版本
29 | 继承性
30 | 描述
31 |
32 |
33 |
34 |
35 |
36 | scrollbar-3dlight-color
37 |
38 | CSS1
39 | 有
40 | 检索或设置对象滚动条3d亮色阴影边框(threedlightshadow)的外观颜色。
41 |
42 |
43 |
44 | scrollbar-darkshadow-color
45 |
46 | CSS1
47 | 有
48 | 检索或设置对象滚动条3d暗色阴影边框(threeddarkshadow)的外观颜色。
49 |
50 |
51 |
52 | scrollbar-highlight-color
53 |
54 | CSS1
55 | 有
56 | 检索或设置对象滚动条3d高亮边框(threedhighlight)的外观颜色。
57 |
58 |
59 |
60 | scrollbar-shadow-color
61 |
62 | CSS1
63 | 有
64 | 检索或设置对象滚动条3d阴影边框(threedshadow)的外观颜色。
65 |
66 |
67 |
68 | scrollbar-arrow-color
69 |
70 | CSS1
71 | 有
72 | 检索或设置对象滚动条方向箭头的颜色。当滚动条出现但不可用时,此属性失效。
73 |
74 |
75 |
76 | scrollbar-face-color
77 |
78 | CSS1
79 | 有
80 | 检索或设置对象滚动条3D表面的(threedface)的外观颜色。
81 |
82 |
83 |
84 | scrollbar-track-color
85 |
86 | CSS1
87 | 有
88 | 检索或设置对象滚动条拖动区域的外观颜色。
89 |
90 |
91 |
92 | scrollbar-base-color
93 |
94 | CSS1
95 | 有
96 | 检索或设置对象滚动条基准颜色,其它界面颜色将据此自动调整。
97 |
98 |
99 |
100 | filter
101 |
102 | CSS1
103 | 无
104 | 设置或检索对象所应用的滤镜效果。
105 |
106 |
107 |
108 | behavior
109 |
110 | CSS1
111 | 无
112 | 设置或检索对象的DHTML行为。
113 |
114 |
115 |
116 | 常用Firefox私有属性
117 |
118 |
119 |
120 | 属性
121 | 版本
122 | 继承性
123 | 描述
124 |
125 |
126 |
127 |
128 | border-colors
129 | CSS3
130 | 无
131 | 设置或检索对象边框的多重颜色
132 |
133 |
134 | border-top-colors
135 | CSS3
136 | 无
137 | 设置或检索对象顶边的多重颜色
138 |
139 |
140 | border-right-colors
141 | CSS3
142 | 无
143 | 设置或检索对象右边的多重颜色
144 |
145 |
146 | border-bottom-colors
147 | CSS3
148 | 无
149 | 设置或检索对象底边的多重颜色
150 |
151 |
152 | border-left-colors
153 | CSS3
154 | 无
155 | 设置或检索对象左边的多重颜色
156 |
157 |
158 |
159 | 常用Webkit私有属性
160 |
161 |
162 |
163 | 属性
164 | 版本
165 | 继承性
166 | 描述
167 |
168 |
169 |
170 |
171 | text-fill-color
172 | CSS3
173 | 有
174 | 设置或检索对象中的文字填充颜色
175 |
176 |
177 | text-stroke
178 | CSS3
179 | 有
180 | 复合属性。设置或检索对象中的文字的描边
181 |
182 |
183 | text-stroke-width
184 | CSS3
185 | 有
186 | 设置或检索对象中的文字的描边厚度
187 |
188 |
189 | text-stroke-color
190 | CSS3
191 | 有
192 | 设置或检索对象中的文字的描边颜色
193 |
194 |
195 | box-reflect
196 | CSS3
197 | 有
198 | 设置或检索对象的倒影
199 |
200 |
201 | tap-highlight-color
202 | CSS3
203 | 无
204 | 设置或检索对象轻按时高亮
205 |
206 |
207 | user-drag
208 | CSS3
209 | 无
210 | 设置或检索一个元素可以被拖拽,而不它的内容
211 |
212 |
213 |
214 |
215 |
--------------------------------------------------------------------------------
/CSS/rules/font-face.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 设置嵌入HTML文档的字体
6 |
23 |
24 |
25 | 设置嵌入HTML文档的字体-@font-face
26 | 语法
27 |
28 | @font-face [family-family: name ; src: <fontsrc> ; <font>
29 |
30 | 取值说明
31 |
32 | 需要兼容当前的主流浏览器,需同时使用TureTpe(.ttf)、Web Open Font Format(.woff)、Embedded Open Type(.eot)、SVG(.svg)四种字体格式
33 |
34 | 示例
35 |
36 |
37 | @font-face {
38 | font-family: 'iconfont';
39 | src: url('../font/fontello.eot'); /* IE9*/
40 | src: url('../font/fontello.eot#iefix') format('embedded-opentype'), /* IE6-IE8 */
41 | url('../font/fontello.woff') format('woff'), /* chrome、firefox */
42 | url('../font/fontello.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
43 | url('../font/fontello.svg#fontello') format('svg'); /* iOS 4.1- */
44 | }
45 |
46 |
47 |
48 | 兼容性
49 | 不同格式的字体文件对于不同的浏览器。
50 | 扩展阅读
51 |
52 |
53 | 这样为什么能设置自定义的字体,设置图标?
54 | 计算机统一识别的是Unicode编码,Unicode编码有非常庞大的编码表,每一个Unicode码对应一个字符(数字,符号,汉字等),我们可以在网页或者js脚本中使用Unicode编码,如"我"的Unicode编码为6211,那么在网页中可以使用
55 | 类似于实体符号的方式,用Unicode码展示“我”,即 我
。也可以在HTML元素的伪元素的content中使用 。在js中使用\u6211;三种书写方式在不同情况下使用。
56 | 在Unicode庞大的编码表中,总有一些是用不到的,但是这些位置有相应的编码值,这样就可以利用这些有编码值的码位,将我们自定义的字体或图标放在这个码位上,然后就可以用相应的Unicode值显示图标或字体。
57 |
58 |
59 | webfont又是什么?
60 | wenfont其实就是一个字体的集合,自定义特殊的字体,定义的字体的每一个符号和的原符号的码值一样,但是表现样式不同,这样页面展示的字就是自定义的字体了。英文的字符数比较少,所以生成的webfont也比较小,目前使用的还是蛮多的,但是
61 | 我大中文实在是太多字了(跪),要是有一个囊括所有汉字的webfont,必然是十分庞大的,实在是没啥价值,所以,汉字的webfont一般都不是包括全部的汉字,而是包括一部分,这样只对特定的汉字做自定义字体展示就好了,字体文件也不会太大。
62 |
63 |
64 | 图标的蜕化操作
65 | 上面说到font-face可以定义图标,但是面临一个问题,如果页面加载的时候,整体结构已经出来了,但是因为网络或cdn的原因,字体文件迟迟没有加载来,就会出现展示异常,这样非常影响用户体验,但是不用图标又不好看,怎么做到既好看又不影响
66 | 使用呢?结合webfont的思路,比如我们想要一个音乐图标♬,那么我们可以先把浏览器可识别的一个符号♫的编码找到,即2660,那么制作图标的时候,新图标♬可以覆盖♫的编码,这样在网络条件良好的情况下,会显示我们自定义的图标,哪怕网络不好
67 | 也不会显示乱码,而是退而求其次,显示♫,总是没有太大的影响嘛,这就是蜕化。
68 |
69 |
70 | 相关链接
71 | Unicode与JavaScript详解
72 | fontello图标下载
73 | 字蛛
74 | iconfont的蜕化操作
75 |
76 |
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/CSS/table/border-collapse.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 表格的行和单元格的边是合并还是独立
6 |
26 |
27 |
28 | 设置表格的行和单元格的边是合并还是独立- border-collapse
29 | 取值
30 |
31 | separate:边框独立
32 | collapse:相邻边被合并
33 |
34 | 说明
35 |
36 | 只有当表格边框独立(即属性等于separate时), border-spacing 和 empty-cells 才起作用。
37 |
38 | 示例
39 |
40 |
41 | 100
42 | 10000
43 | 100
44 |
45 |
46 |
47 |
48 |
49 | 1000
50 | 10000
51 | 100
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/CSS/table/border-spacing.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 行和单元格的边框在横向和纵向上的间距
6 |
23 |
24 |
25 | 设置行和单元格的边框在横向和纵向上的间距- border-spacing
26 | 取值
27 |
28 | <length>:用长度值来定义行和单元格的边框在横向和纵向上的间距。不允许负值
29 |
30 | 说明
31 |
32 | 只有当表格边框独立(即属性等于separate)时才起作用。
33 | 该属性作用等同于标签属性cellspacing(单元格边距)。border-spacing:0等同于cellspacing="0"
34 |
35 | 示例
36 |
37 |
38 | 100
39 | 10000
40 | 100
41 |
42 |
43 |
44 |
45 |
46 | 1000
47 | 10000
48 | 100
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/CSS/table/caption-side.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 表格的caption对象的位置
6 |
21 |
22 |
23 | 设置表格的caption对象的位置- border-collapse
24 | 取值
25 |
26 | top:指定caption在表格上边
27 | bottom:指定caption在表格下边
28 |
29 | 说明
30 |
31 | Firefox还额外支持right和left两个非标准值
32 |
33 | 示例
34 | caption在上边
35 |
36 | caption在上边
37 |
38 |
39 | 这是某一单元格
40 | 这是某一单元格
41 |
42 |
43 | 这是某一单元格
44 | 这是某一单元格
45 |
46 |
47 |
48 |
49 | caption在右边
50 |
51 | caption在右边
52 |
53 |
54 | 这是某一单元格
55 | 这是某一单元格
56 |
57 |
58 | 这是某一单元格
59 | 这是某一单元格
60 |
61 |
62 |
63 |
64 | caption在下边
65 |
66 | caption在下边
67 |
68 |
69 | 这是某一单元格
70 | 这是某一单元格
71 |
72 |
73 | 这是某一单元格
74 | 这是某一单元格
75 |
76 |
77 |
78 |
79 | caption在左边
80 |
81 | caption在左边
82 |
83 |
84 | 这是某一单元格
85 | 这是某一单元格
86 |
87 |
88 | 这是某一单元格
89 | 这是某一单元格
90 |
91 |
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/CSS/table/empty-cells.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 是否显示该单元格的边框
6 |
19 |
20 |
21 | 设置当表格的单元格无内容时,是否显示该单元格的边框- empty-cells
22 | 取值
23 |
24 | hide:指定当表格的单元格无内容时,隐藏该单元格的边框。
25 | show:指定当表格的单元格无内容时,显示该单元格的边框。
26 |
27 | 说明
28 |
29 | 只有当表格边框独立(即属性等于separate)时才起作用。
30 | IE7及以下浏览器中默认隐藏无内容的单元格边框,要想使其获得与show参数值相同的效果,可以变相给该空单元格加个占位且不可见的元素,例如全角空格或 等等。
31 |
32 | 示例
33 | show:
34 |
35 |
36 |
37 | 序号
38 | 姓名
39 | 年龄
40 |
41 |
42 | 1
43 | Joy
44 | 26
45 |
46 |
47 | 2
48 | Kate
49 |
50 |
51 |
52 |
53 |
54 | hide:
55 |
56 |
57 |
58 | 序号
59 | 姓名
60 | 年龄
61 |
62 |
63 | 1
64 | Joy
65 | 26
66 |
67 |
68 | 2
69 | Kate
70 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/CSS/table/table-layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 表格的布局算法
6 |
26 |
27 |
28 | 设置表格的布局算法- table-layout
29 | 取值
30 |
31 | auto:默认的自动算法。布局将基于各单元格的内容,换言之,可能你给某个单元格定义宽度为100px,但结果可能并不是100px。表格在每一单元格读取计算之后才会显示出来,速度很慢
32 | fixed:固定布局的算法。在这算法中,水平布局是仅仅基于表格的宽度,表格边框的宽度,单元格间距,列的宽度,而和表格内容无关。也就是说,内容可能被裁切
33 |
34 | 说明
35 |
36 | 通常fixed算法会比auto算法高效,尤其是对于那些长表格来说。fixed算法使得表格可以像其它元素一样一行一行的渲染。
37 |
38 | 示例
39 |
40 |
41 | 1000000000000000000000000000
42 | 10000000
43 | 100
44 |
45 |
46 |
47 |
48 |
49 | 1000000000000000000000000000
50 | 10000000
51 | 100
52 |
53 |
54 | 设置两个table的三列宽度分别为20%,40%,40%,但是table-layout设置为auto的table并没有按照设置的宽度渲染,而是根据文本内容。table-layout设置为fixed的就可以按照指定宽度显示。
55 |
56 |
57 |
--------------------------------------------------------------------------------
/CSS/text/block-vertical-center.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | vertical-center
6 |
60 |
61 |
62 |
63 |
64 | .first .inner{
65 | position: absolute;
66 | left: 50%;
67 | top: 50%;
68 | margin-top: -50px;
69 | margin-left: -50px;
70 | }
71 |
72 |
73 |
74 |
75 |
76 | .second .inner{
77 | margin: auto;
78 | position: absolute;
79 | top: 0; left: 0; bottom: 0; right: 0;
80 | }
81 |
82 |
83 |
84 |
85 |
86 | .third{
87 | display: -webkit-box;
88 | (-webkit-)box-align:center;
89 | (-webkit-)box-pack:center;
90 | }
91 |
92 |
93 |
94 |
95 |
96 |
97 | .forth{
98 | display: table-cell;
99 | vertical-align:middle;
100 | width: 500px;
101 | }
102 |
103 |
104 |
105 |
106 |
107 | .fifth{
108 | height:300px;
109 | line-height: 300px;
110 | }
111 | .fifth .inner{
112 | vertical-align:middle;
113 | display: inline-block;
114 | }
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/CSS/text/line-height.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 元素内文本的行高
6 |
21 |
22 |
23 | 设置对象的行高。即字体最底端与字体内部顶端之间的距离- line-height
24 | 取值说明
25 |
26 | normal:允许内容顶开或溢出指定的容器边界。
27 | length:用长度直接指定行高
28 | percentage:百分比指定行高
29 | number:乘数因子指定行高
30 |
31 | 示例
32 |
33 |
34 | 固定数值方式: - {line-height:20px;}
35 | 使用固定数值的方式定义line-height,如设置行高为18px类似这样的固定数值,可能会引发文字重叠的现象。
36 |
37 |
38 | 百分比方式: - {line-height:130%;}
39 |
40 | 如果是这种情况
41 |
使用百分比的方式定义line-height,当小于100%时会引发文字重叠的现象。
42 |
43 |
44 |
45 | 因子方式: - {line-height:1.5;}
46 |
47 | 如果是这种情况
48 |
使用因子方式定义line-height,当小于1时会出现文字重叠现象。
49 |
50 |
51 |
52 | 注意事项
53 |
54 | 该属性的所有单位的取值都不支持负值
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/CSS/text/tab-size.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 制表符的长度
6 |
20 |
21 |
22 | 设置制表符的长度- tab-size
23 | 取值说明
24 |
25 | <integer>:用整数值表示制表符长度。
26 | <length>:长度值表示制表符长度
27 |
28 | 注意事项
29 |
30 | 该属性的默认值是8,而不是4.
31 | 只有当white-space 属性设置为pre或pre-wrap时,该属性才生效,不然的话空格符都会被合并,也就看不出效果了。
32 |
33 | 示例
34 |
35 | 你站在桥上看风景,
36 | 看风景的人在楼上看你。
37 | 明月装饰了你的窗子,
38 | 你装饰了别人的梦。
39 |
40 | 兼容性
41 | 兼容性不是很好,IE不兼容,高级浏览器的高级版本才兼容。
42 |
43 |
44 |
--------------------------------------------------------------------------------
/CSS/text/text-align&text-align-last.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本对齐方式
6 |
87 |
88 |
89 | 设置文本对齐方式- text-align,text-align-last
90 | 取值说明
91 |
92 | left:文本居左。
93 | center:文本居中。
94 | right:文本居右。
95 | justify:两端对齐。
96 | start:对齐开始边界。
97 | end:对齐结束边界。
98 | match-parent:不支持。
99 | justify-all:不支持。
100 |
101 | 注意事项
102 |
103 | 该属性只是适用于块级元素。
104 | start和end属性是和文本的起始方向有关的,正常情况下,start和left表现一直,end和right表现一直,当文本方向和正常不一致时,两者表现才出现差异,参看示例一。
105 | 大部分浏览器要使得 text-align 的justify两端对齐生效,需要在汉字间插入有空白,如空格;
106 | 容器内最后一行文本(包括行内只有一行文本的情况,这时既是第一行,也是最后一行文本),单纯的使用justify无法实现两端对齐,需要配合text-align-last属性。
107 |
108 | 单行文本的两端对齐
109 | 由于所有主流浏览器都支持text-align的justify,但是大部分的浏览器不支持text-align-last属性,所以针对不同的浏览器需要采取不同的措施。
110 | 1.当支持text-align-last的时候,使用text-align-last将文本对齐,参看示例二。
111 | 2.当浏览器不支持text-align-last时,可以使用可以对非IE及IE7以上浏览器使用伪对象生成额外的内容(IE7及以下的使用)text-align-last,置于第二行并将其隐藏,这时第一行文本(即要对齐的那个单行文本)可使用text-align:justify来对齐。参看示例三。
112 | 示例一
113 |
114 |
正常情况下的start
115 |
正常情况下的left
116 |
特殊文本方向情况下的start
117 |
特殊文本方向情况下的left
118 |
119 | 示例二
120 |
123 | 示例三
124 |
127 | 应用场景:form表单的label文本两端对齐
128 |
142 |
143 |
144 |
--------------------------------------------------------------------------------
/CSS/text/text-indent.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本的缩进
6 |
20 |
21 |
22 | 设置文本的缩进- text-indent
23 | 取值说明
24 |
25 | <length>:缩进长度值,可以为负
26 | <percent>:缩进长度值百分比
27 |
28 | 注意事项
29 |
30 | 该属性只有在元素是块级元素或者内联块级元素时才生效。
31 |
32 | 示例
33 | 我是内敛元素,我设置30px缩进无效
34 | 我是块级元素,我的左边有30px的缩进
35 | 兼容性
36 | 所有浏览器均不兼容CSS3新特性hanging 和 each-line。
37 |
38 |
39 |
--------------------------------------------------------------------------------
/CSS/text/text-transform.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本的大小写
6 |
29 |
30 |
31 | 文本的大小写- text-transform
32 | 取值说明
33 |
34 | none:无转换
35 | capitalize:将每个单词的第一个字母转换成大写
36 | uppercase:将每个单词转换成大写
37 | lowercase:将每个单词转换成小写
38 | full-width:将所有字符转换成fullwidth形式。如果字符没有相应的fullwidth形式,将保留原样。这个值通常用于排版拉丁字符和数字等表意符号
39 |
40 | 示例
41 |
42 |
43 |
无转换
44 |
转换前:hello world!
45 |
转换后: hello world!
46 |
47 |
48 |
首字母大写
49 |
转换前:hello world!
50 |
转换后: hello world!
51 |
52 |
53 |
全部大写
54 |
转换前:hello world!
55 |
转换后: hello world!
56 |
57 |
58 |
全部小写
59 |
转换前:hello world!
60 |
转换后: hello world!
61 |
62 |
63 |
full-width(在Firefox中才能看到效果)
64 |
转换前:hello world!
65 |
转换后: hello world!
66 |
67 |
68 | 兼容性
69 | full-width只有Firefox兼容
70 | 需要注意的点
71 |
72 |
73 | font-variant 属性也可以转换大小写,当font-variant设置未small-caps时可以将文本设置成小型的大写字母,样式展现并不一样。
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/CSS/text/vertical-align.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 垂直对齐
6 |
28 |
29 |
30 | 设置文本的垂直对齐- vertical-align
31 | 取值说明
32 |
33 | baseline:将支持valign特性的对象的内容与基线对齐
34 | middle:将支持valign特性的对象的内容与对象中部对齐
35 | bottom:将支持valign特性的对象的文本与对象底端对齐
36 | ......
37 |
38 | 注意事项
39 |
40 | 该属性只有在元素是内联及 table-cell 元素时才生效。
41 |
42 | 示例
43 |
44 |
45 | 与基线对齐
46 | 参考内容基线对齐
47 |
48 |
49 | 与参考内容的下标对齐
50 | 参考内容下标对齐
51 |
52 |
53 | 与参考内容的上标对齐
54 | 参考内容上标对齐
55 |
56 |
57 | 对象的内容与对象顶端对齐
58 | 参考内容要对齐的内容
59 |
60 |
61 | 对象的文本与对象顶端对齐
62 | 参考内容要对齐的内容
63 |
64 |
65 | 对象的内容与对象中部对齐
66 | 参考内容要对齐的内容
67 |
68 |
69 | 对象的内容与对象底端对齐
70 | 参考内容要对齐的内容
71 |
72 |
73 | 对象的文本与对象顶端对齐
74 | 参考内容要对齐的内容
75 |
76 |
77 | 与基线算起的偏移量
78 | 参考内容偏移量对齐
79 |
80 |
81 | 扩展
82 | vertical-align只是文本的垂直对齐,而且只适用于内联元素,这里列举了一些块垂直居中的方式,传送门
83 |
84 |
85 |
--------------------------------------------------------------------------------
/CSS/text/white-space.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本空格的处理方式
6 |
17 |
18 |
19 | 元素里文本空格的处理方式- white-space
20 | 取值说明
21 |
22 | normal:默认处理方式。
23 | pre:用等宽字体显示预先格式化的文本,不合并文字间的空白距离,当文字超出边界时不换行。可查阅pre对象
24 | nowrap:强制在同一行内显示所有文本,合并文本间的多余空白,直到文本结束或者遭遇br对象。
25 | pre-wrap:用等宽字体显示预先格式化的文本,不合并文字间的空白距离,当文字碰到边界时发生换行。
26 | pre-line:保持文本的换行,不保留文字间的空白距离,当文字碰到边界时发生换行。
27 |
28 |
29 |
30 | 取值
31 | 换行符
32 | 空格和制表符
33 | 文字转行
34 |
35 | normal 合并 合并 转行
36 | nowrap 合并 合并 不转行
37 | pre 保留 保留 不转行
38 | pre-wrap 保留 保留 转行
39 | pre-line 保留 合并 转行
40 |
41 | 兼容性
42 | 除pre-wrap和pre-line比较特殊之外,其他属性均兼容多浏览器,pre-wrap和pre-line个别旧浏览器不兼容。
43 |
44 |
45 |
--------------------------------------------------------------------------------
/CSS/text/word-break&word-wrap&overflow-wrap.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本的字内换行行为
6 |
17 |
18 |
19 | 元素内文本的字内换行行为- word-break,word-wrap,overflow-wrap
20 |
21 | 这三个属性都是定义元素内文本换行行为(内容超出容器边界是否断行)。
22 |
23 | 取值说明
24 | word-break
25 |
26 | normal:默认处理方式,允许(亚洲文本)在字内换行,英文不会换行。
27 | keep-all:对于中日韩文字不允许断开,该值大部分浏览器不支持
28 | break-all:允许所有的文本呢断开,包括亚洲文本。
29 |
30 | word-wrap,overflow-wrap
31 |
32 | normal:默认处理方式,允许文本超出容器边界。
33 | break-word:内容将在边界内换行。如果需要,单词内部允许断行。
34 |
35 | 注意事项
36 | word-break主要用于亚洲语言的折断换行,而word-wrap和overflow-wrap主要用户非亚洲语言的折断换行,而且在CSS3中将 word-wrap改名为overflow-wrap,所以在需要文本超出容器折断换行的话,需要同时写三个属性,即:
37 |
38 | word-break:break-all;
39 | word-wrap:break-word;
40 | overflow-wrap:break-word;/*为了保证向前兼容*/
41 |
42 | 这样才能保证最大的兼容性。
43 |
44 |
45 |
--------------------------------------------------------------------------------
/CSS/text/word-spacing&letter-spacing.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 单词以及字母之间的间距
6 |
23 |
24 |
25 | 单词以及字母之间的间距- word-spacing,letter-spacing
26 | 取值说明
27 |
28 | <length>:长度值。
29 | <percent>:百分比值,不支持。
30 |
31 | 注意事项
32 |
33 | word-spacing判断是否为单词的依据是单词间是否有空格。
34 |
35 | 示例一:word-spacing
36 |
37 |
我是正常文本间距
38 |
我 的 文 本 间 距 是 20px
39 |
40 | 示例二:letter-spacing
41 |
42 |
Normal Hello World
43 |
Hello World
44 |
45 | 兼容性
46 | 所有浏览器都不支持百分比属性值。
47 |
48 |
49 |
--------------------------------------------------------------------------------
/CSS/textDecoration/text-decoration.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本装饰属性
6 |
17 |
18 |
19 | 文本装饰属性- text-decoration
20 | 语法
21 |
22 | text-decoration:<' text-decoration-line '> || <' text-decoration-style '> || <' text-decoration-color '>
23 |
24 | 说明
25 |
26 | text-decoration-line:指定文本装饰种类,可取值none,underline,overline,line-through,blink
27 | text-decoration-style:指定文本装饰样式,可取值solid,double,dotted,dashed,wavy
28 | text-decoration-color:指定文本装饰线条的颜色
29 |
30 | 注意事项
31 | 1.大部分浏览器都不支持text-decoration-line的blink值。
32 | 2.text-decoration-style的取值dotted和dashed取值在除FF的浏览器中要么实现不了,要么表现为实线。
33 | 兼容性
34 | FireFox对text-decoration属性支持的比较好,其他浏览器欠佳。
35 |
36 |
37 |
--------------------------------------------------------------------------------
/CSS/textDecoration/text-shadow.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本的文字是否有阴影及模糊效果
6 |
21 |
22 |
23 | 文本的文字是否有阴影及模糊效果- text-shadow
24 | 取值
25 |
26 | none:无阴影
27 | length①:第1个长度值用来设置对象的阴影水平偏移值。可以为负值
28 | length②:第2个长度值用来设置对象的阴影垂直偏移值。可以为负值
29 | length③:如果提供了第3个长度值则用来设置对象的阴影模糊值。不允许负值
30 | color:阴影颜色值
31 |
32 | 说明
33 |
36 | 示例
37 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/CSS/writingModes/direction&unicode-bidi.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本流的方向
6 |
28 |
29 |
30 | 设置文本流的方向- direction&unicode-bidi
31 | direction取值
32 |
33 | ltr:文本流从左到右
34 | rtl:文本流从右到左
35 |
36 | unicode-bidi取值
37 |
38 | normal:默认值
39 | embed:对象打开附加的嵌入层,<' direction '> 属性的值指定嵌入层,在对象内部进行隐式重排序(没看懂-_-!)
40 | bidi-override:严格按照 <' direction '> 属性的值重排序。忽略隐式双向运算规则(没看懂+1)
41 |
42 | 说明
43 |
44 | 当unicode-bidi的取值为normal时,direction设置为rtl无效
45 |
46 | 示例
47 |
48 |
本段文字将按照从左到右的方向进行流动。
49 |
本段文字将按照从右到左的方向进行流动。
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/CSS/writingModes/writing-mode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本流的方向
6 |
17 |
18 |
19 | 设置对象的内容块固有的书写方向- writing-mode
20 | 取值
21 |
22 | horizontal-tb:水平方向自上而下的书写方式。即 left-right-top-bottom(类似IE私有值lr-tb)
23 | vertical-rl:垂直方向自右而左的书写方式。即 top-bottom-right-left(类似IE私有值tb-rl)
24 | vertical-lr:垂直方向自左而右的书写方式。即 top-bottom-left-right
25 | lr-tb:左-右,上-下。对象中的内容在水平方向上从左向右流入,后一行在前一行的下面。 所有的字形都是竖直向上的。这种布局是罗马语系使用的(IE)
26 | tb-rl:上-下,右-左。对象中的内容在垂直方向上从上向下流入,自右向左。后一竖行在前一竖行的左面。全角字符是竖直向上的,半角字符如拉丁字母或片假名顺时针旋转90度。这种布局是东亚语系通常使用的(IE)
27 |
28 | 说明
29 |
30 | 西方语言一般都是 lr-tb 的书写方式,但是亚洲语言 lr-tb | tb-rl 的书写方式都有。
31 | 不关注排版的页面用途不大...不做详细介绍
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/HTML/doctype.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <!DOCTYPE>标签简介
6 |
11 |
12 |
13 | <!DOCTYPE>标签简介
14 | <!DOCTYPE>不是HTML标签,它是一项声明,告诉浏览器目前所处的文档是什么类型的文档,从而让浏览器能够正常的显示网页。
15 | 因为HTML 4.0基于SGML,所以在HTML 4.01中引用了DTD,DTD的作用是规定标记语言的规则;而HTML 5不是基于SGML的,所以不需要引用DTD。
16 | 常见声明
17 |
18 |
19 | HTML 5
20 |
21 | <!DOCTYPE html>
22 |
23 |
24 | HTML 4.01 Strict
25 | 包含所有HTML元素和属性,但不包括展示性和启用的元素如font等,也不允许框架集(Framesets)。
26 |
27 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
28 |
29 |
30 | HTML 4.01 Transitional
31 | 包含所有HTML元素和属性,也包括展示性和启用的元素如font等,但不允许框架集(Framesets)。
32 |
33 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
34 |
35 |
36 | HTML 4.01 Frameset
37 | 包含所有HTML元素和属性,也包括展示性和启用的元素如font等,并允许框架集(Framesets)。
38 |
39 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
40 |
41 |
42 | XHTML 1.0 Strict
43 | 同HTML 4.01 Strict,但必须以格式正确的XML编写标记。
44 |
45 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
46 |
47 |
48 | XHTML 1.0 Transitional
49 | 同HTML 4.01 Transitional,但必须以格式正确的XML编写标记。
50 |
51 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
52 |
53 |
54 | XHTML 1.0 Frameset
55 | 同HTML 4.01 Frameset,但必须以格式正确的XML编写标记。
56 |
57 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
58 |
59 |
60 | XHTML 1.1
61 | 同XHTML 1.0 Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)。
62 |
63 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/HTML/form/form.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The form element
6 |
9 |
10 |
11 | form元素属性列表
12 |
13 | action;规定当提交表单时向何处发送表单数据;其值是一个url
14 | method;规定用于发送表单数据的HTTP方法;其值为GET或POST
15 |
16 | target;规定在什么地方打开action中的url;其值如下:
17 |
18 | _blank ,在新窗口打开
19 | _self,在本身的页面中打开,默认值
20 | _parent,在父框架集中打开
21 | _top,在整个窗口中打开
22 | framename,该值为一个指定的frame的名称,url将在这个指定的frame中打开
23 |
24 |
25 | accept-charset;规定服务器用哪种字符集处理表单数据,其值为服务器可处理的一个或多个字符集,多个字符集用逗号隔开;常用值有utf-8、gb2312等
26 |
27 | enctype;规定在发送到服务器之前应该如何对表单数据进行编码;其值如下:
28 |
29 | application/x-www-form-urlencoded,在发送前编码所有字符,默认值
30 | multipart/form-data,不对字符编码,在使用包含文件上传控件的表单时必须使用该值
31 | text/plain,空格转换为 "+" 加号,但不对特殊字符编码
32 |
33 |
34 | autocomplete;是否启用表单的自动完成功能,其值为on或off,不是布尔值
35 | novalidate;使用该属性则表示提交表单时不进行验证
36 | name;表单的名称,其值为字符串
37 |
38 | 示例:
39 |
40 |
41 | form表单示例:
42 | action="/url", method="GET", target="_blank", accept-charset="UTF-8"
43 | enctype="application/x-www-form-urlencoded", autocomplete="off", novalidate, name="formname"
44 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/HTML/form/input.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The input Element
6 |
9 |
10 |
11 | input元素属性列表
12 |
13 |
14 | type;input元素的类型;其值如下(未提及部分不被大多数浏览器支持的属性值):
15 |
16 | text,单行的输入字段,默认宽度为20个字符
17 | password,密码字段
18 | button,可点击按钮
19 | checkbox,复选框
20 | radio,单选按钮
21 | file,文件类型
22 | image,图像形式的提交按钮
23 | hidden,隐藏的输入字段
24 | reset,重置按钮,清除表单中的所有数据
25 | submit,提交按钮,把表单中的数据提交到服务器
26 | color,拾色器,其返回值为十六进制颜色的字符串
27 | date,日期选择器,其返回值是形式为yyyy-mm-dd的字符串
28 | email,邮箱格式的输入字段,提交时会自动验证
29 | month,月份选择器,其返回值是形式为yyyy-mm的字符串
30 | number,数字格式的输入字段,无法输入数字以外的字段,可以通过min和max属性设置数字范围,提交时会自动验证是否在该数字范围内
31 | range,滑动条,其返回值为0到100之间的整数
32 | search,搜索字段,表现和常规的文本域一样
33 | tel,电话号码格式的输入字段,目前只在Safari 8 中被支持
34 | time,时间选择器
35 | url,url格式的输入字段,提交时会自动验证
36 | week,周选择器,其返回值是形式为yyyy-Wdd(dd是第几周,如是2015年的第12周,则为2015-W12)
37 |
38 |
39 | name,input元素的名称
40 | value,input元素的值,value与类型为file的input元素不能搭配使用
41 | disabled,是否禁用input元素,其值就是disabled
42 | autocomplete,是否使用输入字段的自动完成功能,其值为on或者off
43 | autofocus,规定页面加载时input元素是否自动获取焦点,其值就是autofocus
44 | list,引用数据列表,其中包含输入字段的预定义选项,其值为文档中datalist的id
45 | checked,页面加载时input元素是否被选中,与类型为checkbox或radio的input元素搭配使用,其值就是checked
46 | readonly,规定输入字段只读,其值就是readonly,与类型为text或password的input元素搭配使用
47 | required,规定在提交表单前必须填写该字段,其值就是required
48 | size,输入字段的宽度
49 | placeholder,帮助用户填写输入字段的提示,与类型为text、search、url、telephone、email以及password的input元素搭配使用
50 | pattern,规定用于验证输入字段的正则表达式,与类型为text、search、url、telephone、email以及password的input元素搭配使用
51 | max,输入字段所允许的最大值,与类型为number、range、date、month、time以及week的input元素搭配使用
52 | min,输入字段所允许的最小值,与类型为number、range、date、month、time以及week的input元素搭配使用
53 | step,输入字段的合法数字间隔,与类型为number、range、date、month、time以及week的input元素搭配使用
54 | maxlength,输入字段的最大长度(以字符数来计算),与类型为text或password的input元素搭配使用
55 | multiple,规定输入字段可选择多个值,其值就是multiple,与类型为email和file的input元素搭配使用
56 | src,引用图像的url,与type="image"搭配使用
57 | alt;与type="image"搭配使用,定义图像的替代文本
58 | width,input元素的宽度,其值为像素值或者百分比,与type="image"搭配使用
59 | height,input元素的高度,其值为像素值或者百分比,与type="image"搭配使用
60 | form,input元素所属的一个或多个表单,其值为表单的id,多个表单之间用空格隔开,
61 | formaction,覆盖表单的action属性,适用于类型为submit或image的input元素
62 | formtarget,覆盖表单的target属性,适用于类型为submit或image的input元素
63 | formmethod,覆盖表单的method属性,适用于类型为submit或image的input元素
64 | formenctype,覆盖表单的enctype属性,适用于类型为submit或image的input元素
65 | formnovalidate,覆盖表单的novalidate属性,适用于类型为submit或image的input元素
66 |
67 | 示例:
68 |
69 |
70 | type='text', name='example1', value='我是text', disabled :
71 |
72 |
73 |
74 | type='password', autocomplete='on', maxlength='5', autofocus, required :
75 |
76 |
77 |
78 | type='number', list='data_list', placeholder='请输入数字', step='3' :
79 |
80 |
81 | 3
82 | 6
83 | 9
84 |
85 |
86 |
87 | type='range', min='10', max='50' :
88 |
89 |
90 |
91 | type='checkbox', checked :
92 |
93 |
94 |
95 | type='file', multiple :
96 |
97 |
98 |
99 | type='image', src='image.jpg', alt='图片未加载', width='20px', height='20px' :
100 |
101 |
102 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/HTML/form/others.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The other Elements
6 |
9 |
10 |
11 | form元素中的其它元素简介
12 |
13 | fieldset标签;将表单内的相关元素进行分组,当一组表单元素被放在fieldset标签内时,浏览器会以特殊的方式来显示它们;
14 | legend标签;为fieldset标签定义标题
15 | label标签;为input元素定义标注,其上有一个属性for可以将label与对应的input元素绑定在一起,其属性值为元素id,不是元素的name
16 |
17 | textarea标签;多行文本输入控件,其上的属性如下:
18 |
19 | autofocus,页面加载后是否自动获取焦点
20 | cols,文本区的可见宽度,以字符数计算
21 | rows,文本区的可见行数
22 | disabled,是否禁用此文本区
23 | form,文本区所属的一个或多个表单
24 | maxlength,文本区的最大字符数
25 | name,文本区的名称
26 | placeholder,帮助用户填写输入字段的提示
27 | readonly,规定文本区只读
28 | required,规定文本区必填
29 |
30 | wrap,规定表单提交时,文本区的内容如何换行,其值如下:
31 |
32 | soft,提交表单时文本区的内容不换行,默认值
33 | hard,提交表单时文本区的内容换行,会包含换行符,此时必须指定cols属性
34 |
35 |
36 |
37 |
38 |
39 | select标签;单选或多选菜单,其上的属性如下:
40 |
41 | autofocus,页面加载后是否自动获取焦点
42 | disabled,是否禁用下拉列表
43 | form,下拉列表所属的一个或多个表单
44 | multiple,规定下拉列表可选择多个选项
45 | name,下拉列表的名称
46 | required,必填
47 | size,下拉列表里可见的选项数目
48 |
49 |
50 |
51 | option标签;定义下拉列表中的一个选项,其上的属性如下:
52 |
53 | disabled,禁用该选项
54 | label,定义选项所使用的标注
55 | selected,规定该选项在首次加载下拉列表时被选中
56 | value,定义该选项送往服务器的值
57 |
58 |
59 | optgroup标签;用于组合选项,其上必须要有label属性用来为选项组规定描述,可选属性为disabled
60 | button标签;可点击按钮
61 | datalist标签;定义合法的输入值选项列表,配合input元素使用,该选项列表不会被显示出来
62 | keygen标签;规定用于表单的密钥对生成器字段
63 |
64 | 示例:
65 |
115 |
116 |
117 |
--------------------------------------------------------------------------------
/HTML/head/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The head Element
6 |
13 |
14 |
15 | <head>标签简介
16 |
17 | head标签用于描述文档的头部,它是所有文档头部元素的容器。
18 | 在head部分可以使用<base>, <link>, <meta>, <script>, <style>以及<title>标签。
19 | 在head标签上支持profile属性和html的全局属性,profile属性的值是一个由空格分隔的url列表,这些url包含着有关页面的元数据信息,profile属性主要是为将来的开发保留的占位符。
20 |
21 | 可以用在head中的标签
22 |
23 |
24 | base;该标签为页面上的所有链接规定默认地址或默认目标,其上的属性如下:
25 |
26 | href,该属性为base上必需的属性,规定页面中所有相对链接的基准URL。
27 | target,规定在何处打开页面中所有的链接,其值有_blank, _parent, _self, _top, framename。
28 |
29 |
30 |
31 | link;该标签定义文档与外部资源的关系,最常见的用途是链接样式表。其上的属性如下:
32 |
33 | href,被链接文件的位置。
34 | hreflang,规定被链接文档中文本的语言。
35 |
36 | media,规定被链接文档将显示在什么设备上,该属性用于为不同的媒介类型规定不同的样式。
37 | 其属性值有screen、tty、tv、projection、handheld、print、braille、aural、all。
38 |
39 |
40 | rel,规定当前文档与被链接文档间的关系,它的属性值很多,但只有stylesheet得到了所有浏览器支持。
41 | 其上的属性值有alternate、stylesheet、start、next、prev、contents、index、glossary、copyright、chapter、section、subsection、appendix、help、bookmark。
42 | 其中有一个比较重要的属性值是prefetch。Link prefetching 是利用浏览器最佳的时间去下载或者预加载一些用户可能将会在不久将来浏览的文档的一种浏览器机制。
43 |
44 |
45 | sizes,规定被链接资源的尺寸,只有当rel="icon"时,才能使用该属性。
46 | 其实属性值有heightxwidth(如16x16)或any,该属性可以接受多个值,值之间用空格分隔。
47 |
48 | type,规定被链接文档的 MIME 类型。
49 |
50 |
51 | meta;可提供有关页面的元信息。
52 |
53 | script;用于定义客户端脚本,如JavaScript。
54 | script 元素既可以包含脚本语句,也可以通过 src 属性指向外部脚本文件。其上的属性如下:
55 |
56 |
57 | type,指示脚本的 MIME 类型。该属性是必需的。
58 | 其中一些值为text/javascript、text/ecmascript、application/ecmascript、application/javascript、text/vbscript等。
59 |
60 | async,规定异步执行脚本(仅适用于外部脚本)。
61 | charset,规定在外部脚本文件中使用的字符编码。
62 | defer,规定是否对脚本执行进行延迟,直到页面加载为止。
63 | src,外部脚本文件的位置。
64 | xml:space,规定是否保留代码中的空白,其值是preserve。
65 |
66 |
67 |
68 | style;用于为 HTML 文档定义样式信息。其上的属性如下:
69 |
70 | type,规定样式表的 MIME 类型,目前唯一可能的值是text/css。
71 | media,为样式表规定不同的媒介类型。
72 |
73 |
74 |
75 | title;该元素定义文档的标题。
76 | 浏览器会以特殊的方式来使用标题,并且通常把它放置在浏览器窗口的标题栏或状态栏上。同样,当把文档加入用户的链接列表或者收藏夹或书签列表时,标题将成为该文档链接的默认名称。
77 | 该标签是head中唯一被要求包含的东西。其上的属性如下:
78 |
79 | dir,规定元素中内容的文本方向。
80 | lang,规定元素中内容的语言代码。
81 | xml:lang,规定 XHTML 文档中元素内容的语言代码。
82 |
83 |
84 |
85 | 示例:
86 |
87 |
88 | head标签
89 | <head>
90 | <meta charset="UTF-8">
91 | <title>The head Element</title>
92 | </head>
93 |
94 |
95 | base标签
96 |
97 | <base href="http://www.w3school.com.cn/i/" />
98 | <base target="_blank" />
99 |
100 |
101 |
102 |
103 | link标签
104 | <link rel="stylesheet" type="text/css" href="theme.css" />
105 |
106 |
107 | link预加载
108 | <link rel="prefetch" href="http://www.meituan.com" />
109 | <link rel="prefetch" href="image.png" />
110 |
111 |
112 | meta标签
113 | <meta charset="UTF-8">
114 |
115 |
116 | script标签
117 |
118 |
119 | 外部脚本文件
120 | <script src="code.js"><script />
121 |
122 |
123 | 包含脚本语句
124 | <script>
125 | console.log('Hello world!');
126 | <script />
127 |
128 |
129 |
130 |
131 | style标签
132 | <style type="text/css">
133 | body { margin: 0; }
134 | <style />
135 |
136 |
137 | title标签
138 | <title>我是标题<title />
139 |
140 |
141 |
142 |
--------------------------------------------------------------------------------
/HTML/head/meta.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The meta Element
6 |
10 |
11 |
12 | <meta>标签简介
13 |
14 | meta元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
15 | meta标签位于文档的头部,不包含任何内容。<meta>标签的属性定义了与文档相关联的名称/值对。
16 |
17 | meta标签上的属性
18 |
19 |
20 | content,提供了名称/值对中的值,该值可以是任何有效的字符串。
21 | 该属性始终要和 name 属性或 http-equiv 属性一起使用。
22 |
23 |
24 | http-equiv,该属性为名称/值对提供了名称。并指示服务器在发送实际的文档之前先在要传送给浏览器的 MIME 文档头部包含名称/值对。
25 | 其上的属性值通常有content-type、expires、refresh、set-cookie。
26 |
27 |
28 | name,该属性提供了名称/值对中的名称。
29 | 通常情况下,您可以自由使用对自己和源文档的读者来说富有意义的名称。
30 | "keywords" 是一个经常被用到的名称。它为文档定义了一组关键字。某些搜索引擎在遇到这些关键字时,会用这些关键字对文档进行分类。
31 | 如果没有提供 name 属性,那么名称/值对中的名称会采用 http-equiv 属性的值。
32 | 其上的属性值通常有author、description、keywords、generator、revised、others。
33 |
34 | scheme,该属性用于指定要用来翻译属性值的方案。此方案应该在由head标签的 profile 属性指定的概况文件中进行了定义。
35 | charset,规定文档使用的字符编码。
36 |
37 | 示例:
38 |
39 | <meta name="keywords" content="HTML,ASP,PHP,SQL">
40 | <meta http-equiv="charset" content="iso-8859-1">
41 | <meta charset="UTF-8">
42 |
43 |
44 |
--------------------------------------------------------------------------------
/HTML/html.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The html Element
6 |
12 |
13 |
14 | <html>标签简介
15 | html元素的作用是告诉浏览器其本身是一个html文档。
16 | <html>与</html>标签限定了文档的开始点和结束点,在它们之间是文档的头部和主体。
17 | <html>标签上的属性如下:
18 |
19 | manifest;定义一个 URL,这个url是文档的缓存 manifest 的位置
20 |
21 | xmlns;定义 XML namespace 属性。
22 | xmlns 属性在 XHTML 中是必需的,但在 HTML 中不是。
23 | 不过,即使 XHTML 文档中的<html>没有使用此属性,W3C 的验证器也不会报错。这是因为 "xmlns=http://www.w3.org/1999/xhtml" 是一个固定值,即使您没有包含它,此值也会被添加到<html>标签中。
24 |
25 | html的全局属性也可以在<html>标签上使用。
26 |
27 | html的全局属性如下(忽略部分被大多数浏览器不支持的属性):
28 |
29 |
30 | accesskey,规定激活元素的快捷键。
31 | 支持accesskey属性的元素有a, area, button, input, label, legend以及textarea。
32 |
33 | class,元素的一个或多个类名,多个类之间用空格隔开。
34 | contenteditable,规定元素内容是否可编辑,其值为true或false。
35 |
36 | contentmenu,规定元素的上下文菜单。上下文菜单在用户点击元素时显示。
37 | 与<menu>标签搭配使用,contentmenu的值就是menu元素的id。
38 |
39 |
40 | data-*,用于存储页面或应用程序的私有自定义数据,其值为任意字符串。
41 |
42 |
43 | dir,规定元素内容的文本方向,其值为ltr(从左向右)或rtl(从右向左)。
44 | dir在元素base, br, frame, frameset, hr, iframe, param以及script中无效。
45 |
46 |
47 | draggable,规定元素是否可拖动。
48 | 其值为true、false或auto,值为auto时会使用浏览器的默认行为。
49 |
50 | hidden,规定元素仍未或不再相关。该属性为布尔属性,如果元素设置了该属性,则浏览器不会显示该元素。
51 | id,元素的唯一id。
52 |
53 | lang,规定元素内容的语言。
54 | lang属性在元素base, br, frame, frameset, hr, iframe, param以及script中无效。
55 |
56 |
57 | spellcheck,规定是否对元素进行拼写和语法检查,其值为true或false。
58 | 可以对input元素中的输入内容(非密码),textarea元素中的文本和可编辑元素的内容进行检查。
59 |
60 | style,规定元素的行内CSS样式。
61 | tabindex,规定元素的tab键次序。
62 | title,规定关于元素的额外信息,这个额外信息通常是tooltip的内容。
63 |
64 | html标签示例:
65 |
66 | <!DOCTYPE html>
67 | <html lang="en">
68 | <head>
69 | <meta charset="UTF-8">
70 | <title></title>
71 | </head>
72 | <body>
73 | </body>
74 | </html>
75 |
76 |
77 |
--------------------------------------------------------------------------------
/HTML/iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The Iframe element
6 |
14 |
15 |
16 | iframe元素
17 |
18 | src: 文件的路径,既可是HTML文件,也可以是文本、ASP等
19 | width、height:”内部框架“区域的宽和高
20 |
21 | scrolling:当SRC的指定的HTML文件在指定的区域不显不完时,滚动选项
22 |
23 | 如果为 NO,则不出现滚动条;
24 | 如果为Yes,则显示;
25 | 如果为 Auto:则自动出现滚动条
26 |
27 |
28 | FrameBorder:设置或获取是否显示框架的边框。(1,0 或 no,yes)
29 | name:框架的名字
30 |
31 | align:规定如何根据周围元素对齐框架
32 | 建议用样式代替
33 |
34 |
35 | marginheight:规定 iframe 的顶部和底部的空白边距,以像素计。
36 |
37 |
38 | marginwidth:规定 iframe 的左侧和右侧的空白边距,以像素计。
39 |
40 |
41 | sandbox:sandbox 属性将会启用一系列对行内框架中内容的额外限制。其值如下:
42 |
43 | "":应用以下所有的限制。
44 | allow-same-origin:允许 iframe 内容被视为与包含文档有相同的来源。
45 | allow-top-navigation:允许 iframe 内容从包含文档导航(加载)内容。
46 | allow-forms:允许表单提交。
47 | allow-scripts:允许脚本执行。
48 |
49 |
50 | autocomplete;是否启用表单的自动完成功能,其值为on或off,不是布尔值
51 | novalidate;使用该属性则表示提交表单时不进行验证
52 | name;表单的名称,其值为字符串
53 |
54 | 示例:
55 |
78 |
79 |
80 |
81 |
90 |
--------------------------------------------------------------------------------
/HTML/layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 布局标签简介
6 |
16 |
17 |
18 | 布局标签简介
19 | 布局类标签
20 |
21 |
85 | 列表类标签
86 |
87 |
88 | 标签:<ul>
89 | 涵义:定义一组无序列表,每一个<li>都是一个列表项
90 | 示例:基础技术要求
91 | JavaScript
92 | CSS
93 | HTML
94 |
95 |
96 |
97 | 标签:<ol>
98 | 涵义:定义一组有序列表,每一个<li>都是一个列表项
99 | 示例:RD三件套
100 | 人体工学椅
101 | MacBook Pro
102 | 大屏显示器
103 |
104 |
105 |
106 | 标签:<li>
107 | 涵义:定义列表项目
108 | 示例:同上
109 |
110 |
111 | 标签:<dl>
112 | 涵义:定义了定义列表,常和<dd><dt>搭配使用
113 | 示例:
114 |
115 | 计算机
116 | 用来计算的仪器 ... ...
117 | 显示器
118 | 以视觉方式显示信息的装置 ... ...
119 |
120 |
121 |
122 | 标签:<dt>
123 | 涵义:定义了定义列表中的项目(即术语部分)
124 | 示例:同上
125 |
126 |
127 | 标签:<dd>
128 | 涵义:定义列表中定义条目的定义部分
129 | 示例:同上
130 |
131 |
132 |
133 |
134 |
--------------------------------------------------------------------------------
/HTML/special.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 特殊标签简介
6 |
13 |
14 |
15 | 特殊标签简介
16 |
17 |
18 | 标签:<command>
19 | 涵义:指定一个用户可以调用的命令【已废弃】
20 | 示例:Try This :Hello
21 |
22 |
23 | 标签:<menu>
24 | 涵义:代表一组用户可以操作或者激活的命令。【试验阶段,浏览器基本都不支持】
25 |
26 |
27 | 标签:<progress>
28 | 涵义:显示一个进度条
29 | 示例:70 %
30 | 属性:
31 |
32 |
33 | value:当前值
34 |
35 |
36 | max:最大值
37 |
38 |
39 |
40 |
41 | 标签:<meter>
42 | 涵义:定义已知范围或分数值内的标量测量
43 | 示例:350 degrees
44 | 属性:
45 |
46 |
47 | value:当前值
48 |
49 |
50 | max:最大值
51 |
52 |
53 | min:最小值
54 |
55 |
56 | low:规定被视作低的值的范围
57 |
58 |
59 | high:规定被视作高的值的范围
60 |
61 |
62 | optimum:规定度量的优化值
63 |
64 |
65 | form:规定 <meter>元素所属的一个或多个表单
66 |
67 |
68 |
69 |
70 | 标签:<spacer>
71 | 涵义:用来在网页中插入空格【已废弃】
72 |
73 |
74 | 标签:<track>
75 | 涵义:HTML <track> 元素 被当作媒体元素—<audio> 和 <video>的子元素来使用。它允许指定计时字幕(或者基于事件的数据),例如自动处理字幕。
76 |
77 |
78 | 标签:<figure>
79 | 涵义:设置独立的流内容(图像、图表、照片、代码等等), 经常与标题 标签<figcaption>配合使用
80 | 示例:
81 |
82 |
83 |
84 |
85 | Fig1. MDN Logo
86 |
87 |
88 |
89 | 标签:<figcaption>
90 | 涵义:标签定义 <figure> 元素的标题,应该被置于 <figure> 元素的第一个或最后一个子元素的位置。
91 | 示例:同上
92 |
93 |
94 | 标签:<map>
95 | 涵义:定义一个客户端图像映射。图像映射(image-map)指带有可点击区域的一幅图像
96 | 示例:
97 |
98 |
99 |
105 |
106 |
112 |
113 |
119 |
120 |
121 |
122 |
123 | 标签:<area>
124 | 涵义:定义图像映射中的区域,永远嵌套在 <map> 元素内部(注:图像映射指得是带有可点击区域的图像)。
125 | 示例:同上
126 | 属性:
127 |
128 |
129 | coords:定义可点击区域(对鼠标敏感的区域)的坐标【逗号分隔的四个数字】
130 |
131 |
132 | href:定义此区域的目标 URL
133 |
134 |
135 | nohref:从图像映射排除某个区域【nohref】
136 |
137 |
138 | shape:定义区域的形状【default/rect/circ/poly】
139 |
140 |
141 | target:规定在何处打开 href 属性指定的目标 URL【_blank/_parent/_self/_top】
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/HTML/svg/svg.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SVG简介
6 |
17 |
18 |
19 | SVG简介
20 | SVG意为可缩放矢量图形,全称为Scalable Vector Graphics。
21 | SVG是使用 XML 来描述二维图形和绘图程序的语言。
22 | SVG的使用形式
23 |
77 | SVG中的全局属性
78 | 有一些属性在SVG内的元素上是基本通用的,它们是:
79 |
80 | stroke属性,定义形状的描边。
81 | stroke-width属性,定义描边的宽度。
82 | opacity属性,定义形状的透明度。
83 | fill属性,定义形状的填充色。
84 | fill-opacity属性,定义形状填充色的透明度。
85 | transform属性,定义svg图形或者坐标的变换。
86 |
87 | 在SVG中,值可以带单位也不可以不带。一个不带单位的值可以在用户空间中通过用户单位声明。如果值通过用户单位声明,那么这个值的数值被认为和px单位的数值一样。
88 | SVG的兼容性
89 | 目前除了IE在9之前(不包括9)不支持SVG以外,各大浏览器基本都对SVG进行了支持,详情可参见Caniuse 。
90 | 参考资料
91 |
99 |
100 |
--------------------------------------------------------------------------------
/HTML/svg/svg_others.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SVG元素
6 |
23 |
24 |
25 | SVG除形状和结构外的常用元素
26 |
27 |
28 | text元素
29 | text元素用来创建文字,其上的属性如下:
30 |
31 | x属性和y属性,每个字的位置,值可以是一个数字也可以是一个数字序列,如果值为一个数字则为第一个字的位置,后面的字紧随其后。
32 | dx属性和dy属性,字的相对位置,x、y 是基於原本的位置去做改變,而 dx、dy 則是基於前一個字的位置去做變化。
33 | rotate属性,字的旋转角度,值可以为一个数字或者一个数字序列。
34 | textLength,设定这段文字的长度,与lengthAdjust搭配使用。
35 | lengthAdjust,设定对这段文字长度的调整,值为spacing(拉宽文字间距)或者spacingAndGlyphs(拉宽文字)。
36 |
37 | 示例及其代码如下:
38 |
39 |
40 |
41 | <svg>
42 | <text x='50,100,150,200,250' y='50' rotate='90' fill='red' >我是文字!</text>
43 | <text x='50' y='100' textLength='200' lengthAdjust='spacingAndGlyphs' fill='blue' >我是文字!</text>
44 | </svg>
45 |
46 |
47 |
48 |
49 | 我是文字!
50 | 我是文字!
51 |
52 |
53 |
54 |
55 |
56 | linearGradient元素
57 | 该元素嵌套在defs元素中用来定义线性渐变。其上有x1、y1、x2和y2属性,用来形成一条直线,渐变就沿这条直线来变化。示例如下:
58 |
59 |
60 |
61 | <svg height='100'>
62 | <defs>
63 | <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
64 | <stop offset="0%" stop-color='rgb(255,255,0)'stop-opacity='0.5' />
65 | <stop offset="100%" stop-color='rgb(255,0,0)'stop-opacity='1' />
66 | </linearGradient>
67 | </defs>
68 | <rect x="50" y="50" width="85" height="35" fill="url(#grad1)" />
69 | </svg>
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 | radialGradient元素
87 | 该元素嵌套在defs元素中用来定义放射性渐变,其上的属性如下:
88 |
89 | cx属性和cy属性定义渐变的外圈的圆心,r属性定义外圈的半径。
90 | fx属性和fy属性定义渐变焦点的位置。
91 |
92 | 放射性渐变是从焦点沿各个方向向外圈进行渐变。示例如下:
93 |
94 |
95 |
96 | <svg>
97 | <defs>
98 | <radialGradient id="grad2" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
99 | <stop offset="0%" style="stop-color:rgb(255,255,255);stop-opacity:0" />
100 | <stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1" />
101 | </radialGradient>
102 | </defs>
103 | <ellipse cx="120" cy="70" rx="85" ry="55" fill="url(#grad2)" />
104 | </svg>
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 | stop标签
122 | 该标签嵌套在linearGradient或radialGradient元素中,用来指定渐变应该在什么位置形成什么颜色。其上的属性有:
123 |
124 | offset属性,定义偏移位置,它必须从0%到1%(或者从0到1)。
125 | stop-color属性,定义颜色状态。
126 | stop-opacity属性,定义透明度状态。
127 |
128 |
129 |
130 | a元素
131 | 该元素可以用于在svg图形中创建链接,注意这里链接的属性变成了xlink:href。示例如下:
132 |
133 |
134 |
135 | <svg height='100'>
136 | <a xlink:href='http://www.meituan.com' target='_blank'>
137 | <rect x='20' y='20' width='100' height='30' fill='blue' />
138 | </a>
139 | </svg>
140 |
141 |
142 |
149 |
150 |
151 |
152 | image元素
153 | 该元素用于在你的SVG图像中嵌入普通的位图。
154 |
155 |
156 | 参考资料
157 |
168 |
169 |
--------------------------------------------------------------------------------
/HTML/svg/svg_shape.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SVG形状相关元素
6 |
22 |
23 |
24 | SVG形状相关元素
25 |
26 |
27 | 矩形<rect>
28 | rect元素用于创建矩形和矩形的变种。其上的属性如下:
29 |
30 | x属性和y属性,定义矩形的左侧位置和顶端位置,它们一起定义了矩形的左上角。
31 | width属性,定义矩形的宽,以左上角点沿x正轴延伸的距离。
32 | height属性,定义矩形的高,以左上角点向y正轴延伸的距离。
33 | rx属性和ry属性,定义矩形圆角的尺寸。
34 |
35 | 示例及代码如下:
36 |
37 |
38 |
39 | <svg>
40 | <rect x='100' y='20' rx='10' ry='10' width='100' height='100' style='stroke: black; stroke-width: 1px;' />
41 | </svg>
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | 圆形<circle>
53 | circle元素用于创建一个圆。其上的属性如下:
54 |
55 | cx属性和cy属性,分别定义圆心的x坐标和y坐标,如果没有设置,则为默认的(0, 0)。
56 | r属性,定义圆的半径。
57 |
58 | 示例及代码如下:
59 |
60 |
61 |
62 | <svg>
63 | <circle cx='50' cy='50' r='10' />
64 | </svg>
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | 椭圆<ellipse>
76 | ellipse元素用于创建椭圆,其上的属性如下:
77 |
78 | cx属性和cy属性,定义圆心的位置。
79 | rx属性和ry属性,定义椭圆的水平半径和垂直半径。
80 |
81 | 示例及代码如下:
82 |
83 |
84 |
85 | <svg>
86 | <ellipse cx='50' cy='50' rx='10' ry='5' />
87 | </svg>
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 | 线条<line>
99 | line元素用来创建线条(直线)。其上的属性如下:
100 |
101 | x1属性和y1属性,定义线条起始点的位置。
102 | x2属性和y2属性,定义线条终止点的位置。
103 |
104 | 示例及代码如下:
105 |
106 |
107 |
108 | <svg>
109 | <line x1='50' y1='50' x2='200' y2='50' style='stroke: black;stroke-width: 2;' />
110 | </svg>
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 | 多边形<polygon>
122 | polygon元素用来创建含有不少于三条边的图形。
123 | 其上的points属性,定义多边形每个角的x坐标和y坐标,坐标间可以用逗号或者空格隔开。具体示例及代码如下:
124 |
125 |
126 |
127 | <svg>
128 | <polygon points='100,10 20,80 180,80' style='fill: white;stroke: black;' />
129 | </svg>
130 |
131 |
132 |
137 |
138 |
139 |
140 | 折线<polyline>
141 | polyline用来创建仅包含直线的形状。
142 | 其上的points属性,定义折线的各个点的坐标。示例及其代码如下:
143 |
144 |
145 |
146 | <svg>
147 | <polyline points='100,10 20,80 180,80' style='fill: white;stroke: black;' />
148 | </svg>
149 |
150 |
151 |
156 |
157 |
158 |
159 | 路径<path>
160 | path元素用来定义路径,其上的d属性用来定义路径信息,它的值是由一个“命令+参数”的序列。每一个命令都有两种表示方式,大写字母表示采用绝对定位,小写字母表示采用相对定位(以上一个点为基准来计算)。具体命令如下:
161 |
162 | M,moveto,该命令会把画笔移动到后面紧跟的参数表示的位置,但不画线。
163 | L,lineto,该命令会在紧跟其后的参数表示的位置和L前面画笔所在点间画一条直线。
164 | H,该命令用来绘制平行线,后面紧跟一个参数,表示在x轴移动的位置。
165 | V,该命令用来绘制垂直线,后面紧跟一个参数,表示在y轴移动的位置。
166 | Z,该命令用来闭合路径,从当前点画一条直线到路径的起点,Z命令不区分大小写。
167 | C,该命令用来绘制三次贝塞尔曲线,其后跟随着三个点参数,前两个是控制点,最后一个是曲线的终点。
168 | S,该命令与C命令或者S命令搭配使用,画出一条三次贝塞尔曲线,其后跟随两个点参数,第一个是终点的控制点,第二个是终点,而起点的控制点默认为上一个控制点的对称点。
169 | Q,该命令用来创建二次贝塞尔曲线,其后跟随两个点参数,一个是控制点,另一个是终点。
170 | T,该命令与Q命令或者T命令搭配使用,它和Q的关系和S与C的很像,其后跟随一个点参数,即终点,控制点默认为上一个控制点的对称点。
171 | A,该命令用来创建弧形曲线。
172 |
173 | 示例及代码如下:
174 |
175 |
176 |
177 | <svg width='600'>
178 | <path d='M20,20 L100,20 V80 H20 Z' style='fill: white;stroke: black;' >
179 | <path d='M150,80 C180,10 205,10 235,80 S310,150 320,80' stroke='red' fill='white' />
180 | <path d="M330,80 Q372.5,10 415,80 T500,80" stroke="blue" fill="white"/>
181 | </svg>
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 | 参考资料
195 |
203 |
204 |
--------------------------------------------------------------------------------
/HTML/svg/svg_structure.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SVG结构相关元素
6 |
22 |
23 |
24 | SVG结构相关元素
25 |
26 |
27 | g元素
28 | g元素是分组元素,用于在逻辑上将相关的元素进行分组。给g元素添加的样式或者属性都会被应用到它所有的子元素上。如下示例所示,想对三个圆进行移动,可以直接在g上进行操作,这样既达到了移动的目的,也没有破坏他们之间的位置关系。
29 |
30 |
31 |
32 | <svg width='100%' height='100'>
33 | <g transform='translate(50,50)'>
34 | <circle cx='10' cy='10' r='5' />
35 | <circle cx='30' cy='10' r='5' />
36 | <circle cx='50' cy='10' r='5' />
37 | </g>
38 | </svg>
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | title元素和desc元素
54 | 这两个标签可以用在g元素中使用,添加一些描述性的信息,使其更容易被屏幕阅读器解读,让代码的整体可读性更好。
55 |
56 |
57 | use元素
58 | 该元素可以实现元素的重用,可以重用单个元素,也可以重用一组元素。use元素复制出的副本的样式和初始元素一样,不能覆盖初始元素的样式。其上的属性如下:
59 |
60 | x属性和y属性,重用的元素的位置。这两个属性是相对被重用的元素的位置来定位的。
61 | width属性和height属性,重用元素的宽高。
62 | xlink:href属性,引用内容的url,如id值。
63 |
64 | 示例如下:
65 |
66 |
67 |
68 | <svg>
69 | <g id='circles' transform='translate(100,100)'>
70 | <circle cx='10' cy='10' r='5' />
71 | <circle cx='30' cy='10' r='5' />
72 | <circle cx='50' cy='10' r='5' />
73 | </g>
74 | <use x='10' y='10' xlink:href='#circles' />
75 | </svg>
76 |
77 |
78 |
79 |
80 |
81 | defs元素
82 | 该元素可以存储我们想重用的元素,但是不渲染它们,等到后面再被其他SVG元素应用或显示。defs元素的副本的x和y是相对于用户坐标系统来定位的。其副本可以用use元素来创建。示例如下:
83 |
84 |
85 |
86 | <svg>
87 | <defs>
88 | <linearGradient id="gradient">
89 | <stop offset="0%" style="stop-color: deepPink"></stop>
90 | <stop offset="100%" style="stop-color: #009966"></stop>
91 | </linearGradient>
92 | </defs>
93 | <rect stroke="#eee" stroke-width="5" fill="url(#gradient)"></rect>
94 | </svg>
95 |
96 |
97 |
98 |
99 |
100 | symbol元素
101 | 该元素和g元素相似,它提供了一种对元素进行分组的方式。该元素不会被渲染,同时它可以有自己的viewBox和preserveAspectRatio属性。
102 |
103 |
104 | 参考资料
105 |
110 |
111 |
--------------------------------------------------------------------------------
/HTML/table/others.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The Table element
6 |
15 |
16 |
17 | <th><td>
18 |
19 |
20 | valign:规定单元格内容的垂直排列方式。取值有top、middle、bottom、baseline
21 |
22 |
23 | align:规定单元格中内容的水平对齐方式。,其值为left、right、center、justify、char。
24 |
25 |
26 | bgcolor:规定单元格的背景颜色。
27 | 建议用样式代替
28 |
29 |
30 | axis:对单元进行分类。
31 |
32 |
33 | char:规定根据哪个字符来进行内容的对齐。
34 |
35 |
36 | charoff:charoff 属性设置内容相对于由 char 属性规定的字符的对齐偏移量。
37 |
38 |
39 | colspan:规定规定单元格可横跨的列数。值为数字。
40 | 若colspan的值大于总列数,则该行的宽度增加到行尾
41 |
42 |
43 | rowspan:规定规定单元格可横跨的行数。值为数字。
44 | 若rowspan的值大于总列数,则该行的宽度增加到列尾
45 |
46 |
47 | headers:定义将表头单元与数据单元相关联的方法。
48 |
49 |
50 | height:规定表格单元格的高度。
51 | 建议用样式代替
52 |
53 |
54 | nowrap:规定表格单元格中的内容不换行。
55 | 建议用样式代替
56 |
57 |
58 | scope:定义将表头单元与数据单元相关联的方法。
59 |
60 |
61 | abbr:规定单元格中内容的缩写版本。
62 |
63 |
64 | width:规定表格单元格的宽度。
65 | 建议用样式代替
66 |
67 |
68 | <col>
69 |
70 |
71 | <col>标签为表格中一个或多个列定义属性值。
72 |
73 |
74 | 如需对全部列应用样式,col标签很有用,这样就不需要对各个单元和各行重复应用样式了。
75 |
76 |
77 | 没有结束标签
78 |
79 |
80 | 属性值有:
81 |
82 |
83 | align(水平对齐方式)
84 |
85 |
86 | 垂直对齐方式(水平对齐方式)
87 |
88 |
89 |
90 | char(根据字符对齐相关内容)
91 |
92 |
93 | charoff(规定第一个对齐字符的偏移量)
94 |
95 |
96 | span(规定col元素横跨的列数)
97 |
98 |
99 | width(规定col元素的宽度)
100 |
101 |
102 |
103 |
104 | 请为 col 标签添加 class 属性。这样就可以使用 CSS 来负责对齐方式、宽度和颜色等等。
105 |
106 |
107 | <colgroup>
108 |
109 |
110 | <col>用于对表格中的列进行组合,以便对其进行格式化,其属性与<col>相同。
111 |
112 |
113 |
114 | 有结束标签
115 |
116 |
117 | 属性值有:
118 |
119 |
120 | align(水平对齐方式)
121 |
122 |
123 | 垂直对齐方式(水平对齐方式)
124 |
125 |
126 |
127 | char(根据字符对齐相关内容)
128 |
129 |
130 | charoff(规定第一个对齐字符的偏移量)
131 |
132 |
133 | span(规定colgroup元素横跨的列数)
134 |
135 |
136 | width(规定colgroup元素的宽度)
137 |
138 |
139 |
140 |
141 | 请为 colgroup 标签添加 class 属性。这样就可以使用 CSS 来负责对齐方式、宽度和颜色等等。
142 |
143 |
144 | <caption>
145 |
146 |
147 | <col>用于定义表格标题。
148 |
149 |
150 |
151 | caption 标签必须紧随 table 标签之后。您只能对每个表格定义一个标题。通常这个标题会被居中于表格之上。
152 |
153 |
154 | 示例:
155 |
156 |
157 | align属性:align="right"
158 |
159 |
160 |
161 | Month
162 | Savings
163 |
164 |
165 | January
166 | $100
167 |
168 |
169 |
170 |
171 | 合并单元格
172 | rowspan="2"
173 | colspan="2"
174 |
175 |
176 |
177 | Month
178 | Savings
179 | Savings for holiday!
180 |
181 |
182 | January
183 | $50
184 |
185 |
186 | February
187 | $80
188 |
189 |
190 |
191 |
192 | valign属性:
193 | 取值为bottom或baseline。
194 |
195 |
196 |
197 | Month
198 | Savings
199 |
200 |
201 | January
202 | $100
203 |
204 |
205 | February
206 | $80
207 |
208 |
209 |
210 |
211 |
212 | caption标题:
213 |
214 | 我的标题
215 |
216 | 100
217 | 200
218 | 300
219 |
220 |
221 | 400
222 | 500
223 | 600
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
--------------------------------------------------------------------------------
/HTML/table/table.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The Table element
6 |
18 |
19 |
20 | table标签属性列表
21 |
22 |
23 | width:规定单元格的宽度,值为数字,单位为px。
24 |
25 |
26 |
27 | align:规定表格相对周围元素对齐方式,其值为left、right、center。
28 | 可实现其他HTML元素围绕表格的效果,建议用样式代替
29 |
30 |
31 | bgcolor:规定表格的背景颜色。
32 | 建议用样式代替
33 |
34 |
35 | border:规定表格边框的宽度,值为数字
36 | 自带border属性样式比较丑,建议设置单元格border属性代替
37 |
38 |
39 | cellpadding:规定单元格的内边距,值为数字,代表内边距的百分比
40 | 从实用角度出发,最好不要规定 cellpadding,而是使用 CSS 来添加内边距
41 |
42 |
43 | cellspacing:规定单元格的外边距,值为数字,代表内边距的百分比
44 | 从实用角度出发,最好不要规定 cellspacing,而是使用 CSS 来添加内边距
45 |
46 |
47 | frame:规定外部边框哪个部分是可见的。
48 | 建议用样式代替
49 |
50 |
51 | rules:规定内部边框哪个部分是可见的。
52 | 建议用样式代替
53 | frame和rules组合技:frame="box" rules="all"展示所有边框
54 |
55 |
56 | summary:规定表格内容的摘要。
57 | 不会产生任何视觉变化
58 |
59 |
60 | thead、tbody、tfoot
61 |
62 |
63 | thead 标签定义表格的表头。该标签用于组合 HTML 表格的表头内容。
64 |
65 |
66 | thead 元素应该与 tbody 和 tfoot 元素结合起来使用。
67 | <thead> 内部必须拥有 <tr> 标签!
68 |
69 |
70 | thead、tfoot 以及 tbody 元素使您有能力对表格中的行进行分组。当您创建某个表格时,您也许希望拥有一个标题行,一些带有数据的行,以及位于底部的一个总计行。这种划分使浏览器有能力支持独立于表格标题和页脚的表格正文滚动。当长的表格被打印时,表格的表头和页脚可被打印在包含表格数据的每张页面上。
71 |
72 |
73 | 当table中省略这三个标签时,浏览器会自动在<tr>标签外层套一个<tbody>标签
74 |
75 |
76 | 注意点:
77 |
78 | thead和tfoot在一张表中都只能有一个,而tbody可以有多个。
79 | tfoot必须出现在tbody前面,这样浏览器在接收主体数据之前,就能渲染表尾,有利于加快表格的显示速度。这一点对大型表格尤其重要。
80 | thead、tbody和tfoot里面都必须使用tr标签。
81 |
82 |
83 |
84 |
85 | 示例:
86 |
183 |
184 |
185 |
--------------------------------------------------------------------------------
/HTML/text/text.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文本类标签简介
6 |
13 |
14 |
15 | 文本类标签简介
16 | HTML 文本标签用来组织文本块或者片段,一般放置在body标签中。这些标签具有较强的语义化涵义,对于可访问性和搜索引擎优化有积极的作用。
17 | 常见标签
18 |
19 |
20 | 标签:<a>
21 | 涵义:定义一个超链接
22 | 示例:美团网
23 | 属性:
24 |
25 |
26 | href:链接地址
27 |
28 |
29 | target:目标网页【_blank/_self/_parent/_top】
30 |
31 |
32 |
33 |
34 | 标签:<bdi>
35 | 涵义:把用户名从周围的文本方向设置中隔离出来
36 | 示例:Username Bill :80 points
37 | 属性:
38 |
39 |
40 | dir:规定 <bdi> 元素内的文本的文本方向【ltr/trl/auto】
41 |
42 |
43 |
44 |
45 | 标签:<i>
46 | 涵义:以斜体显示特殊文本,如技术术语、外文短语,或者小说中人物的中心思想。
47 | 示例:The Queen Mary Tsailed last night
48 | 注:<i>最开始只是表示斜体,无实际意义,但是在最新的HTML5规范中,<i>被赋予了新的语义化涵义,用来表示特殊文本,如技术术语、外文短语,或者小说中人物的中心思想等。
49 |
50 |
51 | 标签:<em>
52 | 涵义:以斜体显示文本,在于强调的重点。
53 | 示例:We had to do something about it
54 | 注:和<i> 的区别在于语义化方面的不同,<em>是表达要素(phrase elements),表示句子中的强调,即强调语义。
55 |
56 |
57 | 标签:<b>
58 | 涵义:以粗体显示文本。
59 | 示例:Text is bold
60 | 注:最开始的<b>表示无意义的加粗,但是在最新的HTML5规范中<b>表示文体上突出的不包含任何额外的重要性的一段文本,例如:文档概要中的关键字,评论中的产品名等。
61 |
62 |
63 | 标签:<strong>
64 | 涵义:以粗体显示文本,用于强调,比<em>更重点的强调
65 | 示例:Text is bold
66 | 注:同<em>也是表达元素,表示页面中的强调。
67 |
68 |
69 | 标签:<sup>
70 | 涵义:以上标显示文本
71 | 示例:This text is superscripted
72 |
73 |
74 | 标签:<sub>
75 | 涵义:以下标显示文本
76 | 示例:水的化学表达式是H2 O
77 |
78 |
79 | 标签:<big>
80 | 涵义:增大显示文本【已废弃】
81 |
82 |
83 | 标签:<small>
84 | 涵义:使文本以更小的字号显示
85 | 示例:©版权所有
86 | 注:最开始是没有语义化色彩的,在HTML5规范中,<small>用来表示版权或法律信息等。
87 |
88 |
89 | 标签:<ins>
90 | 涵义:表示被插入的文本
91 | 示例:This text has been inserted .
92 | 属性:
93 |
94 | cite:该属性定义了资源的URI,解释了变化的来源。
95 | datetime:这个属性表示变化的时间和日期。
96 |
97 |
98 |
99 | 标签:<del>
100 | 涵义:表示被删除的文本
101 | 示例:This text has been deleted, here is the rest of the paragraph.
102 | 属性:同<ins>
103 |
104 |
105 | 标签:<bdo>
106 | 涵义:自定义文本的方向
107 | 示例:This is normal direction.And this will right to left.
108 | 属性:dir-文本方向,可选值[rtl/ltr/auto]
109 |
110 |
111 | 标签:<cite>
112 | 涵义:表示一些“有创意”的文本,如人们约定俗成的语言缩写
113 | 示例:我们经常用的文件编码格式是 [UTF-8]
114 |
115 |
116 | 标签:<q>
117 | 涵义:表示一小段外部引用文本,会自动加上双引号
118 | 示例:Mary said Oh My God.
119 | 属性:cite-表示引用来源
120 |
121 |
122 | 标签:<blockquote>
123 | 涵义:表示大段外部引用文本
124 | 示例:
125 | This is a quotation taken from the Mozilla Developer Center.
126 |
127 |
128 |
129 | 标签:<dfn>
130 | 涵义:表示定义一个专业术语名词
131 | 示例:I love WWW
132 |
133 |
134 | 标签:<abbr>
135 | 涵义:表示文本缩写
136 | 示例:I'm a FE engineer.
137 |
138 |
139 | 计算机相关标签
140 |
176 | 其他特殊文本标签
177 |
178 |
179 | 标签:<mark>
180 | 涵义:显示一段高亮文本
181 | 示例:The <mark> element is used to highlight text
182 |
183 |
184 | 标签:<time>
185 | 涵义:显示一个时间
186 | 示例:Time is May 12
187 | 属性:datetime-指定时间
188 |
189 |
190 | 标签:<ruby>
191 | 涵义:定义 ruby 注释(中文注音或字符),和 <rt> 标签一同使用,<ruby> 元素由一个或多个字符(需要一个解释/发音)和一个提供该信息的 <rt> 元素组成,还包括可选的 <rp> 元素,定义当浏览器不支持 <ruby> 元素时显示的内容
192 | 示例:
193 | 示例 shi li
194 |
195 |
196 | 不支持 shi li 浏览器不支持<ruby>
197 |
198 |
199 |
200 | 标签:<rt>
201 | 涵义:定义<ruby>元素的注释
202 | 示例:同上
203 |
204 |
205 | 标签:<ruby>
206 | 涵义:定义当浏览器不支持 <ruby> 元素时显示的内容
207 | 示例:同上
208 |
209 |
210 | 标签:<wbr>
211 | 涵义:定义文本换行的时机,指定在何处添加换行符
212 | 示例:不得不说,electroencephalography是一个很长的单词
213 |
214 |
215 | 标签:<details>
216 | 涵义:用于描述文档或文档某个部分的细节,目前只有 Chrome 支持 <details> 标签。一般和<summary>配合使用,没有<summary>的话默认显示“详细信息”
217 | 示例:
218 | All pages and graphics on this web site are the property of W3School.
219 |
220 | 属性:open - 设置是否打开细节
221 |
222 |
223 | 标签:<summary>
224 | 涵义:包含 <details> 元素的标题,<details> 元素用于描述有关文档或文档片段的详细信息。<summary> 元素应该是 <details> 元素的第一个子元素。
225 | 示例:
226 | HTML5
227 | This document teaches you everything you have to learn about HTML 5.
228 |
229 |
230 |
231 |
232 |
233 |
--------------------------------------------------------------------------------
/HTML/video.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The VIDEO element
6 |
18 |
19 |
20 | video标签属性列表
21 |
22 |
23 | width:设置视频播放器的宽度。
24 |
25 |
26 | height:设置视频播放器的高度。
27 |
28 |
29 | autoplay:如果出现该属性,则视频在就绪后马上播放,取值为autoplay。
30 | 如果设置了该属性,视频将自动播放。
31 |
32 |
33 | controls:规定浏览器应该为视频提供播放控件。
34 | 浏览器控件应该包括:播放、暂停、定位、音量、全屏切换、字幕(如果可用)、音轨(如果可用)
35 | 如果设置了该属性,则规定不存在作者设置的脚本控件。
36 |
37 |
38 | loop:当设置该属性后,它规定视频的音频输出应该被静音。
39 |
40 |
41 | muted:规定单元格的内边距,值为数字,代表内边距的百分比
42 | 从实用角度出发,最好不要规定 cellpadding,而是使用 CSS 来添加内边距
43 |
44 |
45 | poster:规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。
46 | 如果未设置该属性,则使用视频的第一帧来代替
47 |
48 |
49 | preload:规定是否在页面加载后载入视频。其值如下:
50 | 如果设置了 autoplay 属性,则忽略该属性。
51 |
52 |
53 |
54 | src:规定要播放的视频的 URL。
55 | 其值可以填相对URL和绝对URL
56 |
57 |
58 | audio标签属性列表
59 |
60 |
61 | autoplay:如果出现该属性,则音频在就绪后马上播放,取值为autoplay。
62 |
63 |
64 | controls:如果出现该属性,则向用户显示控件,比如播放按钮。
65 |
66 |
67 | loop:如果出现该属性,则每当音频结束时重新开始播放。
68 |
69 |
70 | muted:规定视频输出应该被静音。
71 |
72 |
73 | preload:如果出现该属性,则音频在页面加载时进行加载,并预备播放。
74 | 如果设置了 autoplay 属性,则忽略该属性。
75 |
76 |
77 |
78 | src:规定要播放的音频的 URL。
79 |
80 |
81 |
82 | 示例:
83 |
84 |
85 | autoplay属性:
86 |
87 |
88 |
89 |
90 | Your browser does not support the video tag.
91 |
92 |
93 |
94 | controls工具栏:
95 |
96 |
97 |
98 |
99 | Your browser does not support the video tag.
100 |
101 |
102 |
103 | loop循环播放:
104 |
105 |
106 |
107 |
108 | Your browser does not support the video tag.
109 |
110 |
111 |
112 | muted默认静音
113 |
114 |
115 |
116 |
117 | Your browser does not support the video tag.
118 |
119 |
120 |
121 |
122 | 添加封面
123 |
124 |
125 |
126 |
127 | Your browser does not support the video tag.
128 |
129 |
130 |
131 |
132 |
133 |
134 |
--------------------------------------------------------------------------------
/JavaScript/undefined.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | undefined
6 |
155 |
156 |
157 | undefined
158 |
159 |
160 | 说明:全局对象的一个属性"undefined".
161 | 如何检测一个变量是不是undefined
162 |
163 |
164 | 1.typeof v === 'undefined'(angular.isUndefined)
165 | 如果一个变量根本没有被声明,必须使用typeof判断
166 | 2.v === undefined/void 0(underscore.isUndefined)
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 鲜果FE
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Basics
2 | Frontend Basic Knowledge
3 |
--------------------------------------------------------------------------------
/Webpack/Concepts/README.md:
--------------------------------------------------------------------------------
1 | # Webpack: concepts
2 |
--------------------------------------------------------------------------------
/Webpack/Concepts/concepts-part2.md:
--------------------------------------------------------------------------------
1 | by huopanpan 2018.07
2 |
3 | ### 目录:
4 | * configuration
5 | * 基本配置
6 | * 多个Target
7 | * 使用其他配置语言
8 | * modules
9 | * webpack模块
10 | * 支持的模块类型
11 | * module resolution
12 | * webpack中的解析规则
13 | * Resolving Loaders
14 | * 缓存
15 | * dependency graph
16 | * 如何生成依赖关系
17 | * Stats Data
18 |
19 | ## 配置(configuration)
20 |
21 | 你可能注意到,很少有webpack配置看起来完全相同。这是因为webpack的配置文件,是导出一个对象的JavaScript文件。此对象是由webpack根据对象定义的属性进行解析。
22 |
23 | 因为webpack配置是标准的Node.js CommonJS模块,你可以做到以下事情:
24 |
25 | - 通过 `require(...)` 导入其他文件
26 | - 通过 `require(...)` 使用npm的工具函数
27 | - 使用JavaScript控制流表达式,例如 `?:` 操作符
28 | - 对常用值使用常量或变量
29 | - 编写并执行函数来生成部分配置
30 |
31 | 请在合适的时机使用这些特性。
32 |
33 | 虽然技术上可以,但应避免以下做法:
34 |
35 | - 在使用webpack命令接口(CLI)时访问CLI参数(应该编写自己的命令接口(CLI),或者使用 `--env`)
36 | - 导出不确定的值(调用webpack两次应该产生同样的输出文件)
37 | - 编写很长的配置(应该将配置拆分为多个文件)
38 |
39 | webpack配置可以有很多种的格式和风格,但为了团队能够易于理解和维护,团队中应始终采取同一种用法、格式和风格。
40 |
41 | ### 基本配置
42 |
43 | webpack.config.js
44 |
45 | ```
46 | var path = require('path');
47 |
48 | module.exports = {
49 | mode: 'development',
50 | entry: './foo.js',
51 | output: {
52 | path: path.resolve(__dirname, 'dist'),
53 | filename: 'foo.bundle.js'
54 | }
55 | };
56 | ```
57 |
58 | ### 多个Target
59 |
60 | - 导出为一个函数
61 | - 导出一个Promise
62 | - 导出多个配置对象
63 |
64 | **更详细地内容请参考之后配置中的configuration types部分。**
65 |
66 | ### 使用其他配置语言
67 |
68 | webpack接受以多种编程和数据语言编写的配置文件。
69 |
70 | - TypeScript
71 | - CoffeeScript
72 | - Babel and JSX
73 |
74 | **更详细地内容请参考之后配置中的configuration languages部分。**
75 |
76 | ## 模块(modules)
77 |
78 | 在模块化编程中,开发者将程序分解成离散功能块,并称之为模块。
79 |
80 | 每个模块具有比完整程序更小的接触面,使得校验、调试、测试轻而易举。精心编写的模块提供可靠的抽象和封装界限,使得应用程序中每个模块都具有条理清楚的设计和明确的目的。
81 |
82 | Node.js从最一开始就支持模块化编程。然而,在web,模块化的支持正缓慢到来。在web存在多种支持JavaScript模块化的工具,这些工具各有优势和限制。webpack基于从这些系统获得的经验教训,并将模块的概念应用于项目中的任何文件。
83 |
84 | ### 什么是webpack模块
85 |
86 | 与Node.js模块相比较,webpack模块能够以各种方式表达它们的依赖关系,例子如下:
87 |
88 | - ES2015 `import` 语句
89 | - CommonJS require() 语句
90 | - AMD define 和 require 语句
91 | - css/sass/less 文件中的 `@import` 语句
92 | - 样式( `url(...)` )或HTML文件( ` ` )中的图片链接(image url)
93 |
94 | *webpack1 需要特定的loader来转换ES2015 `import` ,然而通过webpack2可以直接使用。*
95 |
96 | ### 支持的模块类型
97 | webpack通过loder可以支持各种语言和预处理器编写模块。loader描述了webpack如何处理非JavaScript(non-JavaScript)模块,并且在bundle中引入这些依赖。webpack社区已经为各种流行语言和语言处理器构建了loader,包括:
98 |
99 | - CoffeeScript
100 | - TypeScript
101 | - ESNext(Babel)
102 | - Sass
103 | - Less
104 | - Stylus
105 |
106 | 总的来说,webpack提供了可定制的、强大和丰富的API,允许任何技术栈使用webpack,保持了在开发、测试和生成流程中**无侵入性(non-opinionated)**。
107 |
108 | **有关完整的列表,请参看之后的loader章节或自己编写。**
109 |
110 | ## 模块解析(module resolution)
111 |
112 | resolver是一个库(library),用于帮助找到模块的绝对路径。一个模块可以作为另一个模块的依赖模块,然后被后者引用。如下:
113 |
114 | ```
115 | import foo from 'path/to/module'
116 | // 或者
117 | require('path/to/module')
118 | ```
119 | 所依赖的模块可以是来自应用程序代码或第三方的库(library)。resolver帮助webpack找到bundle中需要引入的模块代码,这些代码在包含每个 `require` / `import`语句中。当打包模块时,`webpack` 使用enhanced-resolve来解析文件路径
120 |
121 | ### webpack中的解析规则
122 |
123 | 使用 `enhanced-resolve` ,webpack能够解析三种文件路径:
124 |
125 | - 绝对路径
126 | - 相对路径
127 | - 模块路径
128 |
129 | ### 绝对路径
130 |
131 | ```
132 | import "/home/me/file";
133 |
134 | import "C:\\Users\\me\\file";
135 | ```
136 |
137 | 已经取得文件的绝对路径,因此不需要进一步再做解析。
138 |
139 | ### 相对路径
140 |
141 | ```
142 | import "../src/file1";
143 | import "./file2";
144 | ```
145 |
146 | 在这种情况下,使用 `import` 或 `require` 的资源文件(resource file)所在的目录被认为是上下文目录(context directory)。在 `import/require` 中给定的相对路径,会添加此上下文路径(context path),以产生模块的绝对路径(absolute path)。
147 |
148 | ### 模块路径
149 |
150 | ```
151 | import "module";
152 | import "module/lib/file";
153 | ```
154 |
155 | 模块将在 `resolve.modules` 中指定的所有目录内搜索。也可以替换初始模块路径,此替换路径通过使用 `resolve.alias` 配置选项来创建一个别名。
156 |
157 | 一旦根据上述规则解析路径后,解析器(resolver)将检查路径是否指向文件或目录。如果路径指向一个文件:
158 |
159 | - 如果路径具有文件扩展名,则直接将文件打包。
160 | 否则,将使用[ `resolve.extensions` ]选项作为文件扩展名来解析,此选项告诉解析器在解析中能够接受哪些扩展名(例如 `.js` , `.jsx `) 。
161 |
162 | 如果路径指向一个文件夹,则采取以下步骤找到具有正确扩展名的正确文件:
163 |
164 | - 如果文件夹中包含 `package.json` 文件,则按照顺序查找 `resolve.mainFields` 配置选项中指定的字段,并且 `package.json` 中的第一个这样的字段确定文件路径。
165 | - 如果 `package.json` 文件不存在或者 `package.json` 文件中的main字段没有返回一个有效路径,则按照顺序查找 `resolve.mainFiles` 配置选项中指定的文件名,看是否能在 import/require 目录下匹配到一个存在的文件名。
166 | - 文件扩展名通过 `resolve.extensions` 选项采用类似的方法进行解析。
167 |
168 | webpack根据构建目标为这些选项提供了合理的默认配置。
169 |
170 | ### 解析Loader(Resolving Loaders)
171 |
172 | Loader解析遵循与文件解析器指定的规则相同的队则。但是 `resolveLoader` 配置选项可以用来为Loader提供独立的解析规则。
173 |
174 | ### 缓存
175 |
176 | 每个文件系统访问都被缓存,以便更快触发对同一文件的多个并行或串行请求。在观察模式下,只有修改过的文件会从缓存中摘出。如果关闭观察模式,在每次编译前清理缓存。
177 |
178 | **更多详细地模块解析内容,请参考之后配置章节的解析(resolve)部分。**
179 |
180 | ## 依赖图(dependency graph)
181 |
182 | 任何时候,一个文件依赖于另一个文件,webpack就把此视为文件之间有依赖关系。这使得webpack可以接收非代码资源(例如图像或web字体),并且可以把它们作为依赖提供给应用程序。
183 |
184 | webpack从命令行或配置文件中定义的一个模块列表开始,处理应用程序。从这个入口起点开始,webpack递归地构建一个依赖图,这个依赖图包含着应用程序所需的每个模块,然后将所有这些模块打包为少量的bundle - 通常只有一个 - 可由浏览器加载
185 |
186 | *对于HTTP/1.1客户端,由webpack打包应用程序会尤其强大,因为在浏览器发起一个新请求时,它能够减少应用程序必须等待的实践。对于HTTP/2,可以使用代码拆分以及通过webpack打包来实现最佳优化*
187 |
188 |
189 | **如何生成依赖关系**
190 |
191 | 通过 webpack 编译源文件时,用户可以生成包含有关于模块的统计数据的 JSON 文件。这些统计数据不仅可以帮助开发者来分析应用的依赖图表,还可以优化编译的速度。这个 JSON 文件可以通过以下的命令来生成:
192 |
193 | ```
194 | webpack --profile --json > compilation-stats.json
195 | ```
196 |
197 | 这个标识是告诉 webpack compilation-stats.json 要包含依赖的图表以及各种其他的编译信息。一般来说,也会把 --profile 一起加入,这样每一个包含自身编译数据的模块对象(modules object) 都会添加 profile 。
198 |
199 | 为了能直观地观察依赖关系,可以访问[可视化依赖关系分析](http://webpack.github.io/analyse/)
200 |
201 | **详细地Stats Data内容,可以参看API模块的Stats Data部分**concepts-part1
202 |
--------------------------------------------------------------------------------
/Webpack/Concepts/concepts-part3.md:
--------------------------------------------------------------------------------
1 | by pengxiaojia 2018.07
2 |
3 | ### 目录:
4 |
5 | * The Manifest
6 | * Runtime
7 | * Manifest
8 | * Target
9 | * 用法
10 | * 多个Target
11 | * 资源
12 | * Hot module replacement
13 | * 应用程序中
14 | * 编译器中
15 | * 模块中
16 | * HMR Runtime中
17 |
18 | ##The Manifest
19 | **使用webpack构建的典型应用程序或站点,会有三种主要的代码类型**
20 |
21 | 1. 你或你的团队编写的源码。
22 | 2. 你的源码会依赖的任何第三方的 library 或 "vendor" 代码。
23 | 3. webpack 的 runtime 和 manifest,管理所有模块的交互。
24 |
25 | 这里重点介绍着三部分中的最后部分,**runtime**和**manifest**
26 |
27 | ###Runtime
28 | 这里我们只是简单的介绍一下. runtime连同manifest数据,主要是指:在浏览器运行时,webpack 用来连接模块化的应用程序的所有代码。runtime 包含:在模块交互时,连接模块所需的加载和解析逻辑。包括浏览器中的已加载模块的连接,以及懒加载模块的执行逻辑。
29 |
30 | ###Manifest
31 | 那么,一旦你的应用程序中,形如 index.html 文件、一些 bundle 和各种资源加载到浏览器中,会发生什么?你精心安排的 /src 目录的文件结构现在已经不存在,所以 webpack 如何管理所有模块之间的交互呢?这就是 manifest 数据用途的由来……
32 |
33 | 当编译器(compiler)开始执行、解析和映射应用程序时,它会保留所有模块的详细要点。这个数据集合称为 "Manifest",当完成打包并发送到浏览器时,会在运行时通过 Manifest 来解析和加载模块。无论你选择哪种模块语法(ES6,commonJS,AMD),那些 import 或 require 语句现在都已经转换为 \__webpack _ require__ 方法,此方法指向模块标识符(module identifier)。通过使用 manifest 中的数据,runtime 将能够查询模块标识符,检索出背后对应的模块。
34 |
35 | ###问题
36 | 所以,现在你应该对 webpack 在幕后工作有一点了解。“但是,这对我有什么影响呢?”,你可能会问。答案是大多数情况下没有。runtime 做自己该做的,使用 manifest 来执行其操作,然后,一旦你的应用程序加载到浏览器中,所有内容将展现出魔幻般运行。然而,如果你决定通过使用浏览器缓存来改善项目的性能,理解这一过程将突然变得尤为重要。
37 |
38 | 通过使用 bundle 计算出内容散列(content hash)作为文件名称,这样在内容或文件修改时,浏览器中将通过新的内容散列指向新的文件,从而使缓存无效。一旦你开始这样做,你会立即注意到一些有趣的行为。即使表面上某些内容没有修改,计算出的哈希还是会改变。这是因为,runtime 和 manifest 的注入在每次构建都会发生变化。
39 |
40 | 查看管理构建文件指南的 [manifest](https://www.webpackjs.com/guides/output-management#the-manifest) 部分,了解如何提取 manifest,并阅读下面的指南,以了解更多长效缓存错综复杂之处。
41 | ###进一步阅读
42 |
43 | - [分离 Manifest](https://survivejs.com/webpack/optimizing/separating-manifest/)
44 | - [使用 webpack 提供可预测的长效缓存](https://medium.com/webpack/predictable-long-term-caching-with-webpack-d3eee1d3fa31)
45 | - [缓存](https://www.webpackjs.com/guides/caching)
46 |
47 | ##Target
48 | **因为服务器和浏览器代码都可以用 JavaScript 编写,所以 webpack 提供了多种构建目标(target),你可以在你的 webpack 配置中设置。**
49 |
50 | ###用法
51 | 设置 target 属性,只需要在你的 webpack 配置中设置 target 的值。
52 |
53 | **webpack.config.js**
54 |
55 | ```
56 | module.exports = {
57 | target: 'node'
58 | };
59 | ```
60 | 在上面例子中,使用 node webpack 会编译为用于「类 Node.js」环境(使用 Node.js 的 require ,而不是使用任意内置模块(如 fs 或 path)来加载 chunk)。
61 | 每个target都有各种部署(deployment)/环境(environment)特定的附加项,以支持满足其需求。查看[target 的可用值](https://www.webpackjs.com/configuration/target)。
62 |
63 | ###多个Target
64 | 尽管 webpack 不支持向 target 传入多个字符串,你可以通过打包两份分离的配置来创建同构的库:
65 |
66 | **webpack.config.js**
67 |
68 | ```
69 | var path = require('path');
70 | var serverConfig = {
71 | target: 'node',
72 | output: {
73 | path: path.resolve(__dirname, 'dist'),
74 | filename: 'lib.node.js'
75 | }
76 | //…
77 | };
78 |
79 | var clientConfig = {
80 | target: 'web', // <=== 默认是 'web',可省略
81 | output: {
82 | path: path.resolve(__dirname, 'dist'),
83 | filename: 'lib.js'
84 | }
85 | //…
86 | };
87 |
88 | module.exports = [ serverConfig, clientConfig ];
89 | ```
90 | 上面的例子将在你的 dist 文件夹下创建 lib.js 和 lib.node.js 文件。
91 | ###资源
92 | 从上面的选项可以看出有多个不同的部署_目标_可供选择。下面是一个示例列表,以及你可以参考的资源。
93 |
94 | [compare-webpack-target-bundles](https://github.com/TheLarkInn/compare-webpack-target-bundles):有关「测试和查看」不同的 webpack target 的大量资源。也有大量 bug 报告。
95 |
96 | [Boilerplate of Electron-React Application](https://github.com/chentsulin/electron-react-boilerplate):一个 electron 主进程和渲染进程构建过程的很好的例子。
97 |
98 | ##Hot module replacement
99 |
100 | **模块热替换(HMR - Hot Module Replacement)功能会在应用程序运行过程中替换、添加或删除模块,而无需重新加载整个页面。**主要是通过以下几种方式,来显著加快开发速度:
101 |
102 | - 保留在完全重新加载页面时丢失的应用程序状态。
103 | - 只更新变更内容,以节省宝贵的开发时间。
104 | - 调整样式更加快速 - 几乎相当于在浏览器调试器中更改样式。
105 |
106 | ###这一切是如何运行的
107 | 让我们从一些不同的角度观察,以了解 HMR 的工作原理.
108 |
109 | ####在应用程序中
110 | 通过以下步骤,可以做到在应用程序中置换(swap in and out)模块:
111 |
112 | 1. 应用程序代码要求 HMR runtime 检查更新。
113 | 2. HMR runtime(异步)下载更新,然后通知应用程序代码。
114 | 3. 应用程序代码要求 HMR runtime 应用更新。
115 | 4. HMR runtime(异步)应用更新。
116 |
117 | 你可以设置 HMR,以使此进程自动触发更新,或者你可以选择要求在用户交互时进行更新。
118 |
119 | ####在编译器中
120 | 除了普通资源,编译器(compiler)需要发出 "update",以允许更新之前的版本到新的版本。"update" 由两部分组成:
121 |
122 | 1. 更新后的 [manifest](https://www.webpackjs.com/concepts/manifest)(JSON)
123 | 2. 一个或多个更新后的 chunk (JavaScript)
124 |
125 | manifest 包括新的编译 hash 和所有的待更新 chunk 目录。每个更新 chunk 都含有对应于此 chunk 的全部更新模块(或一个 flag 用于表明此模块要被移除)的代码。
126 |
127 | 编译器确保模块 ID 和 chunk ID 在这些构建之间保持一致。通常将这些 ID 存储在内存中(例如,使用 [webpack-dev-server](https://www.webpackjs.com/configuration/dev-server/) 时),但是也可能将它们存储在一个 JSON 文件中。
128 |
129 | ####在模块中
130 | HMR 是可选功能,只会影响包含 HMR 代码的模块。举个例子,通过 style-loader 为 style 样式追加补丁。 为了运行追加补丁,style-loader 实现了 HMR 接口;当它通过 HMR 接收到更新,它会使用新的样式替换旧的样式。
131 |
132 | 类似的,当在一个模块中实现了 HMR 接口,你可以描述出当模块被更新后发生了什么。然而在多数情况下,不需要强制在每个模块中写入 HMR 代码。如果一个模块没有 HMR 处理函数,更新就会冒泡。这意味着一个简单的处理函数能够对整个模块树(complete module tree)进行更新。如果在这个模块树中,一个单独的模块被更新,那么整组依赖模块都会被重新加载。
133 |
134 | 有关 module.hot 接口的详细信息,请查看 [HMR API](https://www.webpackjs.com/api/hot-module-replacement) 页面。
135 |
136 | ####在HMR Runtime中
137 | 这些事情比较有技术性……如果你对其内部不感兴趣,可以随时跳到 [HMR API](https://www.webpackjs.com/api/hot-module-replacement) 页面或 [HMR 指南](https://www.webpackjs.com/guides/hot-module-replacement)。
138 |
139 | 对于模块系统的 runtime,附加的代码被发送到 parents 和 children 跟踪模块。在管理方面,runtime 支持两个方法 check 和 apply。
140 |
141 | check 发送 HTTP 请求来更新 manifest。如果请求失败,说明没有可用更新。如果请求成功,待更新 chunk 会和当前加载过的 chunk 进行比较。对每个加载过的 chunk,会下载相对应的待更新 chunk。当所有待更新 chunk 完成下载,就会准备切换到 ready 状态。
142 |
143 | apply 方法将所有被更新模块标记为无效。对于每个无效模块,都需要在模块中有一个更新处理函数,或者在它的父级模块们中有更新处理函数。否则,无效标记冒泡,并也使父级无效。每个冒泡继续直到到达应用程序入口起点,或者到达带有更新处理函数的模块(以最先到达为准)。如果它从入口起点开始冒泡,则此过程失败。
144 |
145 | 之后,所有无效模块都被(通过 dispose 处理函数)处理和解除加载。然后更新当前 hash,并且调用所有 "accept" 处理函数。runtime 切换回闲置状态,一切照常继续。
146 |
147 | ###入门
148 | 在开发过程中,可以将 HMR 作为 LiveReload 的替代。[webpack-dev-server](https://www.webpackjs.com/configuration/dev-server/) 支持 hot 模式,在试图重新加载整个页面之前,热模式会尝试使用 HMR 来更新。更多细节请查看[模块热更新指南](https://www.webpackjs.com/guides/hot-module-replacement)。
149 |
150 | 与许多其他功能一样,webpack 的强大之处在于它的可定制化。取决于特定项目需求,会有许多种配置 HMR 的方式。然而,对于多数实现来说,webpack-dev-server 能够配合良好,可以让你快速入门 HMR。
151 |
152 |
--------------------------------------------------------------------------------
/Webpack/Configuration/README.md:
--------------------------------------------------------------------------------
1 | # Webpack: configuration
2 |
--------------------------------------------------------------------------------
/Webpack/Loaders/README.md:
--------------------------------------------------------------------------------
1 | # Webpack: loaders
--------------------------------------------------------------------------------
/Webpack/Loaders/loaders-part4.md:
--------------------------------------------------------------------------------
1 | by wangpan 2018.11
2 |
3 | * postcss-loader
4 | * raw-loader
5 | * react-proxy-loader
6 | * restyle-loader
7 | * sass-loader
8 | * script-loader
9 | * source-map-loader
10 | * style-loader
11 |
12 | ### postcss-loader
13 |
14 | install
15 | >npm i -D postcss-loader
16 |
17 | postcss.config.js
18 |
19 | ```
20 | module.exports = {
21 | plugins: {
22 | 'postcss-cssnext': {}
23 | }
24 | }
25 | ```
26 |
27 | webpack.config.js
28 |
29 | ```
30 | module.exports = {
31 | module: {
32 | rules: [
33 | {
34 | test: /.\css/
35 | use: [
36 | 'style-loader',
37 | { loader: 'css-loader', options: { importLoaders: 1 } },
38 | 'postcss-loader'
39 | ]
40 | }
41 | ]
42 | }
43 | }
44 | ```
45 | 常用插件列表
46 |
47 | 1. autoprefixer: 方便写出规范兼容的css,它的来源主要是can i use,插件的配置参数是browsers
48 | ```
49 | module.exports = {
50 | plugins: [
51 | require('autoprefixer')({ browsers: 'last 2 versions' })
52 | ]
53 | }
54 | ```
55 | 2. postcss-partial-import: 让css文件支持@import
56 | 3. cssnano : css代码的压缩工具
57 | 4. postcss-px2rem: 移动端适配使用的将px转换为rem的插件
58 |
59 | 推荐阅读:《深入Postcss Web设计》
60 |
61 |
62 | #### raw-loader
63 |
64 | 把文件内容作为字符串返回。
65 |
66 | install
67 | >npm install -D raw-loader
68 |
69 |
70 | webpack.config
71 |
72 | ```
73 | module.exports = {
74 | module: {
75 | rules: [
76 | test: /.\txt$/,
77 | use: 'raw-loader'
78 | ]
79 | }
80 | }
81 | ```
82 |
83 | usage:
84 |
85 | ```
86 | import txt from 'file.txt'
87 | ```
88 |
89 |
90 | #### restyle-loader
91 |
92 | 通过hash值来触发样式重载
93 |
94 | install
95 | > npm install --save-dev restyle-loader
96 |
97 |
98 | webpack.config
99 |
100 | ```
101 | module.exports = {
102 | {
103 | test: /\.css?$/,
104 | use: [
105 | {
106 | loader: "restyle-loader"
107 | },
108 | {
109 | loader: "file-loader",
110 | options: {
111 | name: "[name].css?[hash:8]"
112 | }
113 | }
114 | ]
115 | }
116 | }
117 | ```
118 |
119 | #### sass-loader
120 | 对sass/scss css预编译语言进行编译
121 | install
122 | >npm install --save-dev node-sass sass-loader
123 |
124 |
125 | webpack.config
126 |
127 | ```
128 | module.exports = {
129 | module: {
130 | rules: [{
131 | test: /\.scss$/,
132 | use: [{
133 | loader: "style-loader" // 将 JS 字符串生成为 style 节点
134 | }, {
135 | loader: "css-loader" // 将 CSS 转化成 CommonJS 模块
136 | }, {
137 | loader: "sass-loader" // 将 Sass 编译成 CSS
138 | }]
139 | }]
140 | }
141 | };
142 | ```
143 |
144 | Source maps
145 |
146 | 要启用 CSS source map,需要将 sourceMap 选项作为参数,传递给 sass-loader 和 css-loader
147 |
148 | webpack.config
149 |
150 | ```
151 | module.exports = {
152 | devtool: "source-map", // any "source-map"-like devtool is possible
153 | module: {
154 | rules: [{
155 | test: /\.scss$/,
156 | use: [{
157 | loader: "style-loader"
158 | }, {
159 | loader: "css-loader", options: {
160 | sourceMap: true
161 | }
162 | }, {
163 | loader: "sass-loader", options: {
164 | sourceMap: true
165 | }
166 | }]
167 | }]
168 | }
169 | };
170 | ```
171 |
172 |
173 | #### script-loader
174 | 在全局上下文(global context)执行一次 JS 脚本。在 node.js 中不会运行
175 |
176 | install
177 | >npm install --save-dev script-loader
178 |
179 | webpack.config.js
180 |
181 | ```
182 | module.exports = {
183 | module: {
184 | rules: [
185 | {
186 | test: /\.exec\.js$/,
187 | use: [ 'script-loader' ]
188 | }
189 | ]
190 | }
191 | }
192 | ```
193 |
194 | #### demo-source-map
195 | 对打包压缩过的文件进行源码映射,前提是该js文件有正确引用
196 |
197 | install
198 | >npm i -D source-map-loader
199 |
200 |
201 | ```
202 | module.exports = {
203 | module: {
204 | rules: [
205 | {
206 | test: /\.js$/,
207 | use: ["source-map-loader"],
208 | enforce: "pre"
209 | }
210 | ]
211 | }
212 | };
213 | ```
214 |
215 | #### style-loader
216 |
217 | Adds CSS to the DOM by injecting a