HTML表单&CSS

第1章   网站用户注册页面显示

1.1    案例介绍

所有的html标签中,表单标签是最重要的。在实际开发中,最经典的实例就是用户注册,覆盖了表单标签的所有的元素。效果图如下:

1.1    相关知识点

本案例中使用的标签如下:

l  <form>

l  <input>

l  <select>

1.1.1   表单相关标签

1.1.1.1 表单标签:<form>

<form> 表单标签,在html页面创建一个表单,表单标签在浏览器上没有任何显示。如果数据需要提交到服务器,负责搜集数据的标签必须存放在表单标签体内容。

n  action属性:请求路径,确定表单提交到服务器的地址(路径)

n  method属性:请求方式。常用的取值:GET、POST

u  GET:默认值

l  提交的数据追加在请求路径上。例如:/1.html?username=jack&password=1234,数据格式k/v,追加是使用?连接,之后每一对数据使用&连接

l  因为请求路径长度有限,所有GET请求提交的数据有限。

l  敏感数据会在地址栏显示,不适合做密码等数据提交

u  POST:

l  提交的数据不再请求路径上追加(及不显示在地址栏上)

l  提交的数据大小不显示

    <body>

        <!--表单-->

        <formaction="" method="">

            <!--此处的内容可能被提交到服务器-->

        </form>

        <!--此处的内容在<form>标签外部,此处数据不能提交到表单-->

    </body>

1.1.1.2 输入域标签 :<input>

l  <input> 标签用于获得用户输入信息,type属性值不同,搜集方式不同。最常用的标签。

n  type属性

u  text:文本框,单行的输入字段,用户可在其中输入文本。默认宽度为 20 个字符

u  password:密码框,密码字段。该字段中的字符以黑圆显示。

u  radio:单选框,表示一组互斥选项按钮中的一个。当一个按钮被选中,之前选中的按钮就变为非选中的。

u  submit:提交按钮。提交按钮会把表单数据发送到服务器。一般不写name属性,否则将“提交”两个字提交到服务器。

         因为不同项目注册需要的字段不同,需要完成的案例中没有覆盖所有的表单元素,以下标签使用也需要大家掌握。

u  checkbox: 复选框

u  image: 按钮上的图片

u  file:文件上传组件,提供"浏览"按下可以选择需要上传文件.

u  hidden:隐藏字段. 数据会发送给服务器,但浏览器不进行显示。

u  reset:重置按钮。将表单恢复到默认值。

u  button:普通按钮,常用于与JavaScript结合使用。

<form action="#"method="get">

    <!--普通的文本输入框-->

    用户名:<input type="text"/><br/>

    <!--密码输入框-->

    密码:<input type="password"/><br />

    <!--

        单选按钮:多个单选按钮,只能选择一个

        实现单选:

            input标签中的属性name,设置标签的名字,名称可以自定义

            相同name的属性的单选框互斥

        防止用户什么也不选,设置默认选中项

            input标签中的属性checked

    -->

    男<input type="radio"/name="sex" checked="checked"> 女<input type="radio"/name="sex"><br />

    <!--复选输入框-->

    请选择您的爱好,可以多选<br />

    篮球<inputtype="checkbox"/><br />

    足球<inputtype="checkbox"/><br />

    乒乓球<inputtype="checkbox"/><br />

    羽毛球<inputtype="checkbox"/><br />

    <!--文件输入框,用于文件上传-->

    <inputtype="file"/><br />

    <!--

        图片输入框,用于输入图片

        属性 src:填写输入图片的路径

    -->

    <inputtype="image" src="img/btn.jpg"/><br />

    <!--普通按钮 配合JS使用 属性value设置按钮上显示的文字-->

    <inputtype="button" value="点点我试试"/><br />

    <!--重置按钮 将表单恢复到默认值,清空表单-->

    <inputtype="reset" /><br />

    <!--隐藏文本框 用于客户端临时保存数据,但是浏览器不会显示出来-->

    <inputtype="hidden"/><br />

    <!--提交按钮 点击提交按钮,会把表单的数据提交到服务器-->

    <inputtype="submit"/><br />

</form>

1.1.1.3 下拉列表标签: <select>

l  <select> 下拉列表。可以进行单选或多选。需要使用子标签<option>指定列表项

<!--下拉菜单-->

    <select>

        <option>北京市</option>

        <option>南京市</option>

        <option>天津市</option>

    </select>

1.1.1.4 文本域标签: <textarea>

l  <textarea> 文本域。多行的文本输入控件。

n  cols属性:文本域的列数

n  rows属性:文本域的行数

<!--多行文本区域-->

