前端 介绍常见两种pc适配方案


团队博客:无恃而安


1、自适应介绍

1.1、场景

1:电商网站: 在PC端,自适应设计能够确保商品页面在各种显示器上清晰可读,购物车和结算流程也能顺畅进行。用户能够方便地浏览商品、查看图片和提交订单,无论是在高分辨率的大屏显示器还是较小的电脑屏幕上。

2:企业官网: 企业网站通常需要展示丰富的信息和图表,包括公司介绍、服务内容和联系方式。自适应设计能够确保这些内容在不同的PC屏幕上都能以最优方式呈现,使潜在客户和合作伙伴能够快速获取信息。

3:在线教育平台: 教育平台上的课程内容、视频和互动模块需要在各种屏幕上都能正常显示。自适应设计使得学习者能够在不同设备上享受一致的学习体验,提高了学习的便利性和效果。

1.2、意义

1:提升用户体验: 通过自适应设计,用户在不同的设备和屏幕尺寸下都能享受到优化的浏览体验,减少了页面缩放和滚动的需要,提高了网站的可用性。

2:增加网站访问量: 自适应设计使网站能够适配更多类型的设备和屏幕,增加了访问的灵活性。这有助于吸引和留住更多用户,提高网站的整体流量。

3:提高开发效率: 采用自适应设计可以减少为不同设备开发和维护多个版本网站的需要,从而节省开发和维护的时间和成本。

4:增强SEO表现: 搜索引擎通常更倾向于推荐适配性强的网站。良好的自适应设计能够提高网站的搜索引擎排名,从而增加曝光率和访问量。

2、方案一 适配宽高

2.1、介绍:适配小于比例的宽或高,进行缩放 并移动位置使其在页面中心点

2.2、缺点:两侧或上下可能会留白 字体变小

<template>
  <div ref="appRef" class="appRef">
    <router-view />
  </div>
</template>

<script setup>
import {
   
    ref, onMounted, onBeforeUnmount } from 'vue';

const scale = {
   
   
  width: '1',
  height: '1'
};

const baseWidth = 1920;
const baseHeight = 1080;
const baseProportion = parseFloat((baseWidth / baseHeight).toFixed(5));

const appRef = ref(null);
const drawTiming = ref(null);

const resize = function () {
   
   
  clearTimeout(drawTiming.value);
  drawTiming.value = setTimeout(() => {
   
   
    calcRate();
  }, 200);
}
### React 应用在 PC 适配方法与最佳实践 #### 使用 CSS 媒体查询实现响应式设计 为了确保应用程序能够在不同尺寸的屏幕上正常显示,CSS媒体查询是一个非常有效的工具。通过定义特定断点处的不同样式规则来调整布局和元素大小。 ```css /* 定义桌面设备上的最小宽度 */ @media (min-width: 768px) { .container { width: 90%; margin-left: auto; margin-right: auto; } } ``` 对于更精细控制,还可以利用`-webkit-min-device-pixel-ratio`属性针对高密度屏幕优化图像和其他视觉效果[^2]。 #### 利用 Flexbox 或 Grid 进行灵活布局 现代浏览器广泛支持Flexbox 和 CSS Grid ,这两种技术允许创建复杂而动态变化的界面结构而不必依赖于传统的浮动定位方式。 ```css .container { display: flex; justify-content: space-between; /* 子项之间留白分布 */ } .grid-container { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); } ``` #### 图片资源自适应加载 采用 `srcset` 属性指定多个版本图片供浏览器按需选取最合适的文件下载并展示给用户查看。 ```html <img src="small.jpg" srcset="large.jpg 1024w, medium.jpg 640w, small.jpg 320w" sizes="(max-width: 600px) 48vw, (max-width: 900px) 32vw, 30vw" alt="Example Image"> ``` #### JavaScript 动态调整逻辑 有时仅靠纯前端样式难以满足需求,则可以通过编程手段获取当前窗口尺寸进而执行相应操作;例如改变某些组件的行为模式或是重新计算位置参数等。 ```javascript import { useEffect } from 'react'; function useWindowSize() { const [size, setSize] = useState([window.innerWidth, window.innerHeight]); function changeSize() { setSize([window.innerWidth, window.innerHeight]); } useEffect(() => { window.addEventListener('resize', changeSize); return () => { window.removeEventListener('resize', changeSize); }; }, []); return size; } ``` 当涉及到跨平台开发时(如同时面向Web与移动),考虑使用像PixelRatio这样的API可以帮助更好地处理像素比例差异问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值