Christine0106 2023-02-19 16:56 采纳率: 100%
浏览 51
已结题

vue项目适配不同分辨率屏幕

vue项目首页适配不同分辨率屏幕 (主要是1920 * 1080 / 1536 * 864 / 1280 * 720)
项目描述:
首页背景图铺满整个屏幕(有10个坑位的背景图),然后定位10张具体产品图片到10个坑位上,
实现效果:
在不同分辨率屏幕上能够正常显示,没有横向纵向滚动条

目前实现方案:
首页路由中的元素设置背景图(宽度自适应,高度通过js获取屏幕高度进行设置为具体高度),然后把10个图片通过百分比定位到背景图中的坑位上,但是在1536 和1280的屏幕上会出现背景图的坑位与10张图片错位的情况,没办法,通过$refs去更改其他2种屏幕尺寸下的top/left值,而且,有些电脑显示设备推荐125%分辨率,处理起来有点麻烦,大家有更合适的方案吗?

img

  • 写回答

2条回答 默认 最新

  • qq_46161207 2023-02-19 17:30
    关注

    针对你的需求,可以考虑使用CSS Grid或Flexbox来实现自适应布局。以下是一个可能的实现方案:

    1.在你的首页中,使用CSS Grid或Flexbox来实现自适应布局。比如,在CSS Grid中,可以这样设置样式:

    
    .container {
      display: grid;
      grid-template-columns: repeat(5, 1fr); /* 5列,每列宽度相同 */
      grid-template-rows: repeat(2, 1fr); /* 2行,每行高度相同 */
      grid-gap: 10px; /* 间隔10px */
    }
    
    .box {
      grid-column: span 1; /* 每个块占用1列 */
      grid-row: span 1; /* 每个块占用1行 */
    }
    

    2.将背景图片作为一个容器,在其中放置10个图片块,设置宽度为100%,高度为100vh(视口高度),以铺满整个屏幕。

    3.在每个图片块中放置对应的产品图片,并通过CSS设置它们在容器中的位置。可以使用百分比、grid或flex布局等方式来实现。

    4.在需要响应不同分辨率的情况下,可以使用CSS媒体查询来设置不同的样式。比如:

    
    @media screen and (max-width: 1536px) {
      /* 在分辨率小于等于1536px的屏幕下生效 */
      .box {
        /* 根据实际情况调整top/left值 */
        top: 10px;
        left: 20px;
      }
    }
    

    综上所述,使用CSS Grid或Flexbox来实现自适应布局可以更方便地适应不同分辨率的屏幕。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月27日
  • 已采纳回答 2月19日
  • 创建了问题 2月19日

悬赏问题

  • ¥15 用lstm来预测股票价格
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上