Skip to content

CSS

记录了一些使用到的技巧。

transform

网页内的最小字号为 12px ,若想显示的更小,可以用到 transform: scale(.8) 属性。下方为一个 vue 组件示例。

html
<div :style="style">
	{{ props.text }}
</div>
ts
import {computed} from "vue";

const props = defineProps({
	text: String,
	max: {
		type: Number,
		default: 12
	}
})

const style = computed(() => {
	if (props.text.length <= props.max) {
		return null;
	}
	
	// 自定比例
	const v = 1 - (props.text.length - props.max) / 20;
	return 'transform: scale(' + v + ')';
})

transition

用来实现过渡动画。通过增加 class 和 移除 class,来实现动画的执行和回撤。

html
<div id="div">让我动</div>
css
#div {
    margin-left: 100px;
    transition-property: margin-left;
    transition-duration: 1s;
}

#div.show {
    margin-left: 0;
}
js
document.querySelector('#div').addEventListener('click', function(e) {
    e.target.classList.toggle('show');
})

彩雲博客