<textarea rows="5" cols="20"></textarea>

1.1.1.5 按钮标签: <button> (了解)

l  <button type="button|reset|submit"> 按钮标签一般很少使用,提供“普通|重置|提交”功能,不同的浏览器默认值不同。

1.1.1.6  表单标签的属性

n  name:元素名,如果需要表单数据提交到服务器,必须提供name属性值,服务器通过属性值获得提交的数据。

n  value属性:设置input标签的默认值。Botton,submit和reset为按钮显示数据

n  checked属性:单选框或复选框被选中。

n  readonly:是否只读

n  disabled:是否可用

n  扩展: placeholder:是HTML5新特性,给input设置默认值;一旦使用键盘输入数据,那么默认值就会消失

1.1.1.7  下拉选菜单的属性

n  name属性:发送给服务器的名称

n  multiple属性:不写默认单选,取值为“multiple”表示多选,配合ctrl可以选多个值。

n  size属性:多选时,可见选项的数目。

n  <option> 子标签:下拉列表中的一个选项(一个条目)。

l  selected :勾选当前列表项

l  value :发送给服务器的选项值。

<form action="#"method="post">

    <!--设置输入框的默认值-->

    用户名:<input type="text"name="username"  value="请输入用户名"readonly="readonly"/>

    用户名:<input type="text"name="username" placeholder="请输入用户名" disabled="disabled"/>

    <br/>

   

    <selectmultiple="multiple" size="2">

        <option>北京市</option>

        <option>南京市</option>

        <option>天津市</option>

    </select>

    <br/>

    <select>

        <option>北京市</option>

        <optionselected="selected">南京市</option>

        <optionvalue="tj">天津市</option>

    </select>

</form>

1.1.1.8   表单的提交方式

n  method属性:请求方式。常用的取值:GET、POST

u  GET:默认值

l  提交的数据追加在请求路径上。例如:/1.html?username=jack&password=1234,数据格式k/v,追加是使用?连接,之后每一对数据使用&连接

k:标签的名称name

v:标的值vlaue(除了文本框其他输入框必须设置value值)

l  因为请求路径长度有限,所有GET请求提交的数据有限(最大2048个字节)。

l  敏感数据会在地址栏显示,不适合做密码等数据提交

u  POST:

l  提交的数据不再请求路径上追加(及不显示在地址栏上)安全

l  提交的数据大小不显示

<table width="400"align="center">

    <tr>

        <td>

            <formaction="#" method="post">

                用户名:<input type="text"name="username"/>

                密码:<input type="password"name="password"/>

                请选择您的爱好:<br />

                篮球:<input type="checkbox"name="hobbies" value="篮球"/>

                足球:<input type="checkbox"name="hobbies" value="足球"/>

                <br/>

                <selectname="city">

                   <optionvalue="bj">北京</option>

                   <option>天津</option>

                </select>

                <br/>

                <inputtype="submit"/>

            </form>

        </td>

    </tr>

</table>

1.1.2    什么是div

div就是html一个普通标签,进行区域划分。特性:独自占一行。独自不能实现复杂效果。必须结合CSS样式进行渲染。

div通常其是块级元素

1.1.3    CSS的概述

1.1.3.1  CSS是什么

CSS 通常称为CSS样式或层叠样式表,主要用于设置HTML页面中的文本内容(字体、大小、对其方式等)、图片的外形(高宽、边框样式、边距等)以及版面的布局等外观显示样式。

CSS可以使HTML页面更好看,CSS色系的搭配可以让用户更舒服,CSS+DIV布局更佳灵活,更容易绘制出用户需要的结构。

1.1.3.2  CSS名词解释

CSS (Cascading Style Sheets) :指层叠样式表

         样式:给HTML标签添加需要显示的效果。

         层叠:使用不同的添加方式,给同一个HTML标签添加样式,最后所有的样式都叠加到一起,共同作用于该标签。

1.1.3.3  CSS样式规则

使用HTML时,需要遵从一定的规范。CSS亦如此,要想熟练的使用CSS对网页进行修饰,首先需要了解CSS样式规则。具体格式如下

    选择器{属性1:属性值;属性2:属性值;..}

         在上面的样式规则中,“选择器”用于指定CSS样式作用的HTML对象,花括号内是对该对象设置的具体样式。属性和属性值以键值对方式出现,使用英文冒号“:”分隔。多个属性之间使用英文分号“;”分隔。例如:

<style>

    h2{

        color:red;

        font-size:100px;

    }

</style>

初学者在书写CSS样式时,除了要遵循CSS样式规则,还必须注意CSS代码结构中的几个特点,具体如下:

