前端笔记 —HTML&CSS


一、前端页面开发流程

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;

各个设置项用空格隔开,有的设置项不写也是可以的,它会使用默认值。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容