1 <template>
2 <div class="content">
3 <header class="tab_nav">
4 <div v-for="(item,index) in tabNav" :key="index" @click = "selected(index, $event)" :class="{'active':item.active}">
5 <img :src="item.imgUrl" alt="icon">
6 <span>{{item.title}}</span>
7 </div>
8 </header>
9 <main>
10 <ul>
11 <li v-for="item in articles">
12 <h5>{{item.title}}</h5>
13 <div>{{item.summary | readeMore(100, '...')}}</div>
14 <div><a :href="item.link"></a></div>
15 </li>
16 </ul>
17 </main>
18 <footer></footer>
19 </div>
20 </template>
21
22 <script>
23 export default {
24 data() {
25 return {
26 tabNav:[
27 {title:'我参与的',active:true,imgUrl:'/src/images/index/participate.png'},
28 {title:'我发布的',active:false,imgUrl:'/src/images/index/publish.png'},
29 {title:'我抽奖的',active:false,imgUrl:'/src/images/index/luck_draw.png'},
30 ],
31 articles:[
32 {
33 title: 'CSS :focus-within',
34 summary: 'CSS的世界真是一个神奇的世界。可能众多前端开发者听说过:focus并未听说过:focus-within。那么:focus-within是什么鬼。这篇文章,我们就说说:focus-within这个东东。在CSS中:focus-within是一个伪类,现在已经被列入到CSS选择器中(CSS Level 4 selector)。他就像你知道的:focus或者:hover。:focus-within能非常方便处理获取焦点状态。当元素本身或其后代元素获得焦点时,:focus-within伪类的元素就会有效。',
35 link: '//www.w3cplus.com/css/focus-within.html'
36 },
37 {
38 title: '如何改变表单控件光标颜色',
39 summary: '表单大家应该不陌生,当然了,今天并不是来聊怎么做表单或者处理表单的样式网格。而是来聊聊怎么改变表单控件中光标的颜色。不知道在大家心中,表单控件的光标颜色是根据color属性来控制的。那么如果需要用CSS来改变表单控件,比如说input或者textarea元素的光标颜色,应该怎么处理呢?',
40 link: '//www.w3cplus.com/css/caret-color.html'
41 }
42 ]
43 }
44 },
45 methods: {
46 selected: function(index) {
47 this.tabNav.forEach(e => e.active = false);
48 this.tabNav[index].active = true;
49 }
50 },
51 filters: {
52 readeMore:function(text, length, suffix){
53 return text.substring(0, length) + suffix;
54 }
55 }
56 }
57 </script>
58
59 <style scoped lang="less">
60 .border{
61 content: '';
62 display: block;
63 width: 1px;
64 height: 1.5rem;
65 background: #D9D9D9;
66 position: absolute;
67 top: 0.75rem;
68 }
69 .tab_nav{
70 display: flex;
71 width: 100%;
72 height: 2.5rem;
73 background: #fff;
74 opacity: 0.5rem;
75 &>div{
76 height: 2.5rem;
77 width: 33.33%;
78 opacity: 0.5;
79 text-align: center;
80 &:nth-of-type(2) {
81 position: relative;
82 &::before{
83 .border;
84 left: 0;
85 }
86 &::after{
87 .border;
88 right: 0;
89 }
90 }
91 &>img{
92 width: 1rem;
93 height: 1rem;
94 display: block;
95 margin: 0.5rem auto 0;
96 }
97 &>span{
98 display: block;
99 font-size: 0.5rem;
100 color: #69728E;
101 line-height: 0.8rem;
102 }
103 }
104 &>div.active {
105 color: #69728E;
106 opacity: 1;
107 }
108 }
109
110 </style>
![]()