页面自适应,响应式布局

1.使用rem+媒体查询的方式

/* 默认字体大小,适用于小于980px的视口 */
html {
    font-size: calc(12px / 0.18); /* 初始字体大小 */
    transition: font-size 0.3s ease; /* 设置字体大小变化的过渡效果 */
}

/* 在980px到1679px范围内的视口 */
@media (min-width: 980px) and (max-width: 1679px) {
    html {
        font-size: calc(14px / 0.18); /* 设置字体大小,使得0.18rem = 14px */
    }
}

/* 在1680px及以上的视口 */
@media (min-width: 1680px) and (max-width: 1919px){
    html {
        font-size: calc(16px / 0.18); /* 设置字体大小,使得0.18rem = 16px */
    }
}

/* 在1920px及以上的视口 */
@media (min-width: 1920px) {
    html {
        font-size: calc(18px / 0.18); /* 确保在大屏幕上也是18px */
    }
}

/* 使用 rem 设置标题样式 */
/* 举例*/
h1 {
    font-size: 0.18rem; /* 在不同的视口宽度下,字体大小会根据根元素的大小自动调整 */
}
.class1 {
    width: 1.2rem; //1920像素等于120px
	height:1rem;   //1920像素等于100px
}

优点:稳定,只需要一套css媒体查询更改根元素的字体大小即可,设置多组分辨率,可实现窗口的放大缩小时字体大小、盒子大小跟着等比缩放,对比使用px单位而言,px需要设置多套不同像素下的各个元素间的公共样式文件,多套媒体查询,做不到全是响应式页面。

缺点:媒体查询的通病,改变字体会突然变大,变小。只能多设置几套分辨率对应不同的根元素字体尺寸,肉眼见不到“突然变大变小”,然后加上 transition: font-size 0.3s ease; /* 设置字体大小变化的过渡效果 */ ,实现平滑的效果,而不会突然变大变小。

2.使用 calc(100vw * 14/1920)

使用这个可以做到平滑的字体大小变化,只依赖视口宽度,跟分辨率无关,不需要设置媒体查询。

缺点1: 完全依赖视口宽高,会导致一个字体,在窗口变小1366分辨率往下,字体会变得特别小,需要单独设置到了某个最大宽度时的字体大小,就不会变化。

缺点:px原型图转换vh和vw困难。

//1920分辨率下
//定义公共的大小
$font-size-12:calc(100vw * 12/1920) //等于12px
$font-size-14:calc(100vw * 14/1920) //等于14px
$font-size-16:calc(100vw * 16/1920) //等于16px
$font-size-18:calc(100vw * 18/1920) //等于18px

$div-40: calc(100vw * 40/1920) //等于40px
$div-45: calc(100vw * 45/1920) //等于45px

3.使用px和媒体查询

有多少套像素就设计多少套公共class,并且vue文件里面的css需要响应式的话就又需要单独写媒体查询。

平滑也解决不了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值