一、Web项目(可跳过,直接从下一个标题开始)
1、Web项目:
指的是带网页的项目,通过浏览器可以访问的项目。比如:淘宝、天猫等。
2、Web项目构成:
浏览器(客户端)、服务器、数据库。
3、Java Web项目访问流程:
客户端通过Servlet/JSP与服务器进行联系,服务器通过JDBC与数据库进行联系。
4、Java Web程序员学习目标:
(1)如何对服务器进行编程。
(2)如何对数据库进行编程。
(3)如何使服务器访问数据库。
(4)如何对客户端进行编程。
(5)如何使客户端访问服务器。
(6)如何使用框架提高效率。
5、Web基础(写网页):
(1)HTML:用来勾勒出网页的结构与内容。
(2)CSS:用来装饰网页。控制页面的外观和表现。
(3)JavaScript:用来使网页出现动态的效果。控制页面的行为。
二、HTML
1、HTML工作原理:
HTML是部署在服务器上的文本文件。
(1)根据HTTP协议,浏览器发送请求到服务器。
(2)服务器做出响应,并返回响应请求到浏览器。
(3)浏览器执行HTML,并显示内容。
即HTML部署在服务端,运行在客户端。
2、XML:
(1)XML(Extensible Markup Language)指可扩展标记语言。主要用于存储或传输数据以及作为配置文件。(重点为数据的内容)
(2)可扩展表现为:标签可扩展、属性可扩展、元素之间嵌套关系可扩展。
(3)严格要求标签的嵌套、配对,属性必须要有值,属性值写在引号中。
(4)XML解析方式:
DOM解析方式:指Document Object Model,即文档对象模型,是W3C组织推荐的一种处理XML的一种方式。DOM解析文档时,会将文档中所有元素,按照其出现的层次关系,将其解析成一个一个的Node对象(节点)。DOM优点:把xml文件在内存中构造出树形结构,可以遍历并修改节点。缺点:如果文件较大,内存有压力,解析时间长。
SAX解析方式:指simple API for XML ,是一种XML解析的替代方法。SAX逐行扫描文档,边扫描边解析。相比于DOM,SAX是一种速度更快、更有效的方法,且SAX可以在解析文档的任意时刻停止解析。SAX优点:解析速度快,没内存压力。缺点:不能对节点进行修改。(比如安卓)
3、HTML:
(1)HTML(HyperText Markup Language)指超文本标记语言,是一种纯文本类型的语言。用于显示数据。(重点是数据的外观)
(2)可以理解为固定的XML,标签固定、属性固定、元素嵌套关系固定。
(3)HTML存在多个版本,若不能正确识别版本,则浏览器不能正确的显示页面。使用<!DOCTYPE>用于声明HTML版本。
例如: 声明HTML5版本, <!DOCTYPE html>
(4)基本结构:
<!-- 将文档声明为HTML5版本 --> <!DOCTYPE html> <!--html是唯一的根--> <html> <head> <!--设置文档标题、编码、引入的资源--> </head> <body> <!--页面上要呈现的内容--> Hello HTML! </body> </html>
(5)<head>标签:
是所有头部元素的容器。
<head>可以有元素<title>,<meta>,<link>,<style>,<script>。用于设置文档标题、编码、引入的资源。
<title>定义页面标题,若不设置,则默认为当前文件名。
<meta>提供关于HTML文档的元数据,该数据不会显示在页面上,但对于机器是可读的。常见属性有:content, http-equiv, charset。用于规定页面的描述、关键字、文档的作者、最后修改的时间以及其他元数据。
<!-- 将文档声明为HTML5版本 --> <!DOCTYPE html> <!--html是唯一的根元素 --> <html> <head> <!-- 设置标题、编码、引入的资源 --> <!-- 设置文档标题 --> <title>我的第一个网页</title> <!-- 设置编码格式, 要和文档保存的编码格式相同--> <meta charset = "utf-8"/> </head> <body> <!-- 文档呈现的内容 --> Hello HTML! </body> </html>
三、HTML标签
1、文本元素(文本标签)
(1)作用:
文本是网页上的重要组成部分,直接书写的文本会使用浏览器的默认样式显示。
(2)分类:
标题元素(<h1> ~ <h6>)。
段落元素(<p>)。
列表元素(<ol> <li>, <ul> <li>)。
分区元素(<div>, <span>)。
行内元素(<i>, <em>, <br>等)。
(3)标题元素(<h1> ~ <h6>):
标题元素使文字突出,一般用于文章的标题,显示不同的字体大小。
语法规则:
<h#></h#>,其中# = 1,2,3,4,5,6。其中<h1>为最大号标题。
(4)段落元素(<p>):
段落元素提供了结构化文本的方式。文本会用单独的段落显示,与前后文本分开,并添加一段额外的垂直空白距离。可以使用<br>主动换行。
语法规则:
<p>文本内容</p>。
(5)列表元素(<ol> <li>, <ul> <li>):
列表将具有相似特征或者具有先后顺序的几行文字进行排序。所有的列表都由列表类型和列表项组成。
列表类型:有序列表(<ol>),无序列表(<ul>)。
列表项指:<li>,用于显示具体的列表内容。
语法规则:
【有序列表(在文本内容前加数字表示顺序):】 <ol> <li>文本内容</li> <li>文本内容</li> </ol> 【无序列表(在文本内容前加小圆点表示无序):】 <ul> <li>文本内容</li> <li>文本内容</li> </ul> 【有序、无序嵌套:】 <ol> <li> 文本内容 <ul> <li>文本内容</li> <li>文本内容</li> </ul> </li> <li>文本内容</li> </ol>
(6)分区元素(<div>, <span>)
分区元素用于元素分组,常用于页面布局,便于开发。
语法规则:
【块分区元素(会影响页面布局)】: <div>文本内容</div> 【行内分区元素(设置同一行文字中的不同格式)】: <span>文本内容</span>
(7)行内元素(<i>, <em>, <br>等)
<i>, <em>元素用来定义斜体字。 <b>, <strong>元素用来定义粗体字。 <del>元素用来定义带删除线的文字。 <u>元素用来定义带下划线的文字。 <br>元素用来换行。 表示空格(其分号不能少)。 < 表示小于号(<)。 > 表示大于号(>)。 & 表示(&)。 © 表示版权(©)。
2、图像、超链接、锚点、表格
(1)图像<img>:
使用<img>元素将图像添加到页面。
必须存在的属性:src(添加路径)。常用属性:width, height。
语法规则:
<img src="" width="" height=""> src属性:指图片路径。 width属性:指图片宽度。 height属性:指图片高度。
(2)超链接<a>:
使用<a>元素创建一个超链接。
语法规则:
<a href ="" target = "">文本</a>。 href属性:指链接的URL。 target属性:指目标的打开方式,可取值为_blank(打开新窗口), _self(当前窗口打开)等。
(3)锚点(特殊的超链接):
锚点是文档中某行的一个记号,用于链接(跳转)到文档中的某个位置。
语法规则:
定义锚点: <a name = "name1">锚点一</a> 链接到锚点(要在锚点名前加#): <a href = "#name1">回到锚点一</a> 默认的链接为回到顶部,不需要设置锚点。 格式: <a href = "#"></a>
(4)表格:
表格通常用来组织结构化的信息。表格是由一些矩形框(单元格)按照从左到右,从上到下的顺序排列而成的。表格的数据显示在单元格内。
表格元素为: table(表格), td(列,是单元格), tr(行)。 默认情况下,表格的边线看不见,可以给table统一设置边线可见。 cellpadding:单元格边框与内容间的间距。 cellspacing:单元格之间的间距。 常用属性: <table>常用属性:border, width, height, align, cellpadding, cellspacing. <tr>常用属性:align, valign . <td>常用属性:align, valign, width, height, colspan, rowspan。 rowspan:跨行,使当前单元格沿着垂直方向延伸,值为合并单元格数。 colspan:跨列,使当前单元格沿着水平方向延伸,值为合并单元格数。 caption元素:为表格定义标题,默认居中显示在表格上方。 举例: <!-- 创建一个两行两列的表格 --> <table border="1px" width="100px" height="100px"> <caption> 测试 </caption> <tr> <td colspan="2" align="center"> aaa </td> </tr> <tr> <td> ccc </td> <td> ddd </td> </tr> </table> 表格行分组: 表格可以分成3部分:表头,表主体和表尾。分组的目的是为了方便对组内元素设置样式以及编程(JS)。 表头行分组:<thead></thead> 表主体行分组:<tbody></tbody> 表尾行分组:<tfoot></tfoot> 【举例:】 <!-- 创建一个两行两列的表格,使用<tbody> --> <table border="1px" width="100px" height="100px"> <caption> 测试 </caption> <tbody> <tr> <td colspan="2" align="center"> aaa </td> </tr> <tr> <td> ccc </td> <td> ddd </td> </tr> </tbody> </table>
3、表单<form>
(1)表单的作用:
表单用于显示、收集信息,并提交信息到服务器。表单是浏览器向服务器传输数据的手段。
表单处理:
实现数据交换的可见界面元素,比如文本框、按钮等。
提交后的表单处理(不可见)。
(2)表单<form>:
使用<form>元素创建表单。并在<form>元素中添加表单控件元素。即form元素在页面上有固定的表单范围,其内部的空间才可提交。
主要属性:
action:定义表单被提交时发生的动作,通常包含服务方脚本的URL(JSP或PHP等)。
method:指出表单数据的提交方式,取值为get或者post。
enctype:表单数据进行编码的方式。
name:表单的名称。
(3)表单控件:
表单控件元素是包含在表单元素中具有可视化外观的HTML元素,用于访问者输入信息。即表单控件是一种HTML元素,是信息输入项。表单可以包含很多不同类型的表单控件。
常用表单控件:
input元素:文本输入控件、按钮、单选和复选框、选择框、文件选择框和隐藏控件等。
textarea元素:定义多行的文本输入控件。
select和option元素:可创建单选或多选菜单。
(4)<input>标签:
<input>元素用于收集用户信息。该元素是一个单标记,即格式为<input />。
属性: type:根据不同type值,可以创建各种类型的输入字段,比如文本框、复选框等。 value:控件的数据。 name:控件的名称。 文本框与密码框: 文本框:<input type="text" /> 密码框:<input type="password" /> 【主要属性:】 value属性:由访问者*输入的任何文本。 maxlength属性:限制输入的字符数。 readonly属性:设置文本控件可读。 【举例:】 <!-- label是表单中的文本,通过for属性可以绑定到input元素上,使得点击此label时,相当于点击了对应的input。id相当于元素的身份证号,用来引用该元素 --> <label for="userName">账号:</label> <input type="text" id="userName"/> <label for="pwd">密码:</label> <input type="password" id="pwd" /> 单选框与复选框: 单选框:<input type="radio" /> 复选框:<input type="checkbox" /> 【主要属性:】 value:文本,当提交form时,如果选中此单选按钮,那么该value值将被发送到服务器。 name:用于实现分组,一组单选框或者复选框名称必须相同。 checked:设置选中。 【举例:】 <!-- 单选框(按钮) ,一组单选框间需彼此互斥,需使其同名,即radio同名.checked表示默认选项(默认选中)--> <input type="radio" name="sex" id="male" checked/> <label for="male">男</label> <input type="radio" name="sex" id="female" /> <label for="female">女</label> <!-- 多选框(按钮)name属性用于分组,id用于标识 --> <input type="checkbox" name="favorites" id="basketball" /> <label for="basketball">篮球</label> <input type="checkbox" name="favorites" id="football" /> <label for="football">足球</label> <input type="checkbox" name="favorites" id="volleyball" /> <label for="volleyball">排球</label> 提交、重置、普通按钮: 提交按钮:<input type="submit" />传送表单数据到服务器端或其他程序进行处理。 重置按钮:<input type="reset" />清空表单数据,并将表单控件设置为最初的默认值。 普通按钮:<input type="button" />用于执行客户端脚本。 【主要属性:】 value:按钮的标题文本,即按钮上显示的文本内容。 【举例:】 <input type="submit" value="提交"/> <input type="reset" value="重置"/> <input type="button" value="取消"/> 隐藏域、文件选择框: 隐藏域:<input type="hidden" />在表单中包含不希望用户看见的信息。 文件选择框:<input type="file" />选择要上传的文件。 【举例:】 <!-- 隐藏域,即隐藏的文本框(看不见),用来封装一些不希望被用户看到的数据。该控件的数据不需手动输入,而是预置数据。 --> <input type="hidden" value="123"/> <!-- 文件选择框 ,用于提交文件--> <lable for="attachment">上传附件:</lable> <input type="file" id="attachment" />
(5)<textarea>标签:
文本域:相当于多行文本框。 语法:
<textarea>文本</textarea>
主要属性: cols:指定文本区域的列数。 rows:指定文本区域的行数。 readonly:只读。 【举例:】 <!-- 文本域可以使用cols设置列数,使用rows设置行数。文本内容为默认值,可不写。--> <label for="desc">自我介绍</label> <textarea id="desc" cols="30" rows="5"> Hello World! </textarea>
(6)<select>标签:
下拉选项:下拉框,用于多个内容的选择。 语法: <select> <option>---请选择---</option> <option value="1">Java</option> <option value="2">Php</option> <option value="3">.net</option> </select>
四、CSS
1、CSS
(1)什么是CSS?
CSS(Cascading Style Sheets),指层叠样式表。样式通常存储在样式表中,定义如何显示HTML,即CSS给HTML化妆(修饰)的。
(2)如何使用CSS?
内联方式:即样式表定义在单个HTML元素中。
内部样式表:样式定义在HTML页的头元素中。
外部样式表(推荐使用):将样式定义在一个外部的CSS文件中(.css文件)。由HTML页面引用样式表文件。
(3)CSS内联样式:
样式定义在HTML标签的style属性里。
语法规则:
1、只需将分号隔开的一个或多个属性/值对作为元素的style属性的值。 2、属性和属性值间用(:)冒号连接。 3、多个属性间用(;)分号隔开。 【格式:】 <h1 style="color:red;">内联样式演示</h1>
(4)CSS内部样式:
样式定义在HTML文档的头部标签<head>的<style>标签内。
语法规则:
在<head>元素里添加<style>元素,然后在<style>元素里添加样式规则。 【格式:】 <head> <title>CSS演示</title> <meta charset="utf-8" /> <!-- 内部样式 --> <style type="text/css"> h2{ color:blue; } </style> </head>
(5)CSS外部样式:
样式定义在独立的(.css)文件里。是一个纯文本文件,文件后缀名(.css)。该文件只包含样式规则。然后在HTML的头部标签<head>中通过<link>元素来引用。
语法规则:
<!-- 外部样式,需引用(.css)文件。 rel表示引用的是什么文件,type表示引用的格式。href表示路径--> <link rel="stylesheet" type="text/css" href="../css/CSS演示.css"/>
(6)CSS规则特性:
继承性: 父元素的CSS声明可以被子元素继承、比如字体、颜色等。
层叠性: 同一个元素若存在多个CSS规则,对于不冲突的声明可以进行叠加。
优先级: 同一个元素若存在多个CSS规则,对于冲突的声明可以以优先级高的为准。即相同的样式,如果重复定义,则以最后一次定义为准(就近原则)。
(7)CSS写法:
CSS由CSS选择器以及CSS声明组成。
选择器用于定位到某个元素。
声明用于给元素附加效果。
2、CSS选择器
(1)分类:
元素选择器。
类选择器。
id选择器。
选择器组。
派生选择器。
伪类选择器。
(2)元素选择器:
通过元素名(标签名)来选择CSS作用的目标。
格式: p{ } 使用情景: 如果页面中有多个相同元素需要相同的样式效果,那么可以使用元素选择器。 【举例:】 <style type="text/css"> p{ color:red; } </style>
(3)类选择器:
类选择器允许以一种独立于文档元素的方式来指定样式。所有能附带class属性的元素都可以使用此样式声明,并将元素的class属性值设置为样式类名。
格式: .className{ } 使用情景: 如果页面中有不同的元素需要相同的样式效果,可以使用类选择器。 【举例:】 <style type="text/css"> .important{ color:red; } </style> <h1 class = "important">Hello</h1> <h2 class = "important">World</h2> 可以将类选择器和元素选择器结合,以实现一个元素中不同样式的控制。 【格式:】 元素选择器.className{ } 【举例:】 <style type="text/css"> p.test1{ color : red; } p.test2{ color : yellow; } </style> <p class = "test1">Hello</p> <p class = "test2">Hello</p>
(4)id选择器:
id选择器以一种独立于文档元素的方式来指定样式。仅作用于id的值。
格式:
【格式:】 #id{ } 【举例:】 <style type="text/css"> #d1{ color:red; } </style> <div id="d1">HelloWorld</div>
(5)选择器组:
选择器组是以逗号隔开的选择器列表,将一些相同的规则作用于多个元素。
【格式:】 .className, #id{ } 【举例:】 <style type="text/css"> .test1, #e2{ color : blue; } </style> <p class = "test1" id="e1">Hello</p> <p class = "test2" id="e2">Hello</p>
(6)派生选择器:
派生选择器用来选择子元素。
分类:
后代选择器:选择某元素的所有后代(子孙)元素。(以空格隔开)
子元素选择器:选择某元素的所有子(儿子)元素。(以>隔开)
【举例:后代选择器】 <style type="text/css"> /*将 id=d1 元素中 所有元素中的 p元素 改为红色*/ #d1 p{ color:red; } </style> <div id="d1"> <p id="p1">Hello</p> <p id="p2">Hello</p> </div> 【举例:子元素选择器】 <style type="text/css"> /*将 id=d1 元素中 id=p1 的元素 改为红色*/ #d1>#p1{ color:red; } </style> <div id="d1"> <p id="p1">Hello</p> <p id="p2">Hello</p> </div>
(7)伪类选择器:
伪类用于设置同一元素在不同状态下的样式。
常用伪类: :link:向未被访问的超链接添加样式。 :visited:向已被访问的超链接添加样式。 :active:向被激活的元素添加样式。 :hover:当鼠标悬停在元素上方时,向该元素添加样式。 :focus:当元素获取焦点时,向该元素添加样式。 【举例:】 <!DOCTYPE html> <html> <head> <title>CSS演示</title> <meta charset="utf-8" /> <style type="text/css"> /*浏览器从未点击过的超链接,显示相应样式*/ a:link{ color:blue; } /*浏览器点击过的超链接,显示相应样式*/ a:visited { color:red; } /*选择激活(正被点击)的元素,正被点击的话改变样式*/ #btn:active{ background: pink; } /*选择鼠标悬停的目标,鼠标悬停在目标上方会改变样式*/ img:hover{ width:200px; height:200px; } /*选择有焦点的文本框,点击选中后会改变相应样式*/ #t1:focus{ background-color:red; } </style> </head> <body > <p> <!--测试(:link)与(:visited),若超链接被点击过,则显示红色,未被点击过,则显示蓝色--> <a href="http://www.baidu.com" target="blank">百度</a> </p> <p> <!--测试(:active),若点击按钮,则变粉红色,不点击会恢复原来的颜色--> <input type="button" value="点我啊" id="btn" /> </p> <p> <!--测试(:hover),鼠标放在图片上,则图片会改变大小--> <img src="../images/pig.png"> </p> <p> <!--测试(:focus),鼠标点击后(获取焦点),则背景改为红色--> <input type="text" id="t1" /> </p> </body> </html>
3、常用CSS声明(border, box, background, table, font)
(1)样式规则:
样式单位:
%:百分比。(常用,动态适应大小)
in:英寸。
cm:厘米。
mm:毫米。
pt:磅(1pt等于 1/72 英寸)。
px:像素(计算机屏幕上的一个点)。(常用,固定大小)
em:1em相当于当前字体尺寸,2em为当前尺寸的两倍。(常用,根据文字设置大小)
样式颜色:
#rrggbb:十六进制数。如#ff0000.
#rgb:简写的十六进制数。如#f00,等价于#ff0000
rgb(x, y, z):RGB的值,如rgb(255, 0 , 0)。
rgb(x%, y% , z%):RGB的百分比值,如rgb(100%, 0%, 0%)。
表示颜色的英文单词,如red。
【举例:】
黑色(rgb(0,0,0)),白色(rgb(1,1,1)),灰色(rgb(a,a,a))
(2)boeder(边框)
border属性:用来设置元素的边框。
格式: 【四边整体设置:】 格式: border: width值 style值 color值; 【四边单独设置:】 格式: border-left: width值 style值 color值; border-right: width值 style值 color值; border-top: width值 style值 color值; border-bottom: width值 style值 color值; 【style值:】 dashed 用于表示虚线边框 solid 用于表示实线边框 即: border: 1px dashed #ccc;表示灰色虚线边框。 border: 1px solid #ccc;表示灰色实线边框。 【举例:】 <style type="text/css"> /*dashed为虚线,solid为实线*/ p{ border: 1px solid red; width:100px; height:100px; } h1{ border-left: 15px solid #ccc; border-bottom: 2px solid red; } </style> 数据溢出元素框处理:(overflow) visible:默认格式,显示溢出的元素。 hidden:隐藏,不显示溢出的元素。 scroll:加滚动条,无论是否数据溢出,都加滚动条。 auto:自动,若溢出,则加滚动条,否则,不加。 【写法:】 【默认情况:(visible)】 div{ width:300px; height:50px; border:1px solid blue; } 【隐藏数据:(hidden)】 div{ width:300px; height:50px; border:1px solid blue; overflow:hidden; } 【加滚动条:(scroll)】 div{ width:300px; height:50px; border:1px solid blue; overflow:scroll; } 【自动加滚动条:(auto)】 div{ width:300px; height:50px; border:1px solid blue; overflow:auto; }
(3)box
框模型(box model)定义了元素框处理元素的内容、内边距、边框、外边距的方式。
内边距(padding):元素的内容与border间的距离。默认为0 。
外边距(margin):border与另外一个元素的距离。默认为0 。
注:增加内边距、外边距、边框的尺寸不会影响元素的内容尺寸,但会增加元素实际总尺寸。元素的内容尺寸与width与height有关。
【四边整体设置1:】
格式:
padding:width值;
margin:width值;
【四边整体设置2:顺序为上右下左(推荐)】
格式:
padding:width值 width值 width值 width值;
margin:width值 width值 width值 width值;
【四边整体设置3:对边设置】
格式:
padding:width值 width值;
margin:width值 auto;
【四边单独设置:】
格式:
padding-top:width值;
padding-right:width值;
padding-bottom:width值;
padding-left:width值;
margin-top:width值;
margin-right:width值;
margin-bottom:width值;
margin-left:width值;
(4)background
背景色:
background-color属性用于给元素设置背景色,该属性接受任何合法的颜色值。
【举例:】
body{
background-color:#ccc;
}
背景图片:
background-image属性用于设置背景图片。默认值为none,表示背景上没有放置任何图像。若想设置一个背景图像,需使用 url 且添加一个相对URL(相对路径)或者绝对URL。
默认情况下,背景图片在水平和垂直方向上重复出现,类似于“墙纸”的效果。
background-repeat属性可以控制背景图片的平铺效果。
background-repeat:repeat;默认值,在水平和垂直方向上重复,为重复值。
background-repeat:repeat-x;仅在水平方向重复。
background-repeat:repeat-y;仅在垂直方向重复。
background-repeat:no-repeat;仅显示一次。
background-position属性用于改变背景图片在元素中的位置。
取值为:x% y% 或 x y 或 left\center\right\top\bottom等
注:
background: url("../images/hero0.png") no-repeat center;
等价于
background-image: url("../images/hero0.png");
background-repeat: no-repeat;
background-position: center;
默认情况下,背景图像会随着页面的滚动而滚动,可以通过background-attachment属性来改变此特征,
默认为scroll,即背景随文档滚动。
若取值为fixed,则背景图片固定,不随页面滚动,通常用于实现“水印”效果。
即:
body{
background-attachment:fixed;
}
(5)font
用于格式化文本信息。
指定字体(可以指定多个字体):font-family:value1, value2;
设置字体大小:font-size:value;
将字体加粗:font-weight:normal/bold;
设置文本颜色:color:value;
设置文本排列:text-align:left\right\center。
文字修饰:text-decoration:none\underline.
行高:line-height:value(1.6em); eg: line-height: 1.6em;
注:若行高与元素等高时,文字居中显示(文字默认不居中)。
首行文本缩进:text-indent:value(2em); eg: text-indent: 2em;
(6)table
表格同样也有box框(边框、内边距、外边距、宽、高)以及文本格式化属性。
若设置了单元格的边框,则相邻单元格的边框会单独显示(默认,即边框与边框间有缝隙)。
使用border-collapse属性可以合并相邻的边框(即边框间无缝隙)。
即
border-collapse: separate/collapse;
4、定位(流定位、浮动定位、相对定位、绝对定位)
(1)定位
什么是定位:
指的是定义元素框 相对于 其正常位置应该出现的位置、或者相对于父元素、另一个元素甚至浏览器窗口所在的位置。
分类:
流定位(默认)
浮动定位
相对定位
绝对定位
固定定位。
属性:
position:规定元素的定位类型,取值为:static/relative/absolute/fixed。操作流定位、相对定位、绝对定位、固定定位。
偏移属性:用于定义元素框的偏移位置,取值为:top/bottom/left/right。
z-index:设置元素的堆叠顺序。(序号越大,越在上层,即覆盖其他元素)
float:浮动定位的属性,用于左、右浮动。
clear:浮动定位的属性,用于消除浮动的影响。
(2)流定位(默认)
页面中的块级元素框从上到下一个接一个排列。每一个块级元素都会出现在一个新的行中。元素框间的垂直距离是由框的垂直外边距计算出来的。
行内元素在一行中从左到右排列,水平布置,不从新行开始,可以使用水平内边距、边框和外边距来调整它们的间距。
(3)浮动定位:(float,clear)
浮动定位指让元素脱离普通的流定位,将浮动元素放置在父元素的左边或者右边,浮动元素依旧存在于父元素内。
浮动的框可以向左或者向右移动,直到它的外边缘碰到父元素或者另外一个浮动框为止。经常用来实现特殊的定位效果。
使元素实现水平布局的效果。
float属性定义元素在哪个方向浮动,在CSS中,任意元素均可浮动。
float: none/left/right。不浮动/左浮动/右浮动
【格式:】
.d1, .d2, .d3{
float:left;
}
clear属性用来清除浮动所带来的影响。消除一个元素A浮动对另一个元素B的影响,操作的是元素B,只能消除对元素B的影响,不能消除元素A自身的影响。(可能不能完全消除所有影响)
clear:none/left/right/both;定义元素的哪边不允许出现浮动元素。
【格式:】
p{
clear:left;
}
浮动定位举例:(右浮动)
假如父元素有三个元素框,其由上到下排序,若将框1向右移动,则框1脱离并向右移动,直到碰到父元素的边框为止。且每次浮动完,父元素会收缩。
(4)相对定位(position:relative)
元素所占的空间不释放,元素框会相对于它原位置偏移某个距离。可以设置水平或者垂直位置,让元素相对于它的起点进行移动。
常用于照片的抖动效果。
【设置元素的相对定位:】 1、先设置position属性值为relative。 2、然后使用left属性或者right属性设置水平方向的偏移量,也可使用top属性或者bottom属性设置垂直方向的偏移量。 【格式:】 div{ position:relative; left:50px; top:50px; } 【举例:照片墙效果】 <!DOCTYPE html> <html> <head> <title>照片墙效果</title> <meta charset="utf-8" /> <style type="text/css"> body{ background-color: #300; } ul{ width:780px; margin:10px auto; /*去掉li前的符号*/ list-style-type: none; } li{ background-color: #fff; border: 1px solid #ccc; width:218px; margin: 10px; padding: 10px; float:left; } li p{ text-align: center; } li:hover{ position: relative; left:-5px; top:-5px; } </style> </head> <body> <!-- 照片墙,首先是一个无序列表li,用于保存照片,(此时排列顺序由上到下) 然后使用左浮动,将图片进行排列, (此时排列顺序从左到右,从上到下) 当鼠标悬浮在图片上时,让图片偏移一点点(使用相对定位)。--> <ul> <li> <img src="../images/01.jpg"> <p>啊</p> </li> <li> <img src="../images/02.jpg"> <p>在苍茫的大海上</p> </li> <li> <img src="../images/03.jpg"> <p>狂风卷积着乌云</p> </li> <li> <img src="../images/04.jpg"> <p>在乌云和大海之间</p> </li> <li> <img src="../images/05.jpg"> <p>有只海燕</p> </li> <li> <img src="../images/06.jpg"> <p>来为我牵线</p> </li> </ul> </body> </html>
(5)绝对定位(position:absolute)
将元素内容从当前定位中移出,并释放空间。
使用偏移属性来固定该元素的位置。位置 相对于最近的已定位(相对定位)祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(比如body元素)。
相对定位是相对于自身产生偏移,绝对定位是特殊的相对定位,相对于已定位的祖先元素产生偏移。
常用于文字在图片的各种位置上显示。
【设置元素的绝对定位:】
1、首先设置position属性的值为absolute。
2、然后使用left属性或者right属性设置元素的水平位置。(left取负值则向左移,right取负值向右移)
3、可以使用top属性或者bottom属性设置元素的垂直位置。
【格式:】
div{
position:absolute;
left:50px;
top:50px;
}
(6)固定定位(position:fixed)
将元素内容固定到页面的某个位置。此时元素从普通流中完全移出,不占用页面的空间,且用户滚动页面时,元素框不会随着移动。
常用于“水印”的效果。与背景图片中的background-attachment: fixed;功能类似。
常用于“跳转效果”,即页面滚动,其一直显示在某处,点击会跳转到顶部。
【 设置固定定位:】
1、首先设置position属性值为fixed。
2、通过left或right或top或bottom这些偏移属性来定义元素的位置。
【格式:】
div{
position:fixed;
left:50px;
top:50px;
}
(7)堆叠顺序(z-index)
一旦修改元素的定位方式,那么元素间可能存在堆叠情况。
使用z-index属性来控制元素框出现的重叠顺序。
常用于多个页面相互覆盖的情况,根据操作显示不同的页面。
z-index属性:
值为数值:数值越大,表示堆叠的顺序越高,即在页面中显示的越上方,离用户近。
可以将其设置成负值,表示离底层越近。
5、list-style-type、cursor
(1)列表样式(list-style-type、list-style-image)
list-style-type属性用于控制列表中列表项标志的样式。
无序列表(ul):出现在列表旁的是圆点。
【取值为:】
none:无标记。
disc:实心圆(默认值)。
circle:空心圆。
square:实心块。
【格式:】
.ul{
list-style-type:circle;
}
有序列表(ol):出现的可能是字母、数字或其他计数体系的一个符号。
【取值为:】
none:无标记。
decimal:数字(如1,2,3,4),为默认值。
lower-roman:小写罗马数字。(i, ii, iii, iv, v)
upper-roman:大写罗马数字。(I, II ,III, IV, V)
【格式:】
.ol{
list-style-type:decimal;
}
list-style-image属性是使用图像来代替列表项的标志。
【取值为:】
url(""),指定某图像作为标志。
【格式:】
.image{
list-style-image:url('');
}
(2)cursor
默认情况下,光标会根据用户的操作发生改变,当鼠标悬停在一个链接上时,光标由指针形状改为手指形状。当鼠标悬停在文本区域时,光标由指针改为I形状。当鼠标悬停在一个按钮上时,光标会显示为箭头。
可以使用cursor属性指定鼠标的光标形状,以提示用户进行操作。cursor属性定义了鼠标指针放在某一个元素边界范围内时所用的光标形状。
取值:
default 默认光标(通常是一个箭头)
pointer 光标呈现为指示链接的指针(一只手)
crosshair 光标呈现为十字线。
text 此光标指示文本
wait 此光标指示程序正忙(通常是一只表或沙漏)。
help 此光标指示可用的帮助(通常是一个问号或一个气球)。