HTML&CSS很久没有用了,再拿出来已是有点生疏,现在将自己总结的主要知识点记录在这里,可以快速回忆。
<span>
标签是没有语义的,它的作用就是为了设置单独的样式用的。如果现在我们想把上一小节的第一段话“美国梦”三个字设置成blue(蓝色),但注意不是为了强调“美国梦”,而只是想为它设置和其它文字不同的样式(并不想让屏幕阅读器对“美国梦”这三个字加重音读出),所以这样情况下就可以用到<span>
标签了,并且在style中修改其样式的使用方法为span{}<q>
标签的意义是引用别人的话,注意这里用<q>
标签的真正关键点不是它的默认样式双引号(如果这样我们不如自己在键盘上输入双引号就行了),而是它的语义:引用别人的话。语义化!!!让网页更好的被搜索引擎理解<blockquote>
的作用也是引用别人的文本。但它是对长文本的引用,如在文章中引入大段某知名作家的文字,这时需要这个标签。 等等,上一节<q>
标签不是也是对文本的引用吗?不要忘记<q>
标签是对简短文本的引用,比如说引用一句话就用到<q>
标签。浏览器对<blockquote>
标签的解析是缩进样式。<br />
;要想输入空格,必须写入 
(no-breaking space);<code>
标签了,如果是多行代码,可以使用<pre>
标签。<pre>
标签的主要作用:预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。<pre>
标签不只是为显示计算机的源代码时用的,在你需要在网页中预显示格式时都可以使用它,只是<pre>
标签的一个常见应用就是用来展示计算机的源代码。<ol>
标签来制作有序列表来展示。<ol>
在网页中显示的默认样式一般为:每项<li>
前都自带一个序号,序号默认从1开始<div>
标签中,这个<div>
标签的作用就相当于一个容器。什么是逻辑部分?它是页面上相互关联的一组元素。如网页中的独立的栏目版块,就是一个典型的逻辑部分。同时,为了使逻辑更加清晰,我们可以为这一个独立的逻辑部分设置一个名称,用id属性来为<div>
提供唯一的名称,这个就像我们每个人都有一个身份证号,这个身份证号是唯一标识我们的身份的,也是必须唯一的。<table summary="表格简介文本">
。标题用以描述表格内容,标题的显示位置:表格上方。<table><caption>标题文本</caption></table>
。<a>
标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这个标签。<a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a>
。<a>
标签在默认情况下,链接的网页是在当前浏览器窗口中打开,有时我们需要在新的浏览器窗口中打开。<a href="目标网址" target="_blank">click here!</a>
。<a>
标签还有一个作用是可以链接Email地址,使用mailto能让访问者便捷向网站管理者发送电子邮件。我们还可以利用mailto做许多其它事情。如果mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的参数每一个都以“&”分隔。<img>
标签来插入图片。<img src="图片地址" alt="下载失败时的替换文本" title = "提示文本">
<form method="传送方式" action="服务器文件">
,<form>
:<form>
标签是成对出现的,以<form>
开始,以</form>
结束;action :浏览者输入的数据被传送到的地方,比如一个PHP页面(save.php);method : 数据传送的方式(get/post)。注意: 1、所有表单控件(文本框、文本域、按钮、单选框、复选框等)都必须放在<form></form>
标签之间(否则用户输入的信息可提交不到服务器上哦!)。2、method:post/get的区别这一部分内容属于后端程序员考虑的问题。介绍如下: <form>
<input type="text/password" name="名称" value="默认文本" />
</form>
4.在使用表单设计调查表时,为了减少用户的操作,使用选择框是一个好主意,html中有两种选择框,即单选框和复选框,两者的区别是单选框中的选项用户只能选择一项,而复选框中用户可以任意选择多项,甚至全选。语法:<input type="radio/checkbox" value="值" name="名称" checked="checked"/>
。当 type=”radio” 时,控件为单选框,当 type=”checkbox” 时,控件为复选框;value:提交数据到服务器的值(后台程序PHP使用);name:为控件命名,以备后台程序 ASP、PHP 使用(value和name一个是值,一个是名称,都是要提交到后台的!!!都不是要显示的值);checked:当设置 checked=”checked” 时,该选项被默认选中。注意:同一组的单选按钮,name 取值一定要一致,比如上面例子为同一个名称“radioLove”,这样同一组的单选按钮才可以起到单选的作用。
5.下拉列表在网页中也常会用到,它可以有效的节省网页空间。既可以单选、又可以多选。
<form action="save.php" method="post" >
<label>爱好:</label> (所有文字都应用label、span之类的框住,不要孤零零)
<select>
<option value="看书">看书</option>
<option value="旅游" selected="selected">旅游</option>
<option value="运动">运动</option>
<option value="购物">购物</option>
</select>
</form>
其中,<option value="向服务器提交的值">显示的值</option>
。(给服务器的传值和显示的值要区分清楚)
下拉列表也可以进行多选操作,在<select>
标签中设置multiple=”multiple”属性,就可以实现多选功能,在 widows 操作系统下,进行多选时按下Ctrl键同时进行单击(在 Mac下使用 Command +单击),可以选择多个选项。
6. 在表单中有两种按钮可以使用,分别为:提交按钮、重置。这一小节讲解提交按钮:当用户需要提交表单信息到服务器时,需要用到提交按钮。语法:<input type="submit/reset" value="提交/重置">
7. form表单中的label标签:label标签不会向用户呈现任何特殊效果,它的作用是为鼠标用户改进了可用性。如果你在 label 标签内点击文本,就会触发此控件。就是说,当用户单击选中该label标签时,浏览器就会自动将焦点转到和标签相关的表单控件上(就自动选中和该 label标签相关连的表单控件上)。语法:<label for="控件id名称">
注意:标签的 for 属性中的值应当与相关控件的 id 属性值(即name而非value)一定要相同。
**
**
1. CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等。使用CSS样式的一个好处是通过定义某个样式,可以让不同网页位置的同一元素的文字有着统一的字体、字号或者颜色等。
2. css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示:
选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响。声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间可以英文分号“;”分隔。
3. 就像在Html的注释一样,在CSS中也有注释语句:用/*注释语句*/
来标明(Html中使用<!--注释语句-->
)。
4. CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式、嵌入式和外部式三种。
内联式css样式表就是把css代码直接写在现有的HTML标签中,如下面代码:<p style="color:red">
这里文字是红色</p>
。注意要写在元素的开始标签里,并且css样式代码要写在style=”“双引号中,如果有多条css样式代码设置可以写在一起,中间用分号”;”隔开。如若需要更改多个标签,为每一个标签加入style=””很不方便。
嵌入式 css样式,就是可以把css样式代码写在<style type="text/css"></style>
标签之间。嵌入式css样式必须写在<style></style>
之间,并且一般情况下嵌入式css样式写在<head></head>
之间。如右边编辑器中的代码。
外部式 css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css”为扩展名,在<head>
内(不是在<style>
标签内)使用<link>
标签将css样式文件链接到HTML文件内,如下面代码:<link href="base.css" rel="stylesheet" type="text/css" />
注意,css样式文件名称以有意义的英文字母命名,如 main.css。rel=”stylesheet” type=”text/css” 是固定写法不可修改。<link>
标签位置一般写在<head>
标签之内。
5. 这三种样式是有优先级的,记住他们的优先级:内联式 > 嵌入式 > 外部式。但是嵌入式>外部式有 一个前提:嵌入式css样式的位置一定在外部式的后面。如右代码编辑器就是这样,<link href="style.css" ...>
代码在<style type="text/css">...</style>
代码的前面(实际开发中也是这么写的)。其实总结来说,就是–就近原则(离被设置元素越近优先级别越高)。
选择器(6-10不太熟)
1. 每一条css样式声明(定义)由两部分组成,形式如下:选择器{ 样式; } 在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。
2. 标签选择器其实就是html代码中的标签。如右侧代码编辑器中的<html>、<body>、<h1>、<p>、<img>
。例如下面代码:p{font-size:12px;line-height:1.6em;} 为p标签设置12px字号,行间距设置1.6em的样式。
3. 类选择器在css样式编码中是最常用到的,如右侧代码编辑器中的代码:可以实现为“胆小如鼠”、“勇气”字体设置为红色。语法:.类选器名称{css样式代码;} 注意:1、英文圆点开头2、其中类选器名称可以任意起名(但不要起中文噢)使用方法:第一步:使用合适的标签把要修饰的内容标记起来,如下:<span>
胆小如鼠</span>
第二步:使用class=”类选择器名称”为标签设置一个类,如下:<span class="stress">胆小如鼠</span>
第三步:设置类选器css样式,如下:.stress{color:red;}/*类前面要加入一个英文圆点*/
4. 在很多方面,ID选择器都类似于类选择符,但也有一些重要的区别:1、为标签设置id=”ID名称”,而不是class=”类名称”。2、ID选择符的前面是井号(#)号,而不是英文圆点(.)。
5. 类选择器和ID选择器:相同点:可以应用于任何元素 不同点:1、ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次。2、可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)
6. 还有一个比较有用的选择器子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素。如右侧代码编辑器中的代码:.food>li{border:1px solid red;}
这行代码会使class名为food下的子元素li(水果、蔬菜)加入红色实线边框。即改变某一个标签的第一个子元素。
7. 包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。如右侧代码编辑器中的代码:.first span{color:red;}
请注意这个选择器与子选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。总结:>作用于元素的第一代后代,空格作用于元素的所有后代。
8. 通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中所有标签元素,如下使用下面代码使用html中任意标签元素字体颜色全部设置为红色:* {color:red;}
9. 更有趣的是伪类选择符,为什么叫做伪类选择符,它允许给html不存在的标签(标签的某种状态)设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:a:hover{color:red;}
上面一行代码就是为 a 标签鼠标滑过的状态设置字体颜色变红。这样就会使第一段文字内容中的“胆小如鼠”文字加入鼠标滑过字体颜色变为红色特效。关于伪类选择符,到目前为止,可以兼容所有浏览器的“伪类选择符”就是 a 标签上使用 :hover 了(其实伪类选择符还有很多,尤其是 css3 中,但是因为不能兼容所有浏览器,本教程只是讲了这一种最常用的)。其实 :hover 可以放在任意的标签上,比如说 p:hover,但是它们的兼容性也是很不好的,所以现在比较常用的还是 a:hover 的组合。
10. 当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,),如下代码为右侧代码编辑器中的h1、span标签同时设置字体颜色为红色:h1,span{color:red;}
就相当于多个选择器设置为相同样式时使用。(分组选择器是”,”,如果是空格就变成包含选择器了)
继承
1. CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为span标签。p{color:red;} <p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
但注意有一些css样式是不具有继承性的。如border:1px solid red;
2. 有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?
p{color:red;}
.first{color:green;}
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
p和.first都匹配到了p这个标签上,那么会显示哪种颜色呢?green是正确的颜色,那么为什么呢?是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。
下面是权值的规则:标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。注意:还有一个权值比较特殊–继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。
p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/
3.我们来思考一个问题:如果在html文件中对于同一个元素可以有多个css样式存在并且这多个css样式具有相同权重值怎么办?好,这一小节中的层叠帮你解决这个问题。层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用。层叠很好理解,理解为后面的样式会覆盖前面的样式。所以前面的css样式优先级就不难理解了:内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)。
4. 我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。注意:!important要写在分号的前面
p{color:red!important;}
p{color:green;}
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
这里注意当网页制作者不设置css样式时,浏览器会按照自己的一套样式来显示网页。并且用户也可以在浏览器中设置自己习惯的样式,比如有的用户习惯把字号设置为大一些,使其查看网页的文本更加清楚。这时注意样式优先级为:浏览器默认的样式 < 网页制作者样式 < 用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式。
字体字号
font-size:20px;
color:red;
font-weight:normal/bold font-family:Microsoft Yahei font-style:italic text-decoration:underline/line-through;
text-indent:2em;(2字符的缩进)
line-height:2em;(行间距、行高)
letter-spacing:20px;(字符间距)
word-spacing:20px;(单词间距)
text-align:center/left/right;
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>
<div>、 <p>、<h1>、<form>、<ul>
和 <li>
就是块级元素。设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点:a{display:block;} <span>、<a>、<label>、<input>、 <img>、 <strong> 和<em>
就是典型的内联元素(行内元素)(inline)元素。当然块状元素也可以通过代码display:inline将元素设置为内联元素。内联元素特点:1、和其他元素都在一行上;2、元素的高度、宽度、行高及顶部和底部边距不可设置;3、元素的宽度就是它包含的文字或图片的宽度,不可改变。<img>、<input>
标签就是这种内联块状标签。inline-block元素特点:1、和其他元素都在一行上;2、元素的高度、宽度、行高以及顶和底边距都可设置。 元素内容与边框之间是可以设置距离的,称之为“填充”,即padding。
元素与其它元素之间的距离可以使用边界(margin)来设置。
边框也是有宽度的!
总结一下:padding和margin的区别,padding在边框里,margin在边框外。
css布局模型(很常用,也佷容易混淆)
1. 清楚了CSS 盒模型的基本概念、 盒模型类型, 我们就可以深入探讨网页布局的基本模型了。布局模型与盒模型一样都是 CSS 最基本、最核心的概念。 但布局模型是建立在盒模型基础之上,又不同于我们常说的 CSS 布局样式或 CSS 布局模板。如果说布局模型是本,那么 CSS 布局模板就是末了,是外在的表现形式。
CSS包含3种基本的布局模型,用英文概括为:Flow、Layer 和 Float。
在网页中,元素有三种布局模型:
1、流动模型(Flow)
2、浮动模型 (Float)
3、层模型(Layer)
2. 先来说一说流动模型,流动(Flow)是默认的网页布局模式。也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的。
流动模型有两个特点:第一,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。如右侧代码编辑器中三个块状元素标签(div,h1,p)宽度显示为100%。第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)
3. 浮动模型:块状元素这么霸道都是独占一行,如果现在我们想让两个块状元素并排显示,怎么办呢?不要着急,设置元素浮动就可以实现这一愿望。任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。如下代码可以实现两个 div 元素一行显示。
div{
width:200px;
height:200px;
border:2px red solid;
float:left;
}
<div id="div1"></div>
<div id="div2"></div>
div{
width:200px;
height:200px;
border:2px red solid;
position:absolute;
left:100px;
top:50px;
}
<div id="div1"></div>
#div1{
width:200px;
height:200px;
border:2px red solid;
position:relative;
left:100px;
top:50px;
}
<div id="div1"></div>
7. fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。 由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。 以下代码可 以实现相对于浏览器视图向右移动100px,向下移动50px。并且拖动滚动条时位置固定不变。
#div1{
width:200px;
height:200px;
border:2px red solid;
position:fixed;
left:100px;
top:50px;
}
<p>文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。</p>
....
<div id="box1"><!--参照定位的元素-->
<div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>
#box1{
width:200px;
height:200px;
position:relative;
}
#box2{
position:absolute;
top:20px;
left:30px;
}
这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。
window.open(<URL>, <窗口名称>, <参数字符串>)
window.close()
//关闭本窗口 或 <窗口对象>.close(); //关闭指定的窗口HTML文档可以说由节点构成的集合,三种常见的DOM节点: 1. 元素节点:上图中<html>、<body>、<p>
等都是元素节点,即标签。2. 文本节点:向用户展示的内容,如<li>...</li>
中的JavaScript、DOM、CSS等文本。3. 属性节点:元素属性,如<a>
标签的链接属性href=”http://www.imooc.com”。
看下面代码: <a href="http://www.imooc.com">JavaScript DOM</a>
要注意,添加事件时,格式为onclick=”openwin()”,其中,属性一定要加上引号,且调用的因为是函数,所以一定有括号!
JS内置对象
1. JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。对象的属性:反映该对象某些特定的性质的,如:字符串的长度、图像的长宽等;对象的方法:能够在对象上执行的动作。例如,表单的“提交”(Submit),时间的“获取”(getYear)等;
访问对象属性的语法: objectName.propertyName如使用 Array 对象的 length 属性来获得数组的长度:var myl=myarray.length; 这是没有括号的!
访问对象的方法:objectName.methodName() 如使用string 对象的 toUpperCase() 方法来将文本转换为大写:var request=mystr.toUpperCase(); 这是有括号的!
2. Date 日期对象:日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)。定义一个时间对象 : var Udate=new Date();Date对象中处理时间和日期的常用方法:(这些全是对象的方法!!!)
Math 对象方法:
Windows对象/BOM
在JavaScript中,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。
计时器类型:
一次性计时器:仅在指定的延迟时间之后触发一次。
间隔性触发计时器:每隔一定的时间间隔就触发一次。
计时器方法:
history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。注意:从窗口被打开的那一刻开始记录,每个浏览器窗口、每个标签页乃至每个框架,都有自己的history对象与特定的window对象关联。
语法:window.history.[属性|方法]
History 对象属性:
History 对象方法:
location 对象属性:
location 对象方法:
几种浏览的user_agent.,像360的兼容模式用的是IE、极速模式用的是chrom的内核。