购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 HTML和CSS

HTML(HyperText Markup Language,超文本标记语言)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计令人赏心悦目的网页、网页应用程序以及移动应用程序的用户界面。网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现使之成为一种标记语言,而非编程语言。

HTML元素是构建网站的基石。HTML允许嵌入图像与对象,并且可以用于创建交互式表单,被用来结构化信息——例如标题、段落和列表等,也可用来在一定程度上描述文档的外观和语义。HTML的语言形式为尖括号包围的HTML元素(如<html>),浏览器使用HTML标签和脚本来诠释网页内容,但不会将它们显示在页面上。

层叠样式表(Cascading Style Sheets,CSS)是一种可以用来控制网页样式(字体间距、背景颜色、元素大小等)的计算机语言。通过丰富的选择器可以选择HTML上的特定元素,给其增加不同的样式,丰富网页的表现形式。

1.2.1 HTML元素

HTML文档由HTML元素定义。HTML标签一般是闭合的,开始标签常被称为起始标签(opening tag),结束标签常称为闭合标签(closing tag)。元素的内容是开始标签与结束标签之间的内容,某些HTML元素具有空内容(empty content),空元素在开始标签中进行关闭(以开始标签的结束而结束),大多数HTML元素可拥有属性。

    <!DOCTYPE html>
    <html>
    <title>
    这里是网站标题
    </title>
    <body>
    <a href="http://www.baidu.com">单击进入百度</a>
    </body>
    </html>

以上文本包含4个HTML标签,分别是html、title、body、a,其中a标签具有属性href,将以上文本保存为以.html为后缀的文件,在浏览器打开并单击文字部分便会跳转至百度首页。

1.2.2 HTML常用标签

1.标题

标题标签有6个,分别是h1、h2、h3、h4、h5、h6,使用方式如下:

    <h1>这是h1标题</h1>
    <h2>这是h2标题</h2>
    <h3>这是h3标题</h3>
    <h4>这是h4标题</h4>
    <h5>这是h5标题</h5>
    <h6>这是h6标题</h6>

从h1到h6标题中的字越来越小,浏览器会自动在标题的前后添加空行,如图1-1所示。

图1-1

2.段落

段落标签为<p>,使用方法如下:

    <p>这是一个段落</p>
    <p>这是第二个段落</p>

浏览器会自动在每个段落标签的结尾自动换行,和标题标签一样。

3.换行

有些标签可以实现自动换行,有些标签不行。如果想要换行,可以使用标签<br/>。

    <!DOCTYPE html>
    <html>
    <title>
    这里是网站标题
    </title>
    <body>
    实现中国的伟大复兴<br/>
    是我们每个人的责任
    </body>
    </html>

文本将会在“复兴”后换行,如图1-2所示。

图1-2

4.文本格式化标签

以下代码展示文本格式化标签:

    <b>b标签加粗字体</b><br/>
    <em>em定义着重文字</em><br/>
    <i>i定义斜体字</i><br/>
    <small>small中的字体比较小</small><br/>
    <strong>strong加重字体</strong><br/>
    下标<sub>sub定义下标</sub><br/>
    上标<sup>sup定义上标</sup><br/>
    <ins>ins定义插入字</ins><br/>
    <del>del删除文字标志</del><br/>

代码显示结果如图1-3所示。

图1-3

5.超链接
    <a href="http://www.baidu.com" target="_blank">单击进入百度</a>

href属性定义打开的链接地址,target属性定义打开链接的方式。

如果target的值是某个框架的名字,那么将会在此框架中打开链接。<a>标签的id属性可创建一个HTML文档标记。

    <a >标记</a>
    <a href="../Text/chapter-4.xhtml#tip">单击此处跳到标记</a>

如果文本比较长,可以使用此属性快速回到指定位置。

6.图像

图像标签img用于在网页中插入图片。

    <img src="img.jpg"  alt="图像说明"  width="100px"  height="100px"  >

src定义图像的位置,可以是本地存储的图片资源,也可以是网络上的图片,width和height分别定义图片的宽和高,alt是在当图片加载失败时显示的文字说明。

7.表格

表格标签有很多个,常用的有:<table>定义表格、<tbody>定义表格主体、<th>定义表头、<tr>定义行、<td>定义单元格。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等。

    <table border="2">
    <tbody>
    <tr><th>姓名</th><th>年龄</th><th>性别</th></tr>
    <tr><td>陈小龙</td><td>22</td><td>男</td></tr>
    <tr><td>李菁</td><td>20</td><td>女</td></tr>
    </tbody>
    </table>

以上代码效果如图1-4所示。

8.列表

