定义表格
定义表格标题。
定义表格中的表头单元格。
定义表格中的行。
定义表格中的单元。
定义表格中的表头内容。
定义表格中的主体内容。
定义表格中的表注内容(脚注)。
定义表格中一个或多个列的属性值。
定义表格中供格式化的列组。
样式/节
标签
描述
定义文档的样式信息。
定义文档中的节。
定义文档中的节。
定义 section 或 page 的页眉。
定义 section 或 page 的页脚。
定义 section。
定义文章。
定义页面内容之外的内容。
定义元素的细节。
定义对话框或窗口。
为 元素定义可见的标题。
元信息
标签
描述
定义关于文档的信息。
定义关于 HTML 文档的元信息。
定义页面中所有链接的默认地址或默认目标。
不赞成使用。定义页面中文本的默认字体、颜色或尺寸。
编程
标签
描述
定义客户端脚本。
定义针对不支持客户端脚本的用户的替代内容。
不赞成使用。定义嵌入的 applet。
为外部应用程序(非 HTML)定义容器。
定义嵌入的对象。
定义对象的参数。
八、HTML 5 标准属性
HTML 标签拥有属性。您可以在每个标签的参考页中找到相应的特殊属性。这里列出的属性是通用于每个标签的核心属性和语言属性(有个别例外)。
属性
值
描述
4
5
acceskey
a character
设置访问一个元素的键盘快捷键。不支持。
4
class
class_rule orstyle_rule
元素的类名。
4
5
contenteditable
true false
设置是否允许用户编辑元素。
5
contentextmenu
id of a menu element
给元素设置一个上下文菜单。
5
dir
ltr rtl
设置文本方向。
4
5
draggable
true false auto
设置是否允许用户拖动元素。
5
id
id_name
元素的唯一 id。
4
5
irrelevant
true false
设置元素是否相关。不显示非相关的元素。
5
lang
language_code
设置语言码。
4
5
ref
url or elementID
引用另一个文档或本文档上另一个位置。仅在 template 属性设置时使用。
5
registrationmark
registration mark
为元素设置拍照。可规定于任何 元素的后代元素,除了 元素。
5
style
style_definition
行内的样式定义。
4
5
tabindex
number
设置元素的 tab 顺序。
4
5
template
url or elementID
引用应该应用到该元素的另一个文档或本文档上另一个位置。
5
title
tooltip_text
显示在工具提示中的文本。
4
5
九、HTML 5 事件属性
HTML 元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击一个 HTML 元素时启动一段 JavaScript。下面列出的事件属性,可以把它们插入 HTML 标签来定义事件行为。
Window 事件属性
针对 window 对象触发的事件(应用到
标签):
属性
值
描述
onafterprint
script
文档打印之后运行的脚本。
onbeforeprint
script
文档打印之前运行的脚本。
onbeforeunload
script
文档卸载之前运行的脚本。
onerror
script
在错误发生时运行的脚本。
onhaschange
script
当文档已改变时运行的脚本。
onload
script
页面结束加载之后触发。
onmessage
script
在消息被触发时运行的脚本。
onoffline
script
当文档离线时运行的脚本。
ononline
script
当文档上线时运行的脚本。
onpagehide
script
当窗口隐藏时运行的脚本。
onpageshow
script
当窗口成为可见时运行的脚本。
onpopstate
script
当窗口历史记录改变时运行的脚本。
onredo
script
当文档执行撤销(redo)时运行的脚本。
onresize
script
当浏览器窗口被调整大小时触发。
onstorage
script
在 Web Storage 区域更新后运行的脚本。
onundo
script
在文档执行 undo 时运行的脚本。
onunload
script
一旦页面已下载时触发(或者浏览器窗口已被关闭)。
Form 事件
由 HTML 表单内的动作触发的事件(应用到几乎所有 HTML 元素,但最常用在 form 元素中):
属性
值
描述
onblur
script
元素失去焦点时运行的脚本。
onchange
script
在元素值被改变时运行的脚本。
oncontextmenu
script
当上下文菜单被触发时运行的脚本。
onfocus
script
当元素获得焦点时运行的脚本。
onformchange
script
在表单改变时运行的脚本。
onforminput
script
当表单获得用户输入时运行的脚本。
oninput
script
当元素获得用户输入时运行的脚本。
oninvalid
script
当元素无效时运行的脚本。
onreset
script
当表单中的重置按钮被点击时触发。HTML5 中不支持。
onselect
script
在元素中文本被选中后触发。
onsubmit
script
在提交表单时触发。
Keyboard 事件
属性
值
描述
onkeydown
script
在用户按下按键时触发。
onkeypress
script
在用户敲击按钮时触发。
onkeyup
script
当用户释放按键时触发。
Mouse 事件
由鼠标或类似用户动作触发的事件:
属性
值
描述
onclick
script
元素上发生鼠标点击时触发。
ondblclick
script
元素上发生鼠标双击时触发。
ondrag
script
元素被拖动时运行的脚本。
ondragend
script
在拖动操作末端运行的脚本。
ondragenter
script
当元素元素已被拖动到有效拖放区域时运行的脚本。
ondragleave
script
当元素离开有效拖放目标时运行的脚本。
ondragover
script
当元素在有效拖放目标上正在被拖动时运行的脚本。
ondragstart
script
在拖动操作开端运行的脚本。
ondrop
script
当被拖元素正在被拖放时运行的脚本。
onmousedown
script
当元素上按下鼠标按钮时触发。
onmousemove
script
当鼠标指针移动到元素上时触发。
onmouseout
script
当鼠标指针移出元素时触发。
onmouseover
script
当鼠标指针移动到元素上时触发。
onmouseup
script
当在元素上释放鼠标按钮时触发。
onmousewheel
script
当鼠标滚轮正在被滚动时运行的脚本。
onscroll
script
当元素滚动条被滚动时运行的脚本。
Media 事件
由媒介(比如视频、图像和音频)触发的事件(适用于所有 HTML 元素,但常见于媒介元素中,比如
、
、
、
以及
):
属性
值
描述
onabort
script
在退出时运行的脚本。
oncanplay
script
当文件就绪可以开始播放时运行的脚本(缓冲已足够开始时)。
oncanplaythrough
script
当媒介能够无需因缓冲而停止即可播放至结尾时运行的脚本。
ondurationchange
script
当媒介长度改变时运行的脚本。
onemptied
script
当发生故障并且文件突然不可用时运行的脚本(比如连接意外断开时)。
onended
script
当媒介已到达结尾时运行的脚本(可发送类似“感谢观看”之类的消息)。
onerror
script
当在文件加载期间发生错误时运行的脚本。
onloadeddata
script
当媒介数据已加载时运行的脚本。
onloadedmetadata
script
当元数据(比如分辨率和时长)被加载时运行的脚本。
onloadstart
script
在文件开始加载且未实际加载任何数据前运行的脚本。
onpause
script
当媒介被用户或程序暂停时运行的脚本。
onplay
script
当媒介已就绪可以开始播放时运行的脚本。
onplaying
script
当媒介已开始播放时运行的脚本。
onprogress
script
当浏览器正在获取媒介数据时运行的脚本。
onratechange
script
每当回放速率改变时运行的脚本(比如当用户切换到慢动作或快进模式)。
onreadystatechange
script
每当就绪状态改变时运行的脚本(就绪状态监测媒介数据的状态)。
onseeked
script
当 seeking 属性设置为 false(指示定位已结束)时运行的脚本。
onseeking
script
当 seeking 属性设置为 true(指示定位是活动的)时运行的脚本。
onstalled
script
在浏览器不论何种原因未能取回媒介数据时运行的脚本。
onsuspend
script
在媒介数据完全加载之前不论何种原因终止取回媒介数据时运行的脚本。
ontimeupdate
script
当播放位置改变时(比如当用户快进到媒介中一个不同的位置时)运行的脚本。
onvolumechange
script
每当音量改变时(包括将音量设置为静音)时运行的脚本。
onwaiting
script
当媒介已停止播放但打算继续播放时(比如当媒介暂停已缓冲更多数据)运行脚本
CSS
一、CSS技术介绍
CSS用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言
CSS3 被划分为模块。其中最重要的 CSS3 模块包括:
选择器
框模型
背景和边框
文本效果
2D/3D 转换
动画多
列布局
用户界面
二、CSS语法规则
p {
font-size : 80px;
}
浏览器根据选择器决定受CSS样式影响的HTML元素(标签)
属性是需要更改的样式名,每个属性都有一个值。属性和值使用冒号分开,并被大括号包围
如果要定义多个属性的声明,需要使用分号将每个声明分开;一般每行只描述一个属性
CSS注释:/ *注释的内容 */
值的不同写法和单位
p {
color : #ff0000; }
p {
color : #f00; }
p {
color : rgb ( 255,0,0) ; }
p {
color : rgb ( 100%,0%,0%) ; }
记得写引号,如果值为若干单词,则要给值加引号:p {font-family: "sans serif";}
空格和大小写,大多数样式表包含不止一条规则,而大多数规则包含不止一个声明。多重声明和空格的使用使得样式表更容易被编辑:
选择器的分组
你可以对选择器进行分组,这样,被分组的选择器就可以分享相同的声明。用逗号将需要分组的选择器分开。在下面的例子中,我们对所有的标题元素进行了分组。所有的标题元素都是绿色的。
h1,h2,h3,h4,h5,h6 {
color : green;
}
三、CSS和HTML结合的方式
1.在标签的style属性上设置"属性:值"
此种方式的缺点:
代码示例:使用style属性修改标签的样式
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title title>
head>
< body>
< div style =" border : 1px solid red" > div div>
body>
html>
2.在head标签中使用style标签来定义各种自己需要的CSS样式:
此种方式的缺点:只能在同一页面内复用代码,需要到每个页面修改样式,维护起来不方便
代码示例:在head标签中使用style标签定义CSS样式
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title title>
< style type = " text/css" >
div {
border : 1px solid red;
}
span {
border : 1px solid red;
}
style>
head>
< body>
< div> div div>
< span> span span>
body>
html>
3.把CSS样式写成一个单独的CSS文件,再通过link标签引入
创建CSS文件;
在HTML文件的head标签中使用:
代码示例:演示link标签的使用
div {
border : 1px solid red;
}
span {
border : 1px solid #433cfa;
}
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title title>
< link rel = " stylesheet" type = " text/css" href = " mycss.css" />
head>
< body>
< div> div div>
< span> span span>
body>
html>
4.内部样式表 > 外部样式表
四、CSS选择器
1.元素选择器
最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。
如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p、h1、em、a,甚至可以是 html 本身;
2.标签名选择器:
相当于HTML和CSS结合的方式二
3.选择器分组
假设希望 h2 元素和段落都有灰色。为达到这个目的,最容易的做法是使用以下声明:h2, p {color:gray;}
将 h2 和 p 选择器放在规则左边,然后用逗号分隔,就定义了一个规则。其右边的样式(color:gray;)将应用到这两个选择器所引用的元素。
逗号告诉浏览器,规则中包含两个不同的选择器。如果没有这个逗号,那么规则的含义将完全不同。参见后代选择器。
可以将任意多个选择器分组在一起,对此没有任何限制:.class01,#id01,body, h2, p, table, th, td, pre, strong, em {color:gray;}
1.通配符选择器
CSS2 引入了一种新的简单选择器 - 通配选择器(universal selector),显示为一个星号(*)。该选择器可以与任何元素匹配,就像是一个通配符。* {color:red;}
4.id选择器:
可以通过id属性选择性的使用某个样式(id是唯一的,每个id值在一个页面中只能使用一次),格式:
#id名称 {
属性:值;
}
代码示例:演示id选择器的使用
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title title>
< style type = " text/css" >
#id001 {
color : burlywood;
border : 1px solid red;
}
#id002 {
color : aqua;
border : 3px yellow;
}
style>
head>
< body>
< div id = " id001" > div1 div>
< div id = " id002" > div2 div>
body>
html>
一个选择器,多种用法
即使被标注为 sidebar 的元素只能在文档中出现一次,这个 id 选择器作为派生选择器也可以被使用很多次:
#sidebar p {
font-style : italic;
text-align : right;
margin-top : 0.5em;
}
#sidebar h2 {
font-size : 1em;
font-weight : normal;
font-style : italic;
margin : 0;
line-height : 1.5;
text-align : right;
}
区分大小写 类选择器和 ID 选择器可能是区分大小写的。这取决于文档的语言。HTML 和 XHTML 将类和 ID 值定义为区分大小写,所以类和 ID 值的大小写必须与文档中的相应值匹配。
5.class选择器(类选择器):
可以通过class属性选择性的使用某个样式(class值在一个页面中可以使用多次),格式:
.class名称{
属性:值;
}
代码示例:演示类选择器的使用
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title title>
< style type = " text/css" >
.class01 {
color : aqua;
font-size : 30px;
}
style>
head>
< body>
< div class = " class01" > div1 div>
< div class = " class01" > div2 div>
body>
html>
和 id 一样,class 也可被用作派生选择器:
.fancy td {
color : #f60;
background : #666;
}
元素也可以基于它们的类而被选择:
td.fancy {
color : #f60;
background : #666;
}
6.类选择器和ID选择器的区别
区别 1:只能在文档中使用一次 与类不同,在一个 HTML 文档中,ID 选择器会使用一次,而且仅一次。
区别 2:不能使用 ID 词列表 不同于类选择器,ID 选择器不能结合使用,因为 ID 属性不允许有以空格分隔的词列表。 区别 3:ID 能包含更多含义 类似于类,可以独立于元素来选择 ID。有些情况下,您知道文档中会出现某个特定 ID 值,但是并不知道它会出现在哪个元素上,所以您想声明独立的 ID 选择器。例如,您可能知道在一个给定的文档中会有一个 ID 值为 mostImportant 的元素。您不知道这个最重要的东西是一个段落、一个短语、一个列表项还是一个小节标题。您只知道每个文档都会有这么一个最重要的内容,它可能在任何元素中,而且只能出现一个。在这种情况下,可以编写如下规则:
#mostImportant {
color : red; background : yellow; }
这个规则会与以下各个元素匹配(这些元素不能在同一个文档中同时出现,因为它们都有相同的 ID 值):
"mostImportant">This is important!
"mostImportant">This is important!
"mostImportant">This is important!
7.属性选择器
选择器
描述
[attribute ]
用于选取带有指定属性的元素。
[attribute =value ]
用于选取带有指定属性和值的元素。
[attribute ~=value ]
用于选取属性值中包含指定词汇的元素。
[attribute |=value ]
用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute ^=value ]
匹配属性值以指定值开头的每个元素。
[attribute $=value ]
匹配属性值以指定值结尾的每个元素。
[attribute *=value ]
匹配属性值中包含指定值的每个元素。
如果希望选择有某个属性的元素,而不论属性值是什么,可以使用简单属性选择器。
如果您希望把包含标题(title)的所有元素变为红色,可以写作:*[title] {color:red;}
可以只对有 href 属性的锚(a 元素)应用样式:a[href] {color:red;}
为了将同时有 href 和 title 属性的 HTML 超链接的文本设置为红色,可以这样写:a[href][title] {color:red;}
可以对所有带有 alt 属性的图像应用样式,从而突出显示这些有效的图像:img[alt] {border: 5px solid red;}
除了选择拥有某些属性的元素,还可以进一步缩小选择范围,只选择有特定属性值的元素:a[href="http://www.w3school.com.cn/about_us.asp"] {color: red;}
与简单属性选择器类似,可以把多个属性-值选择器链接在一起来选择一个文档:a[href="http://www.w3school.com.cn/"][title="W3School"] {color: red;}
1.属性与属性值必须完全匹配
This paragraph is a very important warning.
如果写成 p[class="important"],那么这个规则不能匹配示例标记。
p[class="important warning"] {
color : red; } ✅
2.根据部分属性值选择
如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)。 假设您想选择 class 属性中包含 important 的元素,可以用下面这个选择器做到这一点:p[class~="important"] {color: red;}
3.部分值属性选择器与点号类名记法的区别
该选择器等价于我们在类选择器中讨论过的点号类名记法。也就是说,p.important 和 p[class=“important”] 应用到 HTML 文档时是等价的。
“~=” 属性选择器能用于任何属性,而不只是 class,可以使用一个基于 title 文档的部分属性选择器,只选择这些图片:img[title~="Figure"] {border: 1px solid gray;}
4.子串匹配属性选择器
类型
描述
[abc^=“def”]
选择 abc 属性值以 “def” 开头的所有元素
[abc$=“def”]
选择 abc 属性值以 “def” 结尾的所有元素
[abc*=“def”]
选择 abc 属性值中包含子串 “def” 的所有元素
如果希望对指向 W3School 的所有链接应用样式,不必为所有这些链接指定 class,再根据这个类编写样式,而只需编写以下规则:a[href*="w3school.com.cn"] {color: red;}
5.特定属性选择类型
*[lang|="en"] {
color : red; }
上面这个规则会选择 lang 属性等于 en 或以 en- 开头的所有元素。因此,以下示例标记中的前三个元素将被选中,而不会选择后两个元素:
"en">Hello!
"en-us">Greetings!
"en-au">G'day!
"fr">Bonjour!
"cy-en">Jrooana!
8.后代选择器
1.根据上下文选择元素
我们可以定义后代选择器来创建一些规则,使这些规则在某些文档结构中起作用,而在另外一些结构中不起作用。
举例来说,如果您希望只对 h1 元素中的 em 元素应用样式,可以这样写:h1 em {color:red;}
2.语法解释
h1 em 选择器可以解释为 “作为 h1 元素后代的任何 em 元素”。如果要从左向右读选择器,可以换成以下说法:“包含 em 的所有 h1 会把以下样式应用到该 em”。
3.具体应用
假设有一个文档,其中有一个边栏,还有一个主区。边栏的背景为蓝色,主区的背景为白色,这两个区都包含链接列表。不能把所有链接都设置为蓝色,因为这样一来边栏中的蓝色链接都无法看到。
解决方法是使用后代选择器。在这种情况下,可以为包含边栏的 div 指定值为 sidebar 的 class 属性,并把主区的 class 属性值设置为 maincontent。然后编写以下样式:
div.sidebar {
background : blue; }
div.maincontent {
background : white; }
div.sidebar a:link {
color : white; }
div.maincontent a:link {
color : blue; }
有关后代选择器有一个易被忽视的方面,即两个元素之间的层次间隔可以是无限的。
例如,如果写作 ul em,这个语法就会选择从 ul 元素继承的所有 em 元素,而不论 em 的嵌套层次多深。
9.子元素选择器
1.选择子元素
如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,请使用子元素选择器(Child selector)。
例如,如果您希望选择只作为 h1 元素子元素的 strong 元素,可以这样写:h1 > strong {color:red;}
2.语法解释
子结合符两边可以有空白符,这是可选的。因此,以下写法都没有问题:
h1 > strong
h1> strong
h1 >strong
h1>strong
3.结合后代选择器和子选择器
下面的选择器会选择作为 td 元素子元素的所有 p 元素,这个 td 元素本身从 table 元素继承,该 table 元素有一个包含 company 的 class 属性:table.company td > p
10.相邻兄弟选择器
1.选择相邻兄弟
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。
例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:h1 + p {margin-top:50px;}
2.语法解释
相邻兄弟选择器使用了加号(+),即相邻兄弟结合符(Adjacent sibling combinator)。
**注释:**与子结合符一样,相邻兄弟结合符旁边可以有空白符。
3.结合其他选择器
相邻兄弟结合符还可以结合其他结合符:html > body table + ul {margin-top:20px;}
这个选择器解释为:选择紧接在 table 元素后出现的所有兄弟 ul 元素,该 table 元素包含在一个 body 元素中,body 元素本身是 html 元素的子元素。
五、CSS常用样式
1.CSS背景
属性
描述
background
简写属性,作用是将背景属性设置在一个声明中。
background-attachment
背景图像是否固定或者随着页面的其余部分滚动。
background-color
设置元素的背景颜色。
background-image
把图像设置为背景。
background-position
设置背景图像的起始位置。
background-repeat
设置背景图像是否及如何重复。
1.背景色:
可以使用 background-color 属性为元素设置背景色。这个属性接受任何合法的颜色值。
2.背景图像:
要把图像放入背景,需要使用 background-image 属性。background-image 属性的默认值是 none,表示背景上没有放置任何图像。
3.背景重复:
如果需要在页面上对背景图像进行平铺,可以使用 background-repeat 属性。
属性值 repeat 导致图像在水平垂直方向上都平铺,就像以往背景图像的通常做法一样。repeat-x 和 repeat-y 分别导致图像只在水平或垂直方向上重复,no-repeat 则不允许图像在任何方向上平铺。
4.背景定位:
可以利用 background-position 属性改变图像在背景中的位置。
关键字:
单一关键字
等价的关键字
center
center center
top
top center 或 center top
bottom
bottom center 或 center bottom
right
right center 或 center right
left
left center 或 center left
百分数值:百分数值的表现方式更为复杂。假设你希望用百分数值将图像在其元素中居中,这很容易:background-position:50% 50%;
(先水平后垂直)
长度值:长度值解释的是元素内边距区左上角的偏移。偏移点是图像的左上角。
如果设置值为 50px 100px,图像的左上角将在元素内边距区左上角向右 50 像素、向下 100 像素的位置上:background-position:50px 100px;
5.背景关联:
如果文档比较长,那么当文档向下滚动时,背景图像也会随之滚动。当文档滚动到超过图像的位置时,图像就会消失。
您可以通过 background-attachment 属性防止这种滚动。通过这个属性,可以声明图像相对于可视区是固定的(fixed),因此不会受到滚动的影响:background-attachment:fixed
background-attachment 属性的默认值是 scroll,也就是说,在默认的情况下,背景会随文档滚动。
p {
background-color : gray; padding : 20px; }
body {
background-image : url(/i/eg_bg_04.gif) ; }
a.radio {
background-image : url(/i/eg_bg_07.gif) ; }
body {
background-image : url(/i/eg_bg_03.gif) ;
background-repeat : repeat-y;
}
2.CSS文本
属性
描述
color
设置文本颜色
direction
设置文本方向。
line-height
设置行高。
letter-spacing
设置字符间距。
text-align
对齐元素中的文本。
text-decoration
向文本添加修饰。
text-indent
缩进元素中文本的首行。
text-shadow
设置文本阴影。CSS2 包含该属性,但是 CSS2.1 没有保留该属性。
text-transform
控制元素中的字母。
unicode-bidi
设置文本方向。
white-space
设置元素中空白的处理方式。
word-spacing
设置字间距。
1.缩近文本
CSS 提供了 text-indent 属性,该属性可以方便地实现文本缩进。这个属性最常见的用途是将段落的首行缩进,下面的规则会使所有段落的首行缩进 5 em:p {text-indent: 5em;}
使用负值:text-indent 还可以设置为负值。利用这种技术,可以实现很多有趣的效果,比如“悬挂缩进”,即第一行悬挂在元素中余下部分的左边,不过在为 text-indent 设置负值时要当心,如果对一个段落设置了负值,那么首行的某些文本可能会超出浏览器窗口的左边界。为了避免出现这种显示问题,建议针对负缩进再设置一个外边距或一些内边距:p {text-indent: -5em; padding-left: 5em;}
使用百分比值,text-indent 可以使用所有长度单位,包括百分比值。
继承,text-indent 属性可以继承,请考虑如下标记:
div#outer {
width : 500px; }
div#inner {
text-indent : 10%; }
p {
width : 200px; }
"outer">
"inner">some text. some text. some text.
this is a paragragh.
2.水平对齐
text-align 是一个基本的属性,它会影响一个元素中的文本行互相之间的对齐方式。值 left、right 和 center 会导致元素中的文本分别左对齐、右对齐和居中。
text-align:center
与
的区别:
不仅影响文本,还会把整个元素居中。text-align 不会控制元素的对齐,而只影响内部内容。元素本身不会从一段移到另一端,只是其中的文本受影响。
justify:在两端对齐文本中,文本行的左右两端都放在父元素的内边界上。然后,调整单词和字母间的间隔,使各行的长度恰好相等。您也许已经注意到了,两端对齐文本在打印领域很常见。
3.字间隔
word-spacing 属性可以改变字(单词)之间的标准间隔。其默认值 normal 与设置值为 0 是一样的。
word-spacing 属性接受一个正长度值或负长度值。如果提供一个正长度值,那么字之间的间隔就会增加。为 word-spacing 设置一个负值,会把它拉近:
p.spread {
word-spacing : 30px; }
p.tight {
word-spacing : -0.5em; }
"spread">
This is a paragraph. The spaces between words will be increased.
"tight">
This is a paragraph. The spaces between words will be decreased.
4.字母间隔
letter-spacing 属性与 word-spacing 的区别在于,字母间隔修改的是字符或字母之间的间隔。
与 word-spacing 属性一样,letter-spacing 属性的可取值包括所有长度。默认关键字是 normal(这与 letter-spacing:0 相同)。输入的长度值会使字母之间的间隔增加或减少指定的量:
5.字符转换
text-transform 属性处理文本的大小写。这个属性有 4 个值:
none:默认值,对文本不做任何改动
uppercase:将文本全转换为全大写字符
lowercase:将文本全转换为全小写字符
capitalize:只对每个单词的首字母大写。
6.文本装饰
text-decoration 有 5 个值:
none:none 值会关闭原本应用到一个元素上的所有装饰。
underline:对元素加下划线,就像 HTML 中的 U 元素一样
overline:在文本的顶端画一个上划线
line-through:在文本中间画一个贯穿线,等价于 HTML 中的 S 和 strike 元素
blink:会让文本闪烁,类似于 Netscape 支持的颇招非议的 blink 标记。
如果您希望去掉超链接的下划线,可以使用以下 CSS 来做到这一点:a {text-decoration: none;}
7.处理空白符
white-space 属性会影响到用户代理对源文档中的空格、换行和 tab 字符的处理。
值
空白符
换行符
自动换行
pre-line
合并
保留
允许
normal
合并
忽略
允许
nowrap
合并
忽略
不允许
pre
保留
保留
不允许
pre-wrap
保留
保留
允许
normal :通过使用该属性,可以影响浏览器处理字之间和文本行之间的空白符的方式。从某种程度上讲,默认的 XHTML 处理已经完成了空白符处理:它会把所有空白符合并为一个空格。所以给定以下标记,它在 Web 浏览器中显示时,各个字之间只会显示一个空格,同时忽略元素中的换行;
pre :受这个属性影响的元素中,空白符的处理就有所不同,其行为就像 XHTML 的 pre 元素一样;空白符不会被忽略。
如果 white-space 属性的值为 pre,浏览器将会注意额外的空格,甚至回车。在这个方面,而且仅在这个方面,任何元素都可以相当于一个 pre 元素。
nowrap :它会防止元素中的文本换行,除非使用了一个 br 元素。在 CSS 中使用 nowrap 非常类似于 HTML 4 中用 将一个表单元格设置为不能换行,不过 white-space 值可以应用到任何元素。
pre-wrap 和 pre-line :如果元素的 white-space 设置为 pre-wrap,那么该元素中的文本会保留空白符序列,但是文本行会正常地换行。如果设置为这个值,源文本中的行分隔符以及生成的行分隔符也会保留。pre-line 与 pre-wrap 相反,会像正常文本中一样合并空白符序列,但保留换行符。
This paragraph has many
spaces in it.
p {
white-space : normal; }
8.文本方向
direction 属性影响块级元素中文本的书写方向、表中列布局的方向、内容水平填充其元素框的方向、以及两端对齐元素中最后一行的位置。
direction 属性有两个值:ltr 和 rtl。大多数情况下,默认值是 ltr,显示从左到右的文本。如果显示从右到左的文本,应使用值 rtl。
**注释:**对于行内元素,只有当 unicode-bidi 属性设置为 embed 或 bidi-override 时才会应用 direction 属性。
3.CSS字体
属性
描述
font
简写属性。作用是把所有针对字体的属性设置在一个声明中。
font-family
设置字体系列。
font-size
设置字体的尺寸。
font-size-adjust
当首选字体不可用时,对替换字体进行智能缩放。(CSS2.1 已删除该属性。)
font-stretch
对字体进行水平拉伸。(CSS2.1 已删除该属性。)
font-style
设置字体风格。
font-variant
以小型大写字体或者正常字体显示文本。
font-weight
设置字体的粗细。
1.指定字体
使用 font-family 属性 定义文本的字体系列。
使用通用字体系列 如果你希望文档使用一种 sans-serif 字体,但是你并不关心是哪一种字体,以下就是一个合适的声明:body {font-family: sans-serif;}
指定字体系列 除了使用通用的字体系列,您还可以通过 font-family 属性设置更具体的字体。下面的例子为所有 h1 元素设置了 Georgia 字体:h1 {font-family: Georgia;}
这样的规则同时会产生另外一个问题,如果用户代理上没有安装 Georgia 字体,就只能使用用户代理的默认字体来显示 h1 元素。我们可以通过结合特定字体名和通用字体系列来解决这个问题:h1 {font-family: Georgia, serif;}
使用引号 您也许已经注意到了,上面的例子中使用了单引号。只有当字体名中有一个或多个空格(比如 New York),或者如果字体名包括 # 或 $ 之类的符号,才需要在 font-family 声明中加引号。
2.字体风格
font-style 属性最常用于规定斜体文本。该属性有三个值:
normal - 文本正常显示
italic - 文本斜体显示
oblique - 文本倾斜显示
italic 和 oblique 的区别
font-style 非常简单:用于在 normal 文本、italic 文本和 oblique 文本之间选择。唯一有点复杂的是明确 italic 文本和 oblique 文本之间的差别。
斜体(italic)是一种简单的字体风格,对每个字母的结构有一些小改动,来反映变化的外观。与此不同,倾斜(oblique)文本则是正常竖直文本的一个倾斜版本。
通常情况下,italic 和 oblique 文本在 web 浏览器中看上去完全一样。
3.字体变形
4.字体加粗
font-weight 属性设置文本的粗细。使用 bold 关键字可以将文本设置为粗体。
关键字 100 ~ 900 为字体指定了 9 级加粗度。如果一个字体内置了这些加粗级别,那么这些数字就直接映射到预定义的级别,100 对应最细的字体变形,900 对应最粗的字体变形。数字 400 等价于 normal,而 700 等价于 bold。
如果将元素的加粗设置为 bolder,浏览器会设置比所继承值更粗的一个字体加粗。与此相反,关键词 lighter 会导致浏览器将加粗度下移而不是上移。
5.字体相关
font-size 属性设置文本的大小。
请始终使用正确的 HTML 标题,比如使用 -
来标记标题,使用
来标记段落。
font-size 值可以是绝对或相对值。
绝对值:
将文本设置为指定的大小
不允许用户在所有浏览器中改变文本大小(不利于可用性)
绝对大小在确定了输出的物理尺寸时很有用
相对大小:
相对于周围的元素来设置大小
允许用户在浏览器改变文本大小
**注意:**如果您没有规定字体大小,普通文本(比如段落)的默认大小是 16 像素 (16px=1em)。
结合使用百分比和 EM 在所有浏览器中均有效的方案是为 body 元素(父元素)以百分比设置默认的 font-size 值
4.CSS列表
属性
描述
list-style
简写属性。用于把所有用于列表的属性设置于一个声明中。
list-style-image
将图象设置为列表项标志。
list-style-position
设置列表中列表项标志的位置。
list-style-type
设置列表项标志的类型。
marker-offset
1.列表类型
把无序列表中的列表项标志设置为方块:ul {list-style-type : square}
很多但不常用,详见:https://www.w3school.com.cn/cssref/pr_list-style-type.asp
2.列表项图像
常规的标志是不够的。你可能想对各标志使用一个图像,这可以利用 list-style-image 属性做到,只需要简单地使用一个 url() 值,就可以使用图像作为标志:ul li {list-style-image : url(xxx.gif)}
3.列表标志位置
CSS2.1 可以确定标志出现在列表项内容之外还是内容内部。
4.简写列表样式
为简单起见,可以将以上 3 个列表样式属性合并为一个方便的属性:list-style,就像这样:
li {
list-style : url(example.gif) square inside}
六、CSS框模型
1.框模型概述
术语翻译
element : 元素。
padding : 内边距,也有资料将其翻译为填充。
border : 边框。
margin : 外边距,也有资料将其翻译为空白或空白边。
内边距、边框和外边距都是可选的,默认值是零。但是,许多元素将由用户代理样式表设置外边距和内边距。可以通过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式。这可以分别进行,也可以使用通用选择器对所有元素进行设置:
* {
margin : 0;
padding : 0;
}
在 CSS 中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。
假设框的每个边上有 10 个像素的外边距和 5 个像素的内边距。如果希望这个元素框达到 100 个像素,就需要将内容的宽度设置为 70 像素,请看下图:
#box {
width : 70px;
margin : 10px;
padding : 5px;
}
**提示:**内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。
**提示:**外边距可以是负值,而且在很多情况下都要使用负值的外边距。
2.内边距padding
属性
描述
padding
简写属性。作用是在一个声明中设置元素的所内边距属性。
padding-bottom
设置元素的下内边距。
padding-left
设置元素的左内边距。
padding-right
设置元素的右内边距。
padding-top
设置元素的上内边距。
1.padding属性
padding 属性定义元素的内边距。padding 属性接受长度值或百分比值,但不允许使用负值。
您还可以按照上、右、下、左的顺序分别设置各边的内边距,各边均可以使用不同的单位或百分比值:h1 {padding: 10px 0.25em 2ex 20%;}
2.单边内边距属性
也通过使用下面四个单独的属性,分别设置上、右、下、左内边距:
padding-top
padding-right
padding-bottom
padding-left
3.内边距的百分比数值
百分数值是相对于其父元素的 width 计算的,这一点与外边距一样。所以,如果父元素的 width 改变,它们也会改变。
**注意:**上下内边距与左右内边距一致;即上下内边距的百分数会相对于父元素宽度设置,而不是相对于高度。
3.CSS边框border
属性
描述
border
简写属性,用于把针对四个边的属性设置在一个声明。
border-style
用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
border-width
简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。
border-color
简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。
border-bottom
简写属性,用于把下边框的所有属性设置到一个声明中。
border-bottom-color
设置元素的下边框的颜色。
border-bottom-style
设置元素的下边框的样式。
border-bottom-width
设置元素的下边框的宽度。
border-left
简写属性,用于把左边框的所有属性设置到一个声明中。
border-left-color
设置元素的左边框的颜色。
border-left-style
设置元素的左边框的样式。
border-left-width
设置元素的左边框的宽度。
border-right
简写属性,用于把右边框的所有属性设置到一个声明中。
border-right-color
设置元素的右边框的颜色。
border-right-style
设置元素的右边框的样式。
border-right-width
设置元素的右边框的宽度。
border-top
简写属性,用于把上边框的所有属性设置到一个声明中。
border-top-color
设置元素的上边框的颜色。
border-top-style
设置元素的上边框的样式。
border-top-width
设置元素的上边框的宽度。
1.边框与背景
CSS 规范指出,边框绘制在“元素的背景之上”。这很重要,因为有些边框是“间断的”(例如,点线边框或虚线框),元素的背景应当出现在边框的可见部分之间。
2.边框的样式
样式是边框最重要的一个方面,这不是因为样式控制着边框的显示(当然,样式确实控制着边框的显示),而是因为如果没有样式,将根本没有边框。CSS 的 border-style 属性定义了 10 个不同的非 inherit 样式,包括 none。
定义多种样式
您可以为一个边框定义多个样式,例如:
p.aside {
border-style : solid dotted dashed double; }
定义单边样式:如果您希望为元素框的某一个边设置边框样式,而不是设置所有 4 个边的边框样式,可以使用下面的单边边框样式属性:
border-top-style
border-right-style
border-bottom-style
border-left-style
p {
border-style : solid solid solid none; }
p {
border-style : solid; border-left-style : none; }
3.边框的宽度
您可以通过 border-width 属性为边框指定宽度。
为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em;或者使用 3 个关键字之一,它们分别是 thin 、medium(默认值) 和 thick。
注释:CSS 没有定义 3 个关键字的具体宽度,所以一个用户代理可能把 thin 、medium 和 thick 分别设置为等于 5px、3px 和 2px,而另一个用户代理则分别设置为 3px、2px 和 1px。
定义单边宽度:类比定义单边样式
border-top-width
border-right-width
border-bottom-width
border-left-width
没有边框:由于 border-style 的默认值是 none,如果没有声明样式,就相当于 border-style: none。因此,如果您希望边框出现,就必须声明一个边框样式。
4.边框的颜色
设置边框颜色非常简单。CSS 使用一个简单的 border-color 属性,它一次可以接受最多 4 个颜色值。
可以使用任何类型的颜色值,例如可以是命名颜色,也可以是十六进制和 RGB 值:
p {
border-style : solid;
border-color : blue rgb ( 25%,35%,45%) #909090 red;
}
**注释:**默认的边框颜色是元素本身的前景色。如果没有为边框声明颜色,它将与元素的文本颜色相同。另一方面,如果元素没有任何文本,假设它是一个表格,其中只包含图像,那么该表的边框颜色就是其父元素的文本颜色(因为 color 可以继承)。这个父元素很可能是 body、div 或另一个 table。
定义单边颜色:类比定义单边样式
border-top-color
border-right-color
border-bottom-color
border-left-color
透明边框:如果边框没有样式,就没有宽度。不过有些情况下您可能希望创建一个不可见的边框。CSS2 引入了边框颜色值 transparent。这个值用于创建有宽度的不可见边框。请看下面的例子:
a:link, a:visited {
border-style : solid;
border-width : 5px;
border-color : transparent;
}
a:hover {
border-color : gray; }
4.外边距margin
属性
描述
margin
简写属性。在一个声明中设置所有外边距属性。
margin-bottom
设置元素的下外边距。
margin-left
设置元素的左外边距。
margin-right
设置元素的右外边距。
margin-top
设置元素的上外边距。
1.margin属性
margin 属性接受任何长度单位,可以是像素、英寸、毫米或 em。
margin 可以设置为 auto。更常见的做法是为外边距设置长度值。下面的声明在 h1 元素的各个边上设置了 1/4 英寸宽的空白:h1 {margin : 0.25in;}
与内边距的设置相同,这些值的顺序是从上外边距 (top) 开始围着元素顺时针旋转的:margin: top right bottom left
2.值复制
p {
margin : 0.5em 1em 0.5em 1em; }
p {
margin : 0.5em 1em; }
CSS 定义了一些规则,允许为外边距指定少于 4 个值。规则如下:
如果缺少左外边距的值,则使用右外边距的值。
如果缺少下外边距的值,则使用上外边距的值。
如果缺少右外边距的值,则使用上外边距的值。
3.单边外边距属性
您可以使用下列任何一个属性来只设置相应上的外边距,而不会直接影响所有其他外边距:
margin-top
margin-right
margin-bottom
margin-left
4.提示和注释
**提示:**Netscape 和 IE 对 body 标签定义的默认边距(margin)值是 8px。而 Opera 不是这样。相反地,Opera 将内部填充(padding)的默认值定义为 8px,因此如果希望对整个网站的边缘部分进行调整,并将之正确显示于 Opera 中,那么必须对 body 的 padding 进行自定义。
5.外边距合并
简单地说,外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。
当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。请看下图:
当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。请看下图:
假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并:
**注释:**只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。
七、CSS定位
1.定位概述
定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。
属性
描述
position
把元素放置到一个静态的、相对的、绝对的、或固定的位置中。
top
定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。
right
定义了定位元素右外边距边界与其包含块右边界之间的偏移。
bottom
定义了定位元素下外边距边界与其包含块下边界之间的偏移。
left
定义了定位元素左外边距边界与其包含块左边界之间的偏移。
overflow
设置当元素的内容溢出其区域时发生的事情。
clip
设置元素的形状。元素被剪入这个形状之中,然后显示出来。
vertical-align
设置元素的垂直对齐方式。
z-index
设置元素的堆叠顺序。
1.一切皆以为框
div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容 ,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。
您可以使用 display 属性改变生成的框的类型。这意味着,通过将 display 属性设置为 block,可以让行内元素(比如
元素)表现得像块级元素一样。还可以通过把 display 设置为 none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。
但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个块级元素(比如 div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:
some text
Some more text.
在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联。
2.CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box) ,行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
3.CSS position属性
通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。position 属性值的含义:
static :元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative :元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。(相对定位)
absolute :元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。(绝对定位)
fixed :元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
**提示:**相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
2.相对定位
如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。
如果将 top 设置为 20px,那么框将在原位置顶部下面 20 像素的地方。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动。
#box_relative {
position : relative;
left : 30px;
top : 20px;
}
注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
3.绝对定位
绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
普通流中其它元素的布局就像绝对定位的元素不存在一样:
#box_relative {
position : absolute;
left : 30px;
top : 20px;
}
绝对定位的元素的位置相对于最近的已定位祖先元素 ,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块 。
对于定位的主要问题是要记住每种定位的意义。所以,现在让我们复习一下学过的知识吧: 相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块。
**注释:**根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。
**提示:**因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。
值
描述
auto
默认。堆叠顺序与父元素相等。
number
设置元素的堆叠顺序。
inherit
规定应该从父元素继承 z-index 属性的值。
4.浮动
CSS float 属性,在 CSS 中,我们通过CSS float 属性实现元素的浮动。
1.行框和清理
.news {
background-color : gray;
border : solid 1px black;
}
.news img {
float : left;
}
.news p {
float : right;
}
"news">
"news-pic.jpg" />
some text
你可能感兴趣的:(JavaWeb学习,找工作前的自救,html,css3,html5)