img{ width: auto; height: auto; max-width: 100%; max-height: 100%; }
据父容器的自动缩放,并保持图片原来的比例。这样你设置父容器的大小就可以啦。
img{ width: auto; height: auto; max-width: 100%; max-height: 100%; }
据父容器的自动缩放,并保持图片原来的比例。这样你设置父容器的大小就可以啦。
很简单的就解决了button的点击刷新问题,给button加一个type=”button”就解决了
/*设置文字不能被选中 以下为css样式*/
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
css中鼠标放上去变成手型怎么设置:其实就是一个属性的问题,
css的cursor属性
cursor:pointer;
default:标准箭头 //这是默认的样式
pointer:手形光标
wait :等待光标
text:I形光标
vertical-text :水平I形光标
no-drop:不可拖动光标
not-allowed:无效光标
help:帮助光标
all-scroll:三角方向标
move :移动标
crosshair:十字标
有的地方手型用hand,在这里隆重的说明,不要用hand,有些浏览器不支持。
参考文章:https://www.cnblogs.com/liluxiang/p/9592003.html
※使用之前,我们先来掌握3个东西是用来干什么的。
· npm: Nodejs下的包管理器。
· webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包。
· vue-cli: 用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装)
npm config set prefix “D:\nodejs\node_global”
npm config set cache “D:\nodejs\node_cache”
懂的越多,不会的也就越多,知识之路是不断进取的
DOM
DOM - Document Object Model This model can be described as a tree structure: Document | Root element:<html> | ———————————————————————— | | Element:<head> Element:<body> | | | ——————————————————— Element:<title> | | | Element:<a> Element:<h1> | Attribute: "href" | | | | Text:"my title" Text:"my link" Text:"my header"
DOM是W3C(万维网联盟)的标准,它定义了访问HTML和XML文档的标准:W3C-DOM是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。
W3C-DOM分成3个不同的部分:
· 核心DOM:针对任何结构文档的标准模型
· XML DOM:针对XML文档的标准模型
· HTML DOM:针对HTML文档的标准模型
这里对HTML DOM进行详述
关于HTML DOM,它是:
· HTML的标准对象模型
· HTML的标准编程接口
· W3C标准
HTML DOM定义了所有HTML元素的对象和属性,以及访问它们的方法。
在HTML DOM中,所有事物都是节点(Node)。DOM是视为节点树的HTML。
· 整个文档是一个文档节点
· 每个HTML元素是元素节点
· HTML元素内的文本是文本节点
· 每个HTML属性是属性节点
· 注释是注释节点
HTML DOM方法和属性
HTML DOM方法是我们可以在节点上执行的动作。
HTML DOM属性是我们可以在节点设置和修改的值。
可通过JavaScript(或其他编程语言)对HTML DOM进行访问。
所有HTML元素被定义为对象,而编程接口则是对象的方法和属性。
方法是能执行的动作。属性是能够获取或设置的值。
如,一些常用的HTML DOM方法:
· getElementById
· appendChild
· removeChild
· getElementsByTagName
· getElementsByClassName
· replaceChild
· insertBefore
· createAttribute
· createTextNode
· getAttribute
· setAttribute
一些常用的HTML DOM属性:
· innerHTML – 获取元素内容
· parentNode
· childNode
· attributes
nodeName属性规定节点的名称↓↓
nodeValue属性规定节点的值↓↓
nodeValue属性规定节点的值↓↓
<p id="intro">Hello World!</p>
<script>
x=document.getElementById("intro");
document.write(x.firstChild.nodeValue);
</script>
nodeType属性:返回节点的类型,nodeType是只读的。
比较重要的节点类型有:
元素类型 NodeType
元素 1
属性 2
文本 3
注释 8
文档 9
访问HTML元素等同于访问节点,可通过不同方式来访问HTML元素:
HTML DOM的修改=改变元素、属性、样式和事件
<div id="div1">
<p id="p1">这是一个段落</p>
<p id="p2">这是第二段落</p>
</div>
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是个新段落");
para.appendChild(node);
var ele = document.getElementById("div1");
ele.appendChild(para);
</script>
<p id="p1">Hey</p>
<script>
document.getElementById("p1").innerHTML = "新内容在这";
</script>
<p id="p1">hey</p>
<p id="p2">world</p>
<script>
document.getElementById("p2").style.color = "blue";
document.getElementById("p2").style.fontFamily = "Arial";
document.getElementById("p2").style.fontSize = "larger";
</script>
<input type="button" onclick="document.body.style.backgroundColor = 'lavender';" value="修改背景颜色" />
也可以:<script>
function changeBg()
{
document.body.style.backgroundColor="lavender";
}
</script><input type="button" onclick="changeBg()" value="修改背景色" />
HTML DOM允许JavaScript对HTML事件做出反应,当事件发生时,可以执行JavaScript,如用户点击某个元素时执行代码,则把JS代码添加到HTML事件属性中:onclick=JavaScript
HTML事件例子:
~用户点击鼠标时
~网页已加载
~图片已加载
~鼠标移动到元素上
~输入字段被改变
~HTML表单被提交时
~用户触发按键时
以下两个方式等效:a) <button onclick="displayDate()">点我</button>
b) document.getElementById("myBtn").onclick = function(){dispalyDate()};
onload,onunload,onchange
用户进入或离开页面时,会触发onload和onunload事件
onload事件可用于检查方可的浏览器类型和版本,以便基于这些信息来加载不同版本的网页。
onload和onunload事件都可用于处理cookies
onchange事件常用于输入字段的验证,如:<input type="text" id="fname" onchange="upperCase()" />
HTML DOM 事件对象参考手册:
https://www.w3school.com.cn/jsref/index.asp
https://www.runoob.com/jsref/jsref-tutorial.html
DOM根节点的两个特殊属性可以访问全部文档
~ document.documentElement 全部文档
~ document.body 文档主体
体积:33k
虚拟dom,更高的运行效率
双向数据绑定
生态丰富,基于vue.js的ui框架、常用组件
使用场景广泛
安装与部署
1、<script>引用<script src="https://cdn.jsdelivr.net/npm/" />
2、CLI命令行工具使用,npm
3、CDN
创建第一个vue应用
视图+脚本
视图:<div id="app">
{{mes}}
</div>
脚本:<script type="text/javascript">
var app = new Vue({
el: '#app',
data:{
mes: 'hello vue!'
}
});
</script>
数据与方法
每个Vue应用是通过Vue函数创建新的Vue实例开始的var vm = new Vue({});
<div id = "app">
{{a}} {{b}}
</div>
<script type="text/javascript">
var data = { a: 1 };
var vm = new Vue({
el : "#app",
data : data
});
data.a = 2;
</script>
Vue实例使用$区分方法和属性
e.g.
vm.data
vm.$watch —>方法list
生命周期
学习->API->生命周期钩子
生命周期函数不能使用箭头函数,箭头函数没有this
beforeCreate
created
beforeMount:相关的渲染函数首次被调用
mount ed:el创建成功
beforeUpdate:数据更新前
updated:数据更新完成
errorCaptured
activated, destroyed
模板语法
Vue.js使用用了基于HTML的模板语法,所有Vue.js的模板都是合法的HTML,能被遵循规范的浏览器和解析器解析。
文本:{{}}进行数据绑定
v-once,进行一次性插值
原始HTML,v-html标签可以使用html代码,v-bind绑定属性<div id = "app">
<p v-html="rawHtml"></p>
<div v-bind:class="color">test…</div>
<p>{{number + 1}}</p>
<p>{{ ok? 'YES' : 'NO' }} </p>
<p>{{ mes.split('').reverse().join(' ') }} </p>
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
data:{
msg: "hey",
rawHtml: '<span style="color:red">this is should be red</span>',
color: 'red1',
number: 9 ,
ok : 1
}
});
<style type="text/css">
.red1{color: red;}
.blue1{color:blue: font-size:100px;}
</style>
指令
v-前缀的特殊属性
v-if=”seen”
参数,一些指令能接受参数
修饰符,用.指明 <div @click="click1">
<div @click.stop="click2">click here</div>
</div>
class与style绑定v-bind:class="[ isActive ? 'active' : '', isGreen ? 'green' : '']"
v-bind:class="{active : isActive, green : isGreen}"
在中括号里可以使用条件表达式
{}只能是json数组
条件渲染
v-if v-else-if v-else:条件改变少适用
v-show:始终渲染,常切换适用
数组渲染
v-for item in items
事件绑定:v-on
<button v-on:事件名:”方法名(参数,…,$event)”>
事件名:不同元素拥有各自的事件,如click,dblclick
$event 是原始DOM事件 常用事件修饰符:stop,prevent,passive,capture,self,once 表单输入绑定
v-model 在input,textarea,select上进行数据双向绑定
vue的组件应用:全局组件注册
component的局部注册,是在实例中添加component部分,并注册其名称,如下示范:
<div id="app">
<button-counter></button-counter>
<test></test>
</div>
<script type="text/javascript">
Vue.component('button-counter', {
props: ['title'],
data: function () {
return {}
},
template: '<div><h1>hi…</h1></div>',
methods:{
}
})
var vm = new Vue({
el : "#app",
data : {
},
methods:{
clicknow : function (e) {
console.log(e);
}
},
components:{
test : {
template:"<h2>h2…</h2>"
}
}
});
</script>
实际应用中很少如上这样局部注册,更多的是通过类似java那样的单文件注册来完成的:
import ComponentA from './ComponentA' import ComponentC from './ComponentC' export default { components: { ComponentA, ComponentC }, // ... }
单文件注册需要进行环境配置:
· 安装 npm
npm
全称为 Node Package Manager
,是一个基于Node.js
的包管理器,也是整个Node.js
社区最流行、支持的第三方模块最多的包管理器。
npm -v
· 由于网络原因 安装 cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
· 安装 vue-cli
cnpm install -g @vue/cli
· 安装 webpack
webpack
是 JavaScript
打包器(module bundler)
cnpm install -g webpack