vant/docs/components/demo-block.vue
2017-03-06 15:16:02 +08:00

72 lines
1.3 KiB
Vue

<template>
<div
class="demo-block"
:class="blockClass">
<slot name="examples"></slot>
<slot name="highlight">
</slot>
</div>
</template>
<script>
export default {
computed: {
blockClass() {
return `demo-${this.$route.path.split('/').pop()}`;
},
codeAreaHeight() {
return Math.max(this.$el.getElementsByClassName('examples')[0].clientHeight, this.$el.getElementsByClassName('highlight')[0].clientHeight);
}
},
mounted() {
this.$el.getElementsByClassName('highlight')[0].style.height = `${this.codeAreaHeight + 1}px`;
}
};
</script>
<style>
.demo-block {
border: solid 1px #eaeefb;
border-radius: 4px;
transition: .2s;
overflow: hidden;
code {
font-family: Menlo, Monaco, Consolas, Courier, monospace;
}
.examples {
width: 375px;
float: right;
box-sizing: border-box;
padding: 20px 0;
min-height: 200px;
max-height: 600px;
overflow: auto;
}
.highlight {
margin-right: 375px;
box-sizing: border-box;
border-right: solid 1px #eaeefb;
pre {
margin: 0;
}
code.hljs {
margin: 0;
border: none;
max-height: none;
border-radius: 0;
&::before {
content: none;
}
}
}
}
</style>