HTML支持有序、无序和定义列表。示例代码如下:

    <ul>
    <li>项目概述一</li>
    <li>项目概述二</li>
    </ul>
    <ol type="a">
    <li>第一个条件</li>
    <li>第二个条件</li>
    </ol>
    <dl>
    <dt>陈小龙</dt>
    <dd>帅气潇洒的90后伪文青</dd>
    <dt>李菁</dt>
    <dd>可爱机灵的90后真少女</dd>
    </dl>

效果如图1-5所示。其中,type属性定义列表前的标记,默认有序列表前标记使用阿拉伯数字。

图1-4

图1-5

9.<div>和<span>

HTML <div>元素是块级元素,是可用于组合其他HTML元素的容器。<div>元素没有特定的含义。除此之外,由于它属于块级元素,因此浏览器会在其前后显示折行。如果与CSS一同使用,<div>元素可用于对大的内容块设置样式属性。<div>元素另一个常见的用途是文档布局。

HTML <span>元素是内联元素,可用作文本的容器。<span>元素也没有特定的含义。当与CSS一同使用时,<span>元素可用于为部分文本设置样式属性。

说明: 大多数HTML元素被定义为块级元素或内联元素。块级元素在浏览器显示时,通常会以新行来开始(和结束),如<h1>、<p>、<ul>、<table>。内联元素在显示时通常不会以新行开始,如<b>、<td>、<a>、<img>。

    <h3>这是标题</h3>
    <div style="color:#00FF00">
       div 元素包含的内容,这是一个块元素
    </div>
    <span style="font-size:20px">span 包含的内容</span>

效果如图1-6所示。

图1-6

10.表单

HTML表单用来搜集用户的输入,可将用户输入发送给后端程序进行处理。表单使用<form>来设置。常用表单元素的代码如下:

    <form action="register.php" method="post">
    文本域:<input type="text" name="username"> <br/>
    密码字段:<input type="password" name="password"><br/>
    单选按钮:<input type="radio" name="sex" value="male">male
    <input type="radio" name="sex" value="female">  female<br/>
    复选框:<input type="checkbox" name="hobby" value="bike">
    <input type="checkbox" name="hobby" value="car">
    <br/>
    下拉列表<select name="address">
    <option value="1">北京</option>
    <option value="2" selected>上海</option>
    </select><br/>
    多行文本域<textarea name=""></textarea><br/>
    提交按钮<input type="submit" value="提交">
    </form>

图1-7

表单的action设置当单击type="submit"的按钮时表单中数据提交到的地址,method设置提交的方式,有post和get两种。value设置表单元素的值,name用来区别不同的表单数据名称,后端程序接收数据需要用到此字段,如用PHP接收本例中文本域值则使用$_POST['username'],多个单选按钮的name值保持一致,说明这些按钮为同一组,同理复选框也是这样。<select>表单标签的<option>中加selected表示默认选中该项值。以上代码显示效果如图1-7所示。

1.2.3 CSS语法

可以直接在HTML标签内部以内联式的形式应用CSS,也可以在当前HTML文件的head部分写CSS代码,还可以用link引入外部的CSS文件。

内联式:

    <div style="color:red">文字内容</div>

内部样式表:

    <!DOCTYPE html>
    <html>
    <title>
    这里是网站标题
    </title>
    <style type="text/css">
    h1{color:orange;}
    .txt{font-family:"Times New Roman";font-size:20px;}
    </style>
    <body>
    <h1>h1内容,由标签选择器控制样式</h1>
    <p class="txt">p 标签内容,由类选择起控制样式</p>
    </body>
    </html>

还可以使用<link rel="stylesheet" type="text/css" href="mystyle.css">引入外联式样式表。

CSS规则由两个主要的部分构成:选择器及一条或多条声明。

使用选择器选择需要改变样式的元素,每条声明由一个属性和一个值组成,属性和值用冒号分隔,每条声明之间用分号分隔:

1.2.4 CSS选择器

1.元素选择器

文档的元素就是一种选择器,如果设置HTML的样式,选择器通常会是某个HTML元素,比如:p、h1、em、a,甚至可以是HTML本身:

    html {color:black;}
    p {color:blue;}
    h2 {color:silver;}

这样相应的HTML元素标签里的内容就会应用这些样式。

2.类选择器

类选择器允许以一种独立于文档元素的方式来指定样式,既可以单独使用,也可以与其他元素结合使用。为了使用类选择器,必须为元素指定一个class值。

    <h1 class="important">标题使用important类控制样式</h1>
    <p class="important">段落也使用important类控制样式</p>

然后在CSS代码中这样写:

    .important {color:red;}

注意,在CSS类名前有一个点号(.)。这样<h1>里的文字就会变成红色了。