l  CSS样式“选择器”严格区分大小写,“属性”和“属性值”不区分大小写。

l  多个属性之间必须用英文状态下的分号隔开,最后一个属性后的分号可以省略,但是,为了便于增加新样式最好保留。

l  如果属性的值由多个单词组成且中间包含空格,则必须为这个属性值加上英文状态下的引号。例如:

p { font-family:"Times New Roman";}

l  在编写CSS代码时,为了提高代码的可读性,通常会加上CSS注释,例如:

/* 这是CSS注释文本,此文本不会显示在浏览器窗口中  */

l  在CSS代码中空格是不被解析的,花括号以及分号前后的空格可有可无。因此,可以使用空格键、Tab键、回车键等对样式代码进行排版,即所谓的格式化CSS代码,这样可以提高代码的可读性。例如:

h1{font-size:20px; color:red; }

h1{

font-size:20px;                   /* 定义字体大小属性  */

color:red;                         /* 定义颜色属性  */

}

l  上述两段代码所呈现的效果是一样的,但是,第二种书写方式的可读性更高。需要注意的是,属性的值和单位之间是不允许出现空格的,否则浏览器解析时会出错。例如,下面这行代码就是不正确的。

h1{ font-size:20 px; }                /* 20和单位px之间有空格 */

l   

1.1.3.4  引入CSS样式                                                                                                                                                                                                                                                                                         

CSS使用非常灵活,及可以嵌入在HTML文档中,也可以是一个单独的文件,如果是单独的文件,则必须以.css为扩展名。CSS和HTML的结合3种常用方式:

1)      行内样式

行内样式,是通过标签的style属性来设置元素的样式。

<!--方式1:行内样式

    color : 表示字体颜色

    font-size: 表示字体大小

-->

<a style="color: #f00; font-size:30px;">传智播客</a>

行内样式通过标签的属性来控制样式,这样并没有做到结构与表现(HTML展示结构、CSS显示效果)相分离,所以一般很少使用。学习阶段有时候为了快速编程,偶有使用。

1)      内部样式

内部样式又称为内嵌式,是将CSS代码集中写在HTML文档的<head>头部标签体中,并且使用<style>标签定义。

给当前html文件中的多个标签设置样式。

在html的<head>标签中使用<style>标签来定义CSS

<!--方式2:内部样式

    background-color: 表示背景色

-->

<style type="text/css">

    body{

        background-color:#ddd;

    }

</style>

内嵌式CSS样式只对其所在的HTML页面有效,可以对多处标签统一设置样式,因此,仅设计一个页面时,使用内嵌式是个不错的选择。但如果是一个网站,不建议使用这种方式,因为他不能充分发挥CSS代码的重用优势。

1)      外部样式

外部样式又称为链入式,是将所有的样式放在一个或多个以.css为扩展名的外部样式表文件中,通过<link>标签将样式连接到HTML文档中。

<!--方式3:外部样式

    rel="stylesheet",固定值,当前文件和引入文件的关系,rel是relationship的缩写

                          stylesheet是样式表

    type="text/css",  固定值,表示浏览器解析方式

    href ,表示css文件位置

        font-family表示使用的字体系列,多个字体使用逗号分隔。例如:“字体1,字体2,字体3”,此时优先使用“字体1”,如果“字体1”系统不存在,再使用“字体2”,以此类推。

-->

<link rel="stylesheet"type="text/css" href="css/demo00.css"/>

链入式最大的好处是同一个CSS样式表可以被不同的HTML页面链接使用,同时一个HTML页面也可以通过多个<link />标记链接多个CSS样式表。    优先级

行内样式>内嵌样式|外连样式(后边的会覆盖前边的)

1.1.1    选择器

要想将CSS样式应用于特定的HTML元素,首先需要找到该目标元素。在CSS中,执行这一任务的样式规则部分被称为选择器,本小节将对CSS基础选择器进行详细地讲解,具体如下:

1.1.1.1  元素选择器

标记选择器是指用HTML标记名称作为选择器,按标记名称分类,为页面中某一类标记指定统一的CSS样式。其基本语法格式如下:

标记名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该语法中,所有的HTML标记名都可以作为标记选择器,例如body、h1、p、strong等。用标记选择器定义的样式对页面中该类型的所有标记都有效。

1.1.1.1  ID选择器

id选择器使用“#”进行标识,后面紧跟id名,其基本语法格式如下:

#id名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该语法中,id名即为HTML元素的id属性值,大多数HTML元素都可以定义id属性,元素的id值是唯一的,只能对应于文档中某一个具体的元素。即使在页面中使用多个相同id值也不会报错,但是会影响到javascript的网页特效.

