如下是less
代码css
// 变量
// 适配主流设备
@adapterDeviceList:320px,360px,375px,384px,400px,414px,424px,480px,540px,640px,720px,750px;
// 设备的种类
@len:length(@adapterDeviceList);
// 预设基准值
@baseFontSize:100px;
// 设计稿尺寸
@psdWidth:750px;
// 混入
// less中的index是从1开始的,比起索引,应该叫作序号
.adapterMixin(@index:1) when (@index<=@len){
@media (min-width: extract(@adapterDeviceList,@index)) {
html{
font-size: @baseFontSize/@psdWidth*extract(@adapterDeviceList,@index);
}
}
.adapterMixin(@index+1);
}
// 适配
.adapterMixin();
复制代码
使用less
迭代语法,对主流的每个设备尺寸设置媒体查询,从而实现适配。若是有设备能够添加到@adapterDeviceList
这个数组中,方便后期更好地维护。html
如下是less
生成的css
代码:数组
@media (min-width: 320px) {
html {
font-size: 42.66666667px;
}
}
@media (min-width: 360px) {
html {
font-size: 48px;
}
}
@media (min-width: 375px) {
html {
font-size: 50px;
}
}
@media (min-width: 384px) {
html {
font-size: 51.2px;
}
}
@media (min-width: 400px) {
html {
font-size: 53.33333333px;
}
}
@media (min-width: 414px) {
html {
font-size: 55.2px;
}
}
@media (min-width: 424px) {
html {
font-size: 56.53333333px;
}
}
@media (min-width: 480px) {
html {
font-size: 64px;
}
}
@media (min-width: 540px) {
html {
font-size: 72px;
}
}
@media (min-width: 640px) {
html {
font-size: 85.33333333px;
}
}
@media (min-width: 720px) {
html {
font-size: 96px;
}
}
@media (min-width: 750px) {
html {
font-size: 100px;
}
}
复制代码
效果如图所示,生成了这些设备的全部媒体查询代码。 less