工作中有时设计图要求实现折叠面板需求,element官网给出的示例中,面板展开收起的箭头图标是在最右面,如图所示:
但由于设计需要,需要将箭头放在最左边,通过f12代码调试发现header是flex布局,因此修改后的面板部分代码如下:
<el-collapse accordion v-model="activeNames" @change="handleChange">
<el-collapse-item name="1">
<span class="collapse-title" slot="title">一致性 Consistency</span>
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
</el-collapse-item>
<el-collapse-item name="2">
<span class="collapse-title" slot="title">反馈 Feedback</span>
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
</el-collapse-item>
<el-collapse-item name="3">
<span class="collapse-title" slot="title">效率 Efficiency</span>
<div>简化流程:设计简洁直观的操作流程;</div>
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
</el-collapse-item>
<el-collapse-item name="4">
<span class="collapse-title" slot="title">可控 Controllability</span>
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
<div>结果可控:用户可以*的进行操作,包括撤销、回退和终止当前操作等。</div>
</el-collapse-item>
</el-collapse>
对标题部分设置为slot自定义,外层包裹一个自定义类collapse-title
,对这个类赋予样式,如下:
.collapse-title {
flex: 1 0 90%;
order: 1;
}
.el-collapse-item__header {
flex: 1 0 auto;
order: -1;
}
以上html+css代码即可实现将折叠面板的箭头从最右边移至最左边,效果如下: