
Vue简易便签实现
- html部分
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>小钱便签</title><link rel="stylesheet" type="text/css" href="index.css"/>
</head>
<body><section id="app"><header><h1 class="title">便签</h1><input type="text" v-model="inputValue" autofocus="autofocus" placeholder="请输入事项" autocomplete="off" class="new-todo" @keyup.enter="add"/></header><section class="main"><ul class="todo-list"><li class="todo" v-for="(item, index) in list"><div class="view"><span class="index">{{ index + 1 }}</span><label>{{ item }}</label><button class="destroy" @click="remove(index)">删除</button></div></li></ul></section><footer class="footer"><span class="todo-count" v-if="list.length != 0">{{ list.length }}<strong></strong>@nbsp;items left</span><button @click="clear" v-show="list.length != 0">Clear</button></footer></section><footer class="info"><p><a href="https://www.baidu.com/"><img src="https://www.baidu.com/img/flexible/logo/pc/result.png"/></a></p></footer> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el: '#app',data: {list: ["糖醋里脊", "红烧狮子头", "蒸鸡蛋"],inputValue: ""},methods: {add: function() {this.list.push(this.inputValue);},remove: function(index) {this.list.splice(index, 1);},clear: function() {this.list = []}}})</script>
</body>
</html>
- css样式表
* {padding: 0;margin: 0;
}#app {width: 300px;margin: 5px auto;box-shadow: 0px 3px 10x 2px rgba(0, 0, 0, 0.1);
}.title {font: normal 200 34px '微软雅黑';color: rgb(219, 82, 82);text-align: center;padding-top: 100px;padding-bottom: 10px;
}.new-todo {width: 100%;height: 40px;padding-left: 10px;color: rgb(88, 88, 88);box-sizing: border-box;border: 1px solid rgb(236, 236, 236);
}.new-todo:focus {outline: none;
}.footer {position: relative;width: 100%;height: 40px;box-sizing: border-box;border: 1px solid rgb(236, 236, 236);background-color: white;
}.footer span {font-size: 12px;color: rgb(131, 131, 131);float: left;line-height: 40px;
}.todo-count {margin-left: 10px;
}.clear-button {margin-left: 170px;
}.todo {list-style: none;font-size: 14px;font-family: '微软雅黑';color: rgb(88, 88, 88);box-sizing: border-box;width: 100%;height: 40px;line-height: 40px;border: 1px solid rgb(236, 236, 236);background-color: white;
}.view {position: relative;margin-left: 10px;
}.view label {width: 200px;height: 40px;position: absolute;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
}.destroy {position: absolute;right: 10px;top: 9px;font-size: 12px;font-family: '微软雅黑';outline: none;border: 1px solid rgb(236, 236, 236);color: rgb(255, 111, 111);display: none;
}.view:hover .destroy {display: block;
}.footer button {position: absolute;right: 10px;top: 9px;font-size: 12px;font-family: '微软雅黑';outline: none;border: 0px;color: rgb(131, 131, 131);
}.info {margin: 5px auto;width: 300px;
}.info a {padding-left: 50px;
}
