一、前端页面开发流程
1、创建页面项目目录(css文件夹,images文件夹,js文件夹,html文件)
2、使用Photoshop对效果图切图,切出网页制作中需要的小图片
3、将装饰类图像合并,制作成雪碧图
4、结合Photoshop和代码编辑器,参照效果图,进行html和css代码书写,制作页面
二、前端主体结构及分工
1、HTML:页面结构
2、CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果
3、JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能
三、页面布局的方式
1、table布局:通过table元素将页面空间划分成若干个单元格,将文字或图片等元素放入单元格中,隐藏表格的边框,从而实现布局。这种布局方式也叫传统布局,目前主要使用在EDM(广告邮件中的页面)中,主流的布局方式不用这种。
2、HTML+CSS布局(DIV+CSS):主要通过CSS样式设置来布局文字或图片等元素,需要用到CSS盒子模型、盒子类型、CSS浮动、CSS定位、CSS背景图定位等知识来布局,它比传统布局要复杂,目前是主流的布局方式。
四、详叙——HTML(负责文档的结构和内容)
1、html基本结构
<!DOCTYPE html> 文档声明
<html lang="en"> 定义网页的语言
<head> 负责对网页进行一些设置以及定义标题
<meta charset="UTF-8">
<title>网页标题</title>
</head>
<body>
编写网页显示内容
</body>
</html>
注:“<head>”标签里面负责对网页进行一些设置以及定义标题,设置包括定义网页的编码格式,外链css样式文件和javascript文件等,设置的内容不会显示在网页上,标题的内容会显示在标题栏;
2、html文档类型
目前常用的两种文档类型是 xhtml 1.0 和 html5(此版本使用越来越多);
3、html常用标签
- 标题标签:<h1>、<h2>、<h3>、<h4>、<h5>、<h6>
- 段落标签:<p> — 默认有上下间距
- 换行标签:<br />
- 块标签(块元素):<div>
- 行内标签(行内元素):
<span> :没有具体语义
<em> :表示语气中的强调词
<i> :表示专业词汇
<b> :表示文档中的关键字或者产品名
<strong>:表示非常重要的内容
- 图像标签:<img>
<img src="images/pic.jpg" alt="产品图片" />
src属性 定义图片的引用地址
alt属性 定义图片加载失败时显示的文字,搜索引擎会使用这个文字收录图片;此属性非常重要。
- 链接标签: <a>
<a href="此处输入网址" title="跳转的网站">网站名</a>
href属性 定义跳转的地址
title属性 定义鼠标悬停时弹出的提示文字框
target属性 定义链接窗口打开的位置
target="_self" 缺省值,新页面替换原来的页面,在原来位置打开
target="_blank" 新页面会在新开的一个浏览器窗口打开
- 列表标签:<ol>、<li>;<ul>、<li>
1. 有序列表:
<ol>
<li>列表文字一</li>
<li>列表文字二</li>
</ol>
2. 无序列表(使用比较多):
<ul>
<li><a href="#">新闻标题一</a></li>
<li><a href="#">新闻标题二</a></li>
</ul>
4、 html表单
<form>——定义整体的表单区域
<form action="http://www..." method="get"></form>
action属性 定义表单数据提交地址
method属性 定义表单提交的方式,一般有“get”方式和“post”方式
<label>——为表单元素定义文字标注
<label>姓名:</label><input type="text" name="username" />
<label>密码:</label><input type="password" name="password" />
<label>性别:</label>
<input type="radio" name="gender" value="0" /> 男
<input type="radio" name="gender" value="1" /> 女
<input>——定义通用的表单元素
<input type=" " name=" " value=" ">
- value属性 定义表单元素的值
- name属性 定义表单元素的名称,此名称是提交数据时的键名
- type属性
type="text" 定义单行文本输入框
type="password" 定义密码输入框
type="radio" 定义单选框
type="checkbox" 定义复选框
type="file" 定义上传文件
type="submit" 定义提交按钮
type="reset" 定义重置按钮
type="button" 定义一个普通按钮
type="image" 定义图片作为提交按钮,用src属性定义图片地址
type="hidden" 定义一个隐藏的表单域,用来存储值
<textarea>—— 定义多行文本输入框
<textarea name="about"></textarea>
<select>—— 定义下拉表单元素
<option>与<select>配合——定义下拉表单元素中的选项
<select name="site">
<option value="0">北京</option>
<option value="1">上海</option>
<option value="2">广州</option>
<option value="3">深圳</option>
</select>
5、html表格
<table>标签:声明一个表格
<table width="800" height="800" border="0" cellpadding="0" cellspacing="0" align="center">
border属性 定义表格的边框,设置值是数值
cellpadding属性 定义单元格内容与边框的距离,设置值是数值
cellspacing属性 定义单元格与单元格之间的距离,设置值是数值
align属性 设置整体表格相对于浏览器窗口的水平对齐方式,设置值有:left | center | right
<tr>标签:定义表格中的一行
<tr>
<td align="right"><img src="images/person.png"></td>
</tr>
<td>和<th>标签:定义一行中的一个单元格
td代表普通单元格,th表示表头单元格
align 设置单元格中内容的水平对齐方式,设置值有:left | center | right
valign 设置单元格中内容的垂直对齐方式 top | middle | bottom
colspan 设置单元格水平合并,设置值是数值
rowspan 设置单元格垂直合并,设置值是数值
五、详叙——CSS(对页面进行加样式)
注:
css又称层叠样式表;
元素可称为盒子,也可称为标签
1、css的定义方法
选择器 { 属性:值; 属性:值; 属性:值;}
选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性每个属性有一个或多个值;
div{
width:100px;
height:100px;
color:red
}
2、css页面引入三种方法
1、外联式:通过link标签,链接到外部样式表到页面中;开发中采用此方式
<link rel="stylesheet" type="text/css" href="css/main.css">
2、嵌入式:通过style标签,在网页上创建嵌入的样式表;
<style type="text/css">
div{ width:100px; height:100px; color:red }
......
</style>
3、内联式:通过标签的style属性,在标签上直接写样式;基本不采用
<div style="width:100px; height:100px; color:red ">......</div>
3、常用css文本设置
- 关于文字的设置:
同时设置文字的几个属性的写法:font:是否加粗 字号/行高 字体;
如: font:normal 12px/36px '微软雅黑';
注:涉及兼容问题,建议按上述顺序写
* 'line-height '—— 设置文字的行高,'相当于设置文字垂直居中',原理是在每行文字的上下同时加间距, 如:line-height:24px;
* 'text-align '—— 设置文字水平对齐方式,如 'text-align:center 设置文字水平居中'
* color —— 设置文字的颜色,如: color:red;
* font-size ——设置文字的大小,如:font-size:12px;
* font-family ——设置文字的字体,如:font-family:' 微软雅黑 ';
* font-style ——设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜
* font-weight ——设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
* text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉
* text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px
* text-overflow 设置一行文字宽度超过容器宽度时的显示方式,如:text-overflow:clip 将多出的文字裁剪掉 text-overflow:ellipsis 将多出的文字显示成省略号
* list-style 一般用来设置去掉ul或者ol列表中的小圆点或数字 如:list-style:none
* white-space 一般用来设置文本不换行,如:white-space:nowrap 设置文本不换行 一般与text-overflow和overflow属性配合使用来让一行文字超出宽度时显示省略号
二、关于盒子的设置
* width 设置盒子内容的宽度,如: width:100px;
* height 设置盒子内容的高度,如: height:100px;
* border 同时给盒子设置四个相同的边框的写法;如:border:1px solid #000 设置盒子四个边都是1像素宽的黑色实线;
* border-top 设置盒子顶部边框的三个属性 如:border-top:5px solid red;设置盒子顶部边框为3像素宽的红色的实线;
* border-left 设置盒子左边边框的三个属性 如:border-left:3px dotted red;设置盒子左边边框为3像素宽的红色的点线;
* border-right 设置盒子右边边框的三个属性 如:border-right:2px dashed red;设置盒子右边框为2像素宽的红色的虚线;
* border-bottom 设置盒子底部边框的三个属性 如:border-bottom:1px solid red;设置盒子底部边框为1像素宽的红色的实线;
* padding 设置盒子四个边的内边距 如:padding:10px 20px 30px 40px 分别设置盒子上边(10px)、右边(20px)、下边(30px)、左边(40px)的内边距(顺时针);
* margin 设置盒子四个边的外边距 如:margin:10px 20px 30px 40px 分别设置盒子上边(10px)、右边(20px)、下边(30px)、左边(40px)的外边距(顺时针),详细设置说明;
* overflow 设置当子元素的尺寸超过父元素的尺寸时,盒子及子元素的显示方式 如:overflow:hidden 超出的子元素被裁切;
* display 设置盒子的显示类型及隐藏,如:display:block 将盒子设置为以块元素显示 display:none 将元素隐藏;
* float 设置元浮动 如:float:left 设置左浮动 float:right 设置右浮动,详细设置说明:[元素浮动](../../02/mds/section03.html)
* clear 在盒子两侧清除浮动 如:clear:both 在盒子两侧都不允许浮动;
* position 设置元素定位 如:position:relative 设置元素相对定位;
* background 设置元素的背景色和背景图片,如:background:url(bg.jpg) cyan;设置盒子的背景图片为bg.jpg,背景色为cyan;
* ' background-size 设置盒子背景图的尺寸,如:background-size:30px 40px;设置背景图的尺寸宽为30px,高为40px,这个属性不能合到background属性中 ';
* border-radius 设置盒子的圆角 如:border-radius:10px 设置盒子的四个角为10px半径的圆角;
* box-shadow 设置盒子的阴影,如:box-shadow:10px 10px 5px 2px pink;设置盒子有粉色的阴影;
* transition 设置盒子的过渡动画,如:transition:all 1s ease;设置元素过渡动画为1秒完成,所有变动的属性都做动画;
* animation 设置盒子的关键帧动画;
* transform 设置盒子的位移、旋转、缩放、斜切等变形,如:transform:rotate(45deg);设置盒子旋转45度;
* box-sizing 设置盒子的尺寸计算方式,如:box-sizing:border-box 将盒子的尺寸计算方法设置为按边框计算,此时width和height的值就是盒子的实际尺寸;
三、其他设置:
* opacity 设置元素整体透明度,一般为了兼容需要加上filter属性设置 如:opacity:0.1;filter:alpha(opacity=10)
* ' cursor 设置鼠标悬停在元素上时指针的形状 如:cursor:pointer 设置为手型';
* outline 设置文本输入框周围凸显的蓝色的线,一般是设为没有 如:outline:none
* border-collapse 设置表格边框是否合并,如:border-collapse:collapse,将表格边框合并,这样就可以制作1px边框的表格;
4、css选择器
- 标签选择器——影响范围大,建议尽量应用在层级选择器中;
*{margin:0;padding:0}
div{color:red}
<div>....</div> <!-- 对应以上两条样式 -->
<div class="box">....</div> <!-- 对应以上两条样式 -->
- id选择器——不推荐使用id作为选择器,id名一般给程序用的;
#box{color:red}
<div id="box">....</div> <!-- 对应以上一条样式,其它元素不允许应用此样式 -->
- 类选择器——使用最广泛,通过类名来选择元素;
一个类可应用于多个元素,一个元素上也可以使用多个类
.red{color:red}
.big{font-size:20px}
.mt10{margin-top:10px}
<div class="red">....</div>
<h1 class="red big mt10">....</h1>
<p class="red mt10">....</p>
- 层级选择器
>主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用
.box span{color:red}
.box .red{color:pink}
.red{color:red}
<div class="box">
<span>....</span>
<a href="#" class="red">....</a>
</div>
<h3 class="red">....</h3>
- 组选择器——多个选择器,如果有同样的样式设置,可使用此选择器。
.box1,.box2,.box3{width:100px;height:100px}
.box1{background:red}
.box2{background:pink}
.box2{background:gold}
<div class="box1">....</div>
<div class="box2">....</div>
<div class="box3">....</div>
- 伪类及伪元素选择器——hover/before/after
常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容;
.box1:hover{color:red}
.box2:before{content:'行首文字';}
.box3:after{content:'行尾文字';}
<div class="box1">....</div>
<div class="box2">....</div>
<div class="box3">....</div>
5、CSS盒模型
概念理解:通常把元素叫做盒子;元素在页面中显示成一个方块,类似一个盒子,CSS盒子模型就是使用现实中盒子来做比喻,帮助我们设置元素对应的样式;
①关于盒子的相关设置
——设置宽高:width ; height;
width:200px; /* 设置盒子的宽度,此宽度是指盒子内容的宽度,不是盒子整体宽度 */
height:200px; /* 设置盒子的高度,此高度是指盒子内容的高度,不是盒子整体高度 */
——设置边框:border;
border:10px solid red; /* 设置盒子边宽为10px,实线,红色*/
——设置内间距:padding ;
padding:20px 40px 50px 30px; /* 四个值按照顺时针方向,分别设置的是 上 右 下 左 四个方向的内边距值。 */
padding:20px 40px 50px; /* 设置顶部内边距为20px,左右内边距为40px,底部内边距为50px */
padding:20px 40px; /* 设置上下内边距为20px,左右内边距为40px*/
padding:20px; /* 设置四边内边距为20px */
——设置外间距:margin; 设置原则和padding类似;
延伸:
margin相关技巧
1、设置元素水平居中: margin:x auto;
2、margin负值让元素位移及边框合并
- 盒子的真实尺寸计算公式:
盒子宽度 = width + padding左右 + border左右
盒子高度 = height + padding上下 + border上下
6、块元素,内联元素、内联块元素
- 块元素——行元素
常用的块元素有:div、p、ul、li、h1~h6、dl、dt、dd等;
块元素特性:
1.支持全部的样式
2.如果没有设置宽度,默认的宽度为父级宽度100%
3.盒子占据一行、即使设置了宽度
- 内联元素——行内元素
常用的内联元素:a、span、em、b、strong、i 等;
内联元素特性:
1、支持部分样式(不支持宽、高、margin上下、padding上下)
2、宽高由内容决定
3、盒子并在一行
4、代码换行,盒子之间会产生间距
5、子元素是内联元素,父元素可以用text-align属性设置子元素水平对齐方式
- 内联块元素——行内块元素
是新增的元素类型,现有元素没有归于此类别的
可以用display属性将块元素或者内联元素转化成这种元素;
内联块元素的特性:
1、支持全部样式
2、如果没有设置宽高,宽高由内容决定
3、盒子并在一行
4、代码换行,盒子会产生间距
5、子元素是内联块元素,父元素可以用text-align属性设置子元素水平对齐方式。
7、浮动
- 浮动特性
1、浮动元素有左浮动(float:left)和右浮动(float:right)两种
2、浮动的元素会向左或向右浮动,碰到父元素边界、其他元素才停下来
3、相邻浮动的块元素可以并在一行,超出父级宽度就换行
'4、浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题)'
5、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
6、父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素,父元素需要清除浮动
7、浮动元素之间没有垂直margin的合并
8、定位
- 定位元素的特性:
绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素
- 使用css的position属性来设置元素的定位类型
relative ——相对定位,元素所占据的文档流的位置保留,元素本身相对自身原位置进行偏移。
absolute ——绝对定位,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。
fixed ——固定定位,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位。
static 默认值,没有定位,元素出现在正常的文档流中,相当于取消定位属性或者不设置定位属性。
inherit 从父元素继承 position 属性的值。(不常用 )
定位元素的偏移 :
定位的元素还需要用left、right、top或者bottom来设置相对于参照元素的偏移值。
定位元素层级 :
定位元素是浮动的正常的文档流之上的,可以用z-index属性来设置元素的层级;
demo如下:
.box01{
......
position:absolute; /* 设置了绝对定位 */
left:200px; /* 相对于参照元素左边向右偏移200px */
top:100px; /* 相对于参照元素顶部向下偏移100px */
z-index:10 /* 将元素层级设置为10 */
}
9、css相关属性
display
display属性
display属性是用来设置元素的类型及隐藏的,常用的属性有:
1、none 元素隐藏且不占位置
2、block 元素以块元素显示
3、inline 元素以内联元素显示
4、inline-block 元素以内联块元素显示
background
- 负责给盒子设置背景图片和背景颜色的,background是一个复合属性;
- 常用设置项
background-color 设置背景颜色
background-image 设置背景图片地址
background-repeat 设置背景图片如何重复平铺
background-position 设置背景图片的位置;
background-attachment 设置背景图片是固定还是随着页面滚动条滚动
注:background-position:可以在水平方向设置“left”、“center”、“right”,在垂直方向设置“top”、“center”、“bottom”,
除了设置这些方位词之外,'还可以设置具体的数值'
l例如:“background:url(location_bg.jpg) -110px -150px”,
第一个数值表示背景图相对于自己的左上角向左偏移110px,'负值向左,正值向右;'
第二个数值表示背景图相对于自己的左上角向上偏移150px,'负值向上,正值向下;'
- 实际应用中,综合在一块写,如下:
“background: #00FF00 url(bgimage.gif) no-repeat left center fixed”
“#00ff00”是设置background-color;
“url(bgimage.gif)”是设置background-image;
“no-repeat”是设置background-repeat;
“left center”是设置background-position;
“fixed”是设置background-attachment;
各个设置项用空格隔开,有的设置项不写也是可以的,它会使用默认值。