3.ID选择器

ID选择器和类选择器类似,同样需要给HTML元素定义一个ID值,然后在CSS中使用#ID值的形式定义样式。

    <h1 >
    标题使用important类控制样式
    </h1>

CSS中使用如下代码:

    #important {color:red;}

和类选择器不同的是,HTML元素中ID的值不能重复。

4.属性选择器

属性选择器可以根据元素的属性及属性值来选择元素。如果希望把包含标题(title)的所有元素变为红色,可以写作:

    *[title] {color:red;}

还可以根据多个属性进行选择,只需将属性选择器链接在一起即可。例如,为了将同时有href和title属性的HTML超链接的文本设置为红色,可以这样写:

    a[href][title] {color:red;}

除了选择拥有某些属性的元素,还可以进一步缩小选择范围,只选择有特定属性值的元素。例如,假设希望将指向Web服务器上某个指定文档的超链接变成红色,可以这样写:

    a[href="http://www.w3school.com.cn/about_us.asp"] {color: red;}

关于属性选择器的用法较为丰富,包括可以选择匹配以指定值开头或结尾的元素,使用方式较为灵活。由于篇幅原因,本书不做介绍,读者可自行查阅相关资料。

5.后代选择器

后代选择器可以选择作为某元素后代的元素,比如我们希望div块中使用h1标签包裹的文字为红色,而该div内其他元素内容不受影响:

    div h1{color:red}

在后代选择器中,规则左边的选择器一端包括两个或多个用空格分隔的选择器。选择器之间的空格是一种结合符(combinator)。

6.子元素选择器

与后代选择器相比,子元素选择器(child selectors)只能选择作为某元素子元素的元素。如果不希望选择任意后代元素,而是希望缩小范围,只选择某个元素的子元素,就可以使用子元素选择器。

例如,希望选择只作为h1元素子元素的strong元素,可以这样写:

    h1 > strong {color:red;}

这个规则会把第一个h1下面的两个strong元素变为红色,但是第二个h1中的strong不受影响:

    <h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
    <h1>This is <em>really <strong>very</strong></em> important.</h1>
7.相邻兄弟选择器

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,就可以使用相邻兄弟选择器。

    h1+p {color:red}

上述选择器只会把p元素内容变为红色,而h1标签内容不受影响。

8.伪类选择器

伪类选择器的语法:

    selector : pseudo-class {property: value}

例如:

    a:link {color: #FF0000}     /* 未访问的链接 */
    p:first-child {color:red;}  /* 匹配第一个p元素 */
    <p>第一个</p><p>第二个</p>

即“第一个”3个字会变成红色。

1.2.5 CSS样式

1.背景

CSS允许应用纯色和图片作为背景,例如:

    p {background-color: red;}              /* 把p元素背景设为红色 */
    div{background-image:url(../Images/img.jpg); }  /* 将图片设为div的背景 */

另外,可以通过background-repeat设置背景图片的重复样式,使用background-position设置背景图片位置、background-attachment设置背景关联。

2.文本

使用text-indent属性可以实现文本缩进。例如:

    p{text-indent:5em;}

还可以使用word-spacing属性改变字(单词)之间的标准间隔,其默认值normal与设置值为0是一样的。

还可以使用letter-spacing属性,其与word-spacing的区别在于,letter-spacing修改的是字符或字母之间的间隔。

还有许多与文本有关的属性,请读者自行查阅资料。

3.字体

字体属性描述如表1-1所示。

表1-1 字体属性说明

4.列表

CSS列表属性允许放置、改变列表项标志,或者将图像作为列表项标志。列表属性描述如表1-2所示。

表1-2 列表属性说明

5.表格

CSS表格属性可以改善表格的外观,属性说明如表1-3所示。

表1-3 表格属性说明

1.2.6 CSS框模型

CSS框模型(Box Model)规定了元素框处理元素内容、内边距、边框和外边距的方式。CSS框模型示意图如图1-8所示。

图1-8

元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。内边距、边框和外边距都是可选的,默认值是零。但是,许多元素将由用户代理样式表设置外边距和内边距。可以通过将元素的margin和padding设置为零来覆盖这些浏览器样式。这可以分别进行,也可以使用通用选择器对所有元素进行设置。Border、margin、padding都有对应的top、right、bottom、left。除此之外,border还可以设置style和color。

内边距padding的说明如表1-4所示。

表1-4 内边距

关于外边距的属性说明如表1-5所示。

表1-5 外边距 0M2YnMwy+vbg4m7CbBn7mX0SSHljY00gS4/WxWvN8tnWr5NT0nUZi2qChfObRCaD

点击中间区域
呼出菜单
上一章
目录
下一章
×