为控制显示文本的行数,我们一般使用如下的css文件来实现
~~~css
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
~~~
由于该样式经常要使用,每次使用的时候都要定义就非常不方便,因此可以注册一个全局的指定 `v-line-clamp`
实现该功能
~~~
<div class="abstract" v-line-clamp="3">{{ item.abstract }}</div>
~~~
修改main.js文件,在创建Vue实例之前,添加以下代码,实现指令的注册
~~~
// 注册一个全局自定义指令 `v-line-clamp`
Vue.directive("line-clamp", {
bind: function(el, binding, vnode) {
el.style["display"] = "-webkit-box";
el.style["-webkit-box-orient"] = "vertical";
el.style["overflow"] = "hidden";
el.style["-webkit-line-clamp"] = binding.value;
},
});
new Vue({
router,
store,
render: (h) => h(App),
}).$mount("#app");
~~~
### 能力提升
阅读自定义指令相关的文档,熟悉Vue的高级特性 https://cn.vuejs.org/v2/guide/custom-directive.html
- 文档说明
- 服务端开发指南
- 客户端开发指南
- 请求拦截器
- API接口实例分析
- 页面文件
- NPM包管理
- 创建NPM包项目
- 课程设计
- 概述
- 内容管理系统项目
- 配置开发环境
- 设计静态原型
- 快速构建项目
- 构建CMS系统前端界面
- 门户模块
- 新闻列表
- API接口规范
- 生成模拟数据
- 显示新闻列表
- NavigatorPath组件
- ChannelHeader组件
- v-line-clamp指令
- formatDate过滤器
- 新闻详情页
- 修改顶部导航菜单
- 实现访问远程API
- 扩展功能
- 组件开发
- 服务端项目
- 编写服务模块
- 项目配置
- 数据库
- 创建数据库脚本
- 配置数据库
- 创建模拟数据
- 新闻模块控制器
- 添加逻辑验证层
- 实现接口
- 书栈模块
- QA