1.1.1.1  类选择器

类选择器使用“.”(英文点号)进行标识,后面紧跟类名,其基本语法格式如下:

.类名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该语法中,类名即为HTML元素的class属性值,大多数HTML元素都可以定义class属性。类选择器最大的优势是可以为元素对象定义单独或相同的样式。

         例如:

.myClass{

    font-size:25px;

}

<h1 class="myClass">Java培训</h1>

“标签选择器”和“类选择器”共同作用的效果

         类选择器的高级用法:给指定的标签设置class样式

标签.类名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

1.1.1.2  扩展:属性选择器

属性选择器,在标签后面使用中括号标记,其基本语法格式如下:

标签名[标签属性=’标签属性值’]{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

         该选择器,是对“元素选择器”的扩展,对一组标签进一步过滤。

         例如:

<style>

    input[type="text"]{

        background-color:yellow;

    }

   

    input[type="password"]{

        background-color:green;

    }

</style>

1.1.1.3  扩展:包含选择器

包含选择器,两个标签之间使用空格,给指定父标签的后代标签设置样式,可以方便在区域内编写样式。

父标签 后代标签{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该选择器,是对“元素选择器”的扩展,对一个标签内部所有后代标签进行过滤。

<style>

    #d1 div{

        color:red;

    }

</style>

1.1.1.4  扩展:伪类选择器

  在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。书写有顺序! 必须是 l v h a

  a:link{color: #FF0000}   /* 未访问的链接 */

  a:visited{color: #00FF00}    /* 已访问的链接 */

  a:hover{color: #FF00FF}  /* 鼠标移动到链接上 */

  a:active{color: #0000FF} /* 鼠标按住的链接 */

1.1.2    CSS的样式:

1.1.2.1  边框和尺寸:border、width、height

l  border :设置边框的样式

n  格式:宽度样式 颜色

n  例如:style=”border:1px solid #f00” ,1像素实边红色。

l  样式取值:solid 实线,none 无边,double 双线 等

l  width、height:用于设置标签的宽度、高度。

l  扩展:分别设置4个边

n  border-left:左

n  border-right:右

n  border-top:上

n  border-bottom:下

<style type="text/css">

    div{

        border:1pxsolid #000;  /*1像素,实边,黑色*/

        width:200px;

        height:200px;

    }

</style>

1.1.1.1  转换:display

HTML提供丰富的标签,这些标签被定义成了不同的类型,一般分为:块标签和行内标签。

l  块标签:以区域块方式出现。每个块标签独自占据一整行或多整行。

n  常见的块元素:<h1>、<div>、<ul>等

l  行内元素:不必在新的一行开始,同时也不强迫其他元素在新的一行显示。

n  常见的行内元素:<span>、<a> 等

在开发中,希望行内元素具有块元素的特性,需要使用display进行转换

选择器{display:属性值}

    常用的属性值:

        inline:此元素将显示为行内元素(行内元素默认的display属性值)

        block:此元素将显为块元素(块元素默认的display属性值)

        none:此元素将被隐藏,不显示,也不占用页面空间。

         例如:

<html>

    <head>

        <metacharset="UTF-8">

        <title></title>

        <styletype="text/css">

            span{

                border:1px solid #000;

                width:100px;

                height:40px;

            }

        </style>

    </head>

    <body>

        <!--默认显示一行

,边框环绕,高宽没有作用-->

        <span>显示1-1</span>

        <span>显示1-2</span>

       

        <!--每一行显示,高宽有作用-->

        <spanstyle="display: block;">显示2-1</span>

        <spanstyle="display: block;">显示2-2</span>

    </body>

</html>

1.1.1.1  字体:color、font-size

color:设置字体颜色

font-size:字体的大小,像素px

font-family:字体,幼圆,宋体,楷体...

text-decoration: none 取消文字上的下划线

         例如:

<div style="height:50px;width:200px;border:1px solid #000;">

    <ahref="">点击</a>

    <ahref="" style="text-decoration: none;">点击</a>

</div>

<div style="height:50px;width:200px;border:1px solid #000;">

    <ahref="" style="line-height: 50px;">点击</a>

    <ahref="" style="color: red;">点击</a>

</div>

1.1.1.1  背景色:background-color

<ul style="background-color: #999;color:#FFF;">

    <li>点击</li>

    <li>点击</li>

    <listyle="background-color: #000;">点击</li>

    <li>点击</li>

</ul>

1.1.1.1  布局:float、clear

通常默认的排版方式,将页面中的元素从上到下一一罗列,而实际开发中,需要左右方式进行排版,就需要使用浮动

选择器{float:属性值;}

    常用属性值:

        left:元素向左浮动

        right:元素向右浮动

        none:元素不浮动(默认值)

         由于浮动元素不再占用原文档流的位置,所以它会对页面中其他元素的排版产生影响。如果要避免影响,需要使用clear属性进行清除浮动。

选择器{clear:属性值;}

    常用属性值:

        left:不允许左侧有浮动元素(清除左侧浮动的影响)

        right:不允许右侧有浮动元素(清除右侧浮动的影响)

        both:同时清除左右两侧浮动的影响

         例如:

<!--默认上下布局-->

<div>

    <div>区域1-1</div>

    <div>区域1-2</div>

</div>

<hr />

<!--浮动左右布局-->

<div>

    <divstyle="float: left;">区域2-1</div>

    <divstyle="float: left;">区域2-2</div>

</div>

<!--取消浮动,另起一行布局-->

<div style="clear:both"></div>

<hr />

<div>

    <divstyle="float: left;">区域2-1</div>

    <divstyle="float: left;">区域2-2</div>

    <divstyle="float: left;">区域2-3</div>

</div>

1.1.1    CSS的盒子模型

1.1.1.1  什么是盒子模型

CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和外边距 的方式。

1.1.1.1  内边距:padding.


<!DOCTYPE html>

<html>

    <head>

        <metacharset="UTF-8">

        <title>盒子模型</title>

        <styletype="text/css">

            div{

                border:solid #FF0000 1px;

                width:200px;

                height:200px;

                /*设置盒子的外边距*/

                /*margin-top:50px;*/

                /*margin-left:50px;*/

                /*margin: 50px;*//*同时设置4个外边距*/

                /*margin:50px 100px;*//*上下50 左右100*/

                /*margin:50px 100px 200px;*//*上50右100下200左100顺时针*/

                margin:50px 100px 200px 300px;/*上50右100下200左3s00顺时针*/

                /*padding:50px;*//*同时设置4个内边距*/

                padding:50px 100px;/*上下50 左右100*/

            }

           

            .d{

                border:solid #FF0000 1px;

                width:800px;

                height:200px;

                margin:0 auto;

            }

           

        </style>

       

    </head>

    <body>

        <div>这是div的区域</div>

        <divclass="d">左右边距自动div</div>

    </body>

</html>

1.1    案例分析

1.1.1   知识点分析

为了结构更好的显示表单,本案例我们需要使用table表格布局。根据“验证码”我们需要提供3列来显示数据,其他需要将中和右合并。最终需要创建3*10表格。

1.1    案例实现

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>注册页面</title>

        <style type="text/css">

            /*页面整体背景图*/

            body{

                background-image: url(img/bg.jpg);

            }

            /*

             * 外层白色背景

             */

            .formId{

                width: 700px;

                height: 500px;

                border: 1px solid #333;

                margin: 150px auto;

                background-color: #FFFFFF;

                padding-top: 30px;

                padding-left:150px;

            }

            /*

             * 表单注册区域

             */

            .formReg{

                width: 500px;

                height: 450px;

                border: 0px solid #333;

            }

            h3{

                color: #0000FF;

                font-size: 20px;

            }

            h3 span{

                color: #000000;

                font-size:16px;

            }

            tr{

                height: 35px;

            }

           

        </style>

    </head>

    <body>

        <div class="formId">

            <div class="formReg">

                <h3>用户注册<span> USERREGiSTER</span></h3>

                <form action="#" method="post">

                <table width="500px">

                   <tr>

                       <td align="right">用户名</td>

                       <td colspan="2"><input 

class="in"name="username" placeholder="请输入用户名"/></td>

                   </tr>

                   <tr>

                       <td align="right">密码</td>

                       <td colspan="2"><input

class="in"type="password" name="password" placeholder="请输入用密码"/></td>

                   </tr>

                   <tr>

                       <td align="right">性别</td>

                       <td colspan="2">男<input

type="radio"name="sex" checked="checked"/>

                                  女<input

type="radio"name="sex"></td>

                   </tr>

                   <tr>

                       <td align="right">验证码</td>

   

                   <td><input type="text"

name="code"></td>

                       <td><img

src="img/checkcode.jpg"></td>

                   </tr>

                   <tr>                  

                       <td colspan="3"

align="center">

                           <input type="image"

src="img/btn.jpg"/>

                       </td>

                   </tr>

                </table>

                </form>

            </div>

        </div>

    </body>

</html>


猜你喜欢

转载自blog.csdn.net/shitianhang123/article/details/79215784