属于内联元素。可作为文本的容器,与CSS一同使用时可作为部分
文本设置样式属性。
例如,span_test.html代码如下。
span 内联元素
基于Web 技术的物联网应用与开发< span style="color:blue;font- weight:bold"> 智
云平台
硬件设备 线上资源
显示效果如图3-5所示。
图3-5 内联元素效果
第 3 章 HTML和CSS
43
3.4 CSS
前面了解了如何通过HTML创建文件结构和内容,接下来介绍CSS(CascadingStyle
Sheet)怎么为HTML添加表现样式。
每个HTML元素都有一组样式属性,可以通过CSS设定。这些属性涉及元素在屏幕
上显示时的不同方面,比如在屏幕上位置、边框的宽度,文本内容的字体、字号和颜色,等
等。CSS就是一种先选择HTML元素,然后再设定选中元素CSS属性的机制。CSS选择
器和要应用的样式构成了一条CSS规则。
CSS的主要特点有:能精确定位,控制页面中的每一个元素;能对HTML处理的样式
做最好的补充;能把内容和格式处理相分离,大大减少工作量。
3.4.1 创建CSS
CSS的编写很容易,可以是文本编辑器、样式表编辑器或者专业开发工具。无论用哪
种方式,都是要创建一个以css为扩展名的文件,该文件中包含了要设定的规则。通常,把
它保存在一个特定的目录下。
样式表的基础就是组成它的CSS规则,每一条规则都是单独的语句。CSS规则由选
择器(selector)和声明两部分组成。声明由属性(propoerty)和属性的值组成。其语法格
式为:
选择器{声明1; 声明2; …; 声明N}
CSS会自动忽略掉附加的空白,所以为了方便阅读,可以添加一些空格。
1.选择器
用来指定针对哪一个HTML标签应用样式表的部分,任何HTML元素都可以是一
个CSS的选择器。例如:
P {color: red}
中的选择器是P,规则就会选择所有标签的样式,该规则表示在段落标签里的内容为
红色。
2.声明
声明是包含在大括号中的内容,首先给出属性名,可以包括颜色、边界和字体等;然后
是属性值,给一个属性能够接受的值,加上分号之后可以指定多个样式。例如:
H1{font-size: 24pt; color: green}
上述语句表示标题中的字体大小为24pt,颜色为绿色。
3.组合规则
用户通过大括号内列出声明,有时候对于同一个选择器列出了几个规则,这时候规则
是可以合并起来写的,同时很多不同的选择器却具有重复的样式表声明,为了减少样式表
JavaWeb应用开发与项目案例教程
44
的重复声明,组合的选择器声明是允许的。例如:
H1, H2, H3, H4, H5, H6 {
color: red;
font-family: sans-serif}
该规则标明H1、H2、H3、H4、H5、H6的颜色都为红色,并且字体为sans-serif。
4.继承
实际上,所有在选择器中嵌套的选择器都会继承外层选择器指定的属性值,除非另外
更改。例如,一个BODY定义了的颜色值也会应用到段落的文本中。
有些情况是内部选择器不继承周围的选择器的值,但理论上这些都是特殊的。例如,
上边界属性是不会继承的;直觉上,一个段落不会有同文件BODY一样的上边界值。
5.注释
注释是用户嵌入CSS代码中的专用位,浏览器会忽略注释。样式表里面的注解使用
与C语言编程中一样的约定方法去指定。CSS的注释以字符/*开始,以*/结束,两者之
间的内容浏览器都会忽略,注解的例子如以下格式。
/*这是注释内容*/
注释可以出现在CSS文件中的任何位置。
下面创建一个简单的样式表:
/****************Body and tag styles****************/
body{
font:76%Verdana,Tahoma,Arial,sans-serif;
line-height:1.4em;
text-align:center;
color:#303030;
background:#e8eaec;
}
a{
color:#467aa7;
font-weight:bold;
text-decoration:none;
background-color:inherit;
}
p{padding:0 0 1.6em 0;}
p form{margin-top:0; margin-bottom:20px;}
3.4.2 添加CSS的方法
为了使CSS所设置的样式能够在网页中产生作用,必须通过一些方法将CSS 和
第 3 章 HTML和CSS
45
HTML挂接在一起,才可以正常工作。
在HTML中,添加的样式表有4种:行内样式表、嵌入样式表、链接样式表和输入样
式表。
1.行内样式表
行内样式表(InlineStyles)是最简单的一种使用方式,由标签style属性支持,CSS规
则直接写在标签内。例如:
这种方法的不便之处在于必须在每行中都加入样式表规则,否则到下一行时浏览器将
转回到文件的默认设置。虽然加入行内的样式表相比较来说不如嵌入样式表、链接样式表
及输入样式表的功能强大,但是有时候它非常有用。
2.嵌入样式表
嵌入样式表(EmbededStyles)是一个样式集,它是网页代码的一部分,在带有
例如:
My First Stylesheet
…
在嵌入样式表规则下,浏览器在整个HTML页面中都执行该规则。这里的
My First Stylesheet
Stylesheet:The Tool of the Web Design Gods
Amaze your friends!Squash your enemies!
其中输入的company.css文件内容为:
H1{color:green;font-family:times}
P{background:yellow;font-family:counier}
3.4.3 CSS选择器
选择器决定样式规则应用于哪些元素。最简单的选择器可以对给定类型的所有元素
(如所有的h2标题)进行样式化,有的选择器允许人们根据元素的类、上下文、状态等来应
用格式化规则。
选择器可以定义以下5个不同的标准来选择要进行格式化的元素。
● 元素的类型或名称。
● 元素所在的上下文。
● 元素的类或id。
● 元素的伪类或伪元素。
● 元素是否有某些属性和值。
1.元素选择器
最常见的CSS选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。
如果设置HTML的样式,选择器通常将是某个HTML元素,比如p、h1、em、a,甚至可以
是HTML本身。
h1 {color:blue;}
h2 {color:silver;}
2.派生选择器
在CSS中,可以根据元素的祖先、父元素或同胞元素来定位它们。派生选择器允许根
据文档的上下文关系来确定某个标签的样式。通过合理地使用派生选择器,可以使
HTML代码变得更加整洁。
如果希望列表中的strong元素变为斜体字,而不是通常的粗体字,可以这样定义一个
派生选择器,例如strong_test.html代码如下。
JavaWeb应用开发与项目案例教程
48
Web 页面开发
我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用
- 我是斜体字。这是因为strong 元素位于li 元素内。
- 我是正常的字体。
页面显示效果如图3-6所示。
图3-6 派生选择器显示效果
派生类选择器的格式为:
标签1 标签2 {声明}
说明:标签2就是我们想要选择的目标,而且只有在标签1 是其祖先元素(不一定是
父元素)的情况下才会被选中。
派生类选择器,严格地讲(也就是CSS 规范里)应该叫作后代组合式选择器
(descendantcombinatorselector),就是一组以空格分隔的标签名。用于选择作为指定祖
先元素后代的标签。
3.id选择器
并非所有的选择器都需要指定元素的名称。如果对某一类的元素进行格式化,而不管
属于这个类的元素的类型,就可以从选择器中去掉元素名称。id选择器可以为标有特定id
的HTML 元素指定特定的样式。
id选择器:以"#"来定义,不加空格。下面的两个id选择器,第一个可以定义包含
id="red"属性的元素颜色为红色,第二个定义包含id="green"属性的元素颜色为绿色。
第 3 章 HTML和CSS
49
#red {color:red;}
#green {color:green;}
下面的HTML代码中,id属性为red的p元素显示为红色,而id属性为green的p元
素显示为绿色。
电子商务
购物管理界面
注意:id属性只能在每个HTML 文档中出现一次。
在现代布局中,id选择器常常用于建立派生选择器。例如:
#sidebar p {
font-style: italic;
text-align: right;
margin-top: 0.5em;
}
上面的样式只会应用于出现在id是sidebar的元素内的段落。这个元素很可能是div
或者是表格单元,尽管它也可能是一个表格或者其他块级元素。它甚至可以是一个内联元
素,比如或者,不过这样的用法是非法的,因为不可以
在内联元素中嵌入。
即使被标注为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;
}
在这里,与页面中的其他p元素明显不同的是,sidebar内的p元素得到了特殊的处
理;与页面中其他所有h2元素明显不同的是,sidebar中的h2元素也得到了不同的特殊
处理。
id选择器即使不被用来创建派生选择器,它也可以独立发挥作用。
#sidebar {
border: 1px dotted #000;
padding: 10px;
}
JavaWeb应用开发与项目案例教程
50
根据这条规则,id为sidebar的元素将拥有一个像素宽的黑色点状边框,同时其周围会
有10像素宽的内边距(padding,内部空白)。老版本的Windows/IE浏览器可能忽略这条
规则,除非特别地定义这个选择器所属的元素。例如:
div#sidebar {
border: 1px dotted #000;
padding: 10px;
}
4.class选择器
类选择器的语法格式为:
.类名
例如:
.center {text-align: center}
在上面的例子中,所有拥有center类的HTML元素均为居中。
在下面的HTML代码中,h1和p元素都有center类。这意味着两者都将遵守.center
选择器中的规则。
标题一将会居中显示。
段落将会居中显示。
注意:类名的第一个字符不能使用数字。它无法在Mozilla或Firefox中起作用,且类
选择器前面是点“.”紧跟着类名,两者之间没有空格。
和id一样,class也可被用作派生选择器。例如:
.fancy td {
color: #f60;
background: #666;
}
在上面这个例子中,类名为fancy的更大的元素内部的表格单元都会以灰色背景显示
橙色文字(名为fancy的更大的元素可能是一个表格或者一个div)。
元素也可以基于它们的类而被选择。例如:
td.fancy {
color: #f60;
background: #666;
}
在上面的例子中,类名为fancy的表格单元将是带有灰色背景的橙色。