关于Html,Css,JavaScript的一些基础知识要点
html css javaScript 就类似MVC结构(不完全相同,还是有区别)
介绍
Html:Model(一个页面的模型,包含了整体的结构模型)
Css:View(一个项目的视图,视觉,提供了一个页面的美化)
JavaScript:Controller(一个项目的控制,用户的交互方式,提供一些业务逻辑设计)
跟正统MVC区别:html这一块在一个前端项目中不单单只有模型,也包括了view,毕竟实际浏览器也是根据Html来进行解析展示的,严格上来讲,Model就是纯粹的模型数据,根据需求给Controller进行调用操作。
而Css最多只能起到一个基于Html内容的美化,把类似Model层的Html数据加工,制作出多种结构和样式,例如html中定义两个div:div2,div2。在没有css的情况,按照顺序div1在上,div2在下,使用css进行定位处理还是可以进行变换。Html实质上也算是一个View,提供视图展示,而Css只是在视图的基础上进行渲染。
关于HTML
主要结构和注意事项
|
|
- 在Html中,Css样式表建议在头部
标签中优先定义,在页面加载的时候同时加载,以防出现页面错位等无样式问题。 - Js脚本建议在标签中的最下方进行导入或者编写,以便js可以在运行时基于完全加载页面信息后的数据进行操作。
- 建议编写html的时候声明该页面为UTF-8编码或者一些统一编码,以便浏览器端更好的解析,不会造成乱码。
关于Css
Css的引用方式
在需要使用Css样式的标签内定义style属性(行内样式)
1<a href="http://Bitamin.pw" style="color:#000">Bitamin Blog</a>使用style标签(内部样式)
1<style type="text/css">a{color:#000;}</style>引入外部Css文件(外部样式)
使用link标签引入Css文件
1<link rel="stylesheet" href="CssBootStarp.css"/>使用style标签引入Css文件
12345<style type="text/css">@import url("CssBootStarp.css");//@import "CssBootStarp.css";</style><style src="CssBootStarp.css" ></style><!-- XHtml2 -->
关于link和@import的区别
- 隶属:link是属于Html标签,import是Css样式style提供的引入一种方式
- 限制:import只能引入31次Css文件,link不限制
- 优先:使用link引入的Css文件在页面加载的时候会同时加载,而import会在页面加载完成后再加载
- 兼容:import是在Css2.1提出的,只能在IE5以上才能识别,link无此问题
- 控制:使用Js控制DOM(document.styleSheets)改变样式的时候,只能使用link,import不是标签,不能受DOM控制
关于Css的优先级问题
行内样式 >>>>> 内部样式 >>>>> 外部样式
就近原则,哪个距离html内容近则哪个优先
关于Css选择器的使用方式
关于选择器的种类
标签选择器
12345678910<html><head><style type="text/css">a{color:#000;}p{color:#000;}</style></head><body><a href="#">p</a><p>p</p></body><footer></footer></html>类选择器 (类名不能以数字开头)
1234567891011<html><head><style type="text/css">.c{color:#000;}</style></head><body><p class="c">This is<pre><p></pre><P></P></p></body><footer></footer></html>
id选择器 (id属性不能数字开头,id属性推荐在每个Html文档中只出现一次,方便Js控制)
1234567891011<html><head><style type="text/css">#i{color:#000;}</style></head><body><p id="i">This is<pre><p></pre><P></P></p></body><footer></footer></html>交集选择器
1234567891011121314151617<html><head><style type="text/css">#i pre{color:#000;}.c pre{color:#FFF;}</style></head><body><p id="i">This is<pre><p></pre><P></P></p><p class="c">This is<pre><p></pre><P></P></p></body><footer></footer></html>并集选择器
12345678910111213141516<html><head><style type="text/css">p h1{color:#000;}</style></head><body><p class="c">This is<pre><p></pre><P></P></p><h1>h1</h1><h2>h2</h2><h3>h3</h3></body><footer></footer></html>
派生选择器 (类似家庭但是有分级,按照元素一个个向右寻找)
123456789101112131415161718192021<html><head><style type="text/css">p pre{color:#000;}p strong pre{color:#FFF;}p u a{color:#FFF;}</style></head><body><p id="i">This is<pre><p></pre><P></P></p><p class="c">This <strong><a href="#">is</a></strong><pre><p></pre></p><p class="c">This <u><a href="#">is</a></u></strong><pre><p></pre></p></body><footer></footer></html>后代选择器 (类似家庭,可以直接从左向右寻找该标签的子标签)
1234567891011121314151617<html><head><style type="text/css">p pre{color:#000;}p em{color:#FFF;}</style></head><body><p id="i">This is<pre><p></pre><P></P></p><p class="c">This <strong><em>is</em></strong><pre><p></pre><P></P></p></body><footer></footer></html>子元素选择器(类似父子,有直接关系,必须在第一级标签下的第二级标签才会选中)
123456789101112131415161718<html><head><style type="text/css">p pre{color:#000;}h1 > u{color:#FFF;}</style></head><body><p id="i">This is<pre><p></pre><P></P></p><h1><u><em>This is </em></u><u><em>h1</em></u><u>h1</u></h1><h1><em><u>This is </u></em><u>h1</u></h1></body><footer></footer></html>相邻兄弟选择器(类似兄弟,并且最终选择是后者开始,且需要有相同的父元素, 相同子元素会在第二个开始到最后一个,不相同相邻子元素则只选择后者)
123456789101112131415161718192021222324252627282930313233<html><head><style type="text/css">li+li{color:#555;}p+h1{color:#FFF;}</style></head><body><div><ul><li>List item 1</li><li>List item 2</li>//变色<li>List item 3</li>//变色</ul><ol><li>List item 1</li><li>List item 2</li>//变色<li>List item 3</li>//变色</ol><h1>This is h1</h1><p>This is p</p>//变色<p>This is p</p></div><h1>This is h1 </h1><p>This is p </p>//变色<p>This is p </p></body><footer></footer></html>通用选择器(代表选择所有元素,优先级最低)
|
|
- 伪类选择器
- a:link //元素没有被访问过的状态(未点击过)
- a:visited //元素已经访问过的状态(点击过,鼠标点击后放开)
- a:hover //鼠标经过元素的状态(鼠标经过元素的时候)
- a:active //鼠标按下激活元素的状态 (鼠标点击元素,还没放开的时候)
|
|
关于选择器的优先级和选择器的使用例子
标签选择器 <<<<< 类选择器 <<<<< id选择器 <<<<<
选择器可以是类,标签和其他选择器或者d,标签和其他选择器相加
|
|
关于CSS的定位
相对定位
12345678910111213141516171819202122<html><head><style type="text/css">div{border-style:solid;width:100px;height:100px;}.div2{position:relative; //相对定位top:10px; // 距离上一个对象边框10像素left:10px; //距离左边对象边框10像素}</style></head><body><div class="div1" >div1</div><div class="div2" >div2</div><div class="div3" >div3</div></body><footer></footer></html>绝对定位
123456789101112131415161718192021<html><head><style type="text/css">div{border-style:solid;width:100px;height:100px;}.div1{position:absolute; //绝对定位color:#F00;top:200;left:400;}</style></head><body><div class="div1" >div1</div></body><footer></footer></html>固定定位
1234567891011121314151617181920<html><head><style type="text/css">div{border-style:solid;width:100px;height:100px;}#div1{position:fixed; //固定定位top:400px;left:1000px;}</style></head><body><div id="div1" ><img src=".../img.jpg"/></div></body><footer></footer></html>
关于JavaScript
JavaScript的组成部分
EMCAScript(基本语法)
BOM(BrowSer Object Model)浏览器对象模型
把浏览器中的各个部分都用一个对象描述,如果要操作浏览器的属性,就可通过BOM的对象进行操作。
常用属性
window 代表一个新开窗口
常用方法:
日常使用前缀window可省略,由于window是BOM中的顶层对象,因此调用可省略。
- open();
- resizeTo();
- moveBy();
- moveTo();
- setInterval();
- clearInterval();
123456789101112131415161718192021222324252627282930313233343536<html><head><script type="text/javascript">var id;function showAd(){window.open("http://www.baidu.com","_blank","height=300px,width=300,top=100,toolbar=no,location=no","http://www.google.com");}//参数一为网址,二打开方式,三网页属性,四如果找不到参数一网页则用此处网页替代function change(){window.resizeTo(300,300);}function changeAdMap(){window.moveBy(200,200);}function schangeAdMap(){window.moveTo(700,300);}function openSetinterval(){id = window.setInterval("showAd()",2000);}function clearSetinterval(){window.clearInterval(id);}</script><meta http-equiv="Content-Type" content="text/html ; charset=utf-8"/></head><body><input type="button" onclick="showAd()" value="显示窗口"/><input type="button" onclick="change()" value="更改当前窗口大小"/><input type="button" onclick="changeAdMap()" value="相对移动当前窗口位置"/><input type="button" onclick="schangeAdMap()" value="基于屏幕移动窗口位置"/><input type="button" onclick="openSetinterval()" value="打开设置定时任务"/><input type="button" onclick="clearSetinterval()" value="取消设置定时任务"/></body></html>```location 代表地址栏的对象
location.href 地址字符串
location.reload();重载页面
screen 代表整个屏幕的对象
screen.availHeight 获取系统屏幕工作区域高度,排除任务栏
screen.availWidth 获取系统屏幕工作区域宽度,排除任务栏
screen.height 获取系统屏幕的垂直分辨率
screen.width 获取系统屏幕的水平分辨率
DOM(Document Object Model)
JavaScript的函数创建方式以及使用
创建无形参函数和创建对象
123456789function kim(){}var kim = new kim();kim.id = 1;kim.name = "Bitamin";kim.say = function(){aleft("id:"+id+",name:"+name);}document.write("id:"+kim.id+",name:"+kim.name);kim.say();
创建有形参函数和创建对象
12345678910function kim(id,name){this.id = id;this.name = name;this.say = function(){aleft("id:"+id+",name:"+name);}}var kim = new kim(1,"Bitamin");document.write("id:"+kim.id+",name:"+kim.name);kim.say();
使用Object函数创建对象(JavaScript内置创建好的Object函数,可以直接使用)
12345678var Obj = new Object();Obj.id = 1;Obj.name = "Bitamin";Obj.say = function(){aleft("id:"+id+",name:"+name);}document.write("id:"+Obj.id+",name:"+Obj.name);Obj.say();
使用字面量的方式创建函数
123456789var kim = {id:1,name:"Bitamin",say:function(){aleft("id:"+id+",name:"+name);}}document.write("id:"+kim.id+",name:"+kim.name);kim.say();
JavaScript的事件注册方法
直接在Html元素标签里注册
123456789<html><body onload="ready()"></body><script type="text/javascript">function ready(){alert("body loading done");}</script></html>直接在Js代码中找到对应对象注册
12345678910<html><body id="body"></body><script type="text/javascript" >var bodyNode = document.getElementByid("body");bodyNode.onload = function(){alert("body loading done");}</script></html>
Javascript常用事件
- 鼠标点击事件
- onclick; 当用户左键单击对象时触发事件
- ondblclick; 当用户左键双击对象时触发事件
- onmousedown; 当用户用任意鼠标按钮单击对象时触发事件
- onmouseup; 当用户点击后释放按键的时候触发事件
- 鼠标移动事件
- onmousemove; 当用户鼠标指针移进对象边界触发事件
- onmouseout; 当用户鼠标指针移出对象边界触发事件
- 鼠标焦点事件
- onfocus; 当对象失去焦点时触发事件
- onblur; 当对象获得焦点时触发事件
- 其他事件
- onchange; 当对象或焦点内容改变时触发事件
- onload; 当浏览器完成所有对象的装载后触发事件
- onsubmit; 当表单将要被提交时触发
相关使用例子
|
|