首页 > 其他分享 >自适应与响应式!!

自适应与响应式!!

时间:2024-11-16 22:14:30浏览次数:3  
标签:width 布局 适应 响应 宽度 尺寸 屏幕

自适应布局(Adaptive Layout)和响应式布局(Responsive Layout)是两种不同的设计方法,用于创建在不同设备上都能良好显示的网页或应用

自适应布局

自适应布局是一种网页设计技术,旨在创建能够适应不同设备屏幕尺寸的网页。以下是实现自适应布局的几个关键点:

使用百分比或视口单位

  • 百分比:元素的宽度可以设置为父容器宽度的百分比,这样可以确保元素宽度随父容器宽度的变化而变化。
  • 视口单位:如vw(视口宽度的百分比)和vh(视口高度的百分比),这些单位允许元素的大小相对于视口大小进行缩放。
.container {
  width: 80%; /* 宽度为父容器宽度的80% */
  padding: 5vw; /* 内边距为视口宽度的5% */
}

使用媒体查询

媒体查询是CSS3中的一个功能,允许你根据不同的屏幕尺寸、分辨率、设备类型等条件应用不同的CSS规则。通过媒体查询,你可以为不同的屏幕尺寸设置不同的样式。

/* 当屏幕宽度小于600px时 */
@media (max-width: 600px) {
  .header {
    font-size: 14px;
  }
}

/* 当屏幕宽度在600px到1024px之间时 */
@media (min-width: 601px) and (max-width: 1024px) {
  .header {
    font-size: 16px;
  }
}

/* 当屏幕宽度大于1024px时 */
@media (min-width: 1025px) {
  .header {
    font-size: 18px;
  }
}

使用流式布局

流式布局是一种基于相对单位的布局方式,元素的宽度设置为相对单位,如百分比或视口单位,使其根据父容器的宽度自动调整。这种布局方式可以使页面元素在屏幕尺寸变化时保持比例和布局结构。

.main-content {
  width: 70%; /* 宽度为父容器宽度的70% */
  float: left;
}

.sidebar {
  width: 30%; /* 宽度为父容器宽度的30% */
  float: right;
}

响应式布局

响应式布局是一种网页设计方法,它旨在确保网页内容在不同尺寸和分辨率的设备上都能提供良好的用户体验。响应式布局的实现通常涉及以下几个关键技术和策略:

弹性布局(Flexbox)和栅格系统(Grid)

  • Flexbox:CSS Flexbox布局提供了一种更加灵活的方式来对容器内的项目进行排列、对齐和分配空间,即使它们的大小未知或动态变化。Flexbox布局易于适应不同屏幕尺寸,并且可以轻松地实现复杂的布局结构。

.container {
  display: flex;
  flex-direction: row; /* 主轴为行 */
  justify-content: space-between; /* 项目均匀分布 */
  align-items: center; /* 项目在交叉轴上居中对齐 */
  flex-wrap: wrap; /* 如果空间不足,项目将换行 */
}

.item {
  flex: 1; /* 项目将等分剩余空间 */
}

  • Grid:CSS Grid布局是一个二维的布局系统,它允许你通过行和列来定义布局。Grid布局提供了更多的布局控制和灵活性,使得创建复杂的网页布局变得更加容易。

.container {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr; /* 三列,第一个和第三个列宽为1份,第二个列宽为2份 */
  grid-template-rows: auto 1fr auto; /* 三行,第一行和第三行高度自适应,第二行高度为1份 */
  grid-gap: 10px; /* 行与列之间的间隙为10px */
}

.item {
  grid-column-start: 2; /* 从第二列开始 */
  grid-column-end: 3; /* 到第三列结束 */
  grid-row-start: 2; /* 从第二行开始 */
  grid-row-end: 3; /* 到第三行结束 */
}

媒体查询(@media)

  • 媒体查询是CSS3中的一个功能,允许你根据不同的屏幕尺寸、分辨率、设备类型等条件应用不同的CSS规则。通过媒体查询,你可以为不同的屏幕尺寸设置不同的样式规则,从而实现响应式设计。
  .column {
    flex: 1 1 300px; /* 基础宽度为300px,可伸缩,可填充 */
    margin: 10px;
    padding: 20px;
    background-color: #f4f4f4;
  }

  /* 媒体查询 */
  @media (max-width: 768px) {
    .column {
      flex: 1 1 100%; /* 在小屏幕上,每个列都占满宽度 */
    }
  }

  /* 适当的资源加载 */
  img {
    max-width: 100%;
    height: auto;
  }

  @media (min-width: 600px) {
    /* 在屏幕宽度大于600px时,加载高分辨率的图片 */
    img {
      src: url('high-res-image.jpg');
    }
  }

  @media (max-width: 599px) {
    /* 在屏幕宽度小于600px时,加载低分辨率的图片 */
    img {
      src: url('low-res-image.jpg');
    }
  }

适当的资源加载

  • 使用图片、字体和媒体查询来根据屏幕尺寸加载适当大小的资源。例如,可以使用srcset属性为不同的屏幕尺寸提供不同分辨率的图片,或者使用font-display属性来控制字体的加载行为。
<img src="default.jpg" srcset="small.jpg 500w, medium.jpg 1000w, large.jpg 1500w" alt="Sample Image">
@font-face {
  font-family: 'MyFont';
  src: url('myfont.woff2') format('woff2');
  font-display: swap; /* 在字体加载时显示备用字体 */
}

自适应和响应式的异同

前面介绍完自适应和响应式后我们发现,他两都可以使用媒体查询,都是为了提升用户体验而创建适应不同设备屏幕尺寸的网页,那到底他们有什么区别呢???

相同点

  • 媒体查询:两者都使用媒体查询来根据不同的屏幕尺寸和特性应用不同的CSS规则。
  • 灵活性:两者都旨在创建能够适应不同设备屏幕尺寸的网页。

不同点

  • 设计理念

    • 自适应布局:通常基于固定的断点来定义多个布局。每个布局针对特定的屏幕尺寸进行优化,当屏幕尺寸达到某个断点时,网页会切换到新的布局。
    • 响应式布局:使用相对单位和媒体查询来创建一个能够根据屏幕尺寸动态调整的布局。这种布局可以适应任何屏幕尺寸,而不需要为每个尺寸创建单独的布局。
  • 实现方式

    • 自适应布局:可能需要创建多个布局,并使用媒体查询来切换不同的布局。
    • 响应式布局:通常使用相对单位和媒体查询来创建一个灵活的布局,使其能够适应任何屏幕尺寸。
  • 优缺点

    • 自适应布局:优点是能够针对特定设备优化布局,缺点是需要为不同的设备创建和维护多个布局。
    • 响应式布局:优点是只需创建一个布局,能够适应所有屏幕尺寸,缺点是可能会牺牲一些特定尺寸下的最佳用户体验。
  • 总结

    自适应布局和响应式布局都可以使用媒体查询来创建响应式网页,但它们的设计理念和应用方式有所不同。选择哪种方法取决于具体的需求和项目目标。如果需要为特定的设备提供最佳的用户体验,并且愿意为每个设备创建和维护单独的布局,那么自适应布局可能是更好的选择。如果需要创建一个能够适应任何屏幕尺寸的布局,并且希望减少开发工作量,那么响应式布局可能是更合适的选择。

标签:width,布局,适应,响应,宽度,尺寸,屏幕
From: https://blog.csdn.net/m0_74316302/article/details/143709198

相关文章

  • 配置proxyRes 可在响应头中看到请求的真实地址
    在Vite配置中,proxy选项用于设置开发服务器的代理规则。通过这些代理规则,你可以将前端开发服务器的请求转发到后端API服务器,从而解决开发环境中的跨域问题。你提到的配置片段详细地设置了代理规则,下面是对这段代码的详细解释:代码解析proxy:{[viteEnv.VITE_BASE_API]:{......
  • 【需求侧响应】综合能源中多种需求响应——弹性电价、可平移及可削减研究(Matlab代码实
    ......
  • 响应式Web设计:纯HTML和CSS实现技巧
    响应式Web设计是一种确保网页在不同设备和屏幕尺寸下都能良好显示的设计方法。以下是使用纯HTML和CSS实现响应式设计的关键技巧:流式布局(FluidLayouts):使用相对单位(如百分比)而非固定单位(如像素)来定义元素的宽度,使元素能根据容器宽度动态调整。媒体查询(MediaQueries):根据不同......
  • 检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况
    https://www.cnblogs.com/czhyuwj/p/4796690.html CSS3SelectorsTest:这是CSS3.INFO网站提供的css选择器测试页面,它能够详细显示当前浏览器对所有CSS3选择器的支持情况。启动测试,浏览器会自动测验,并已列表的方式显示当前浏览器对所有css3选择器的支持情况  http://tool......
  • 1+x应急响应初级(网络)准备阶段
    应急响应准备工作1+X的来历:1是指学历证书X是指获得的若干个职业证书应急响应的概念:组织应对各种意外事件发生准备,以及事件发生后的措施采取,目的是减少突发事件造成的损失等。应急响应机制:是由政府或组织推出的针对各种突发事件而设立的各种应急方案。法律法规:......
  • 应急响应-知攻善防web3
    应急响应-知攻善防web3前景需要:小苕在省护值守中,在灵机一动情况下把设备停掉了,甲方问:为什么要停设备?小苕说:我第六感告诉我,这机器可能被黑了。这是他的服务器,请你找出以下内容作为通关条件:Windows:administrator/xj@1234561.请输入攻击者第一个ip地址:192.168.75.129在p......
  • canny 算法 python实现, 双边滤波--自适应阈值改进--形态学操作
    #-*-coding:utf-8-*-importnumpyasnpimportcv2importosimportcsv#高斯滤波defsmooth(image,sigma=1.4,length=5):#Computegaussianfilterk=length//2gaussian=np.zeros([length,length])foriinrange(length):for......
  • 浅响应式数据(Shallow Reactive 和 Shallow Ref)
    在Vue3中,shallowReactive和shallowRef是用于创建浅响应式数据的工具。它们与普通的reactive和ref不同,只对对象的第一层属性进行响应式处理,而不会递归地使嵌套对象的属性也变成响应式的。shallowReactive问题:当你有一个嵌套较深的对象,并且你只关心对象的第一层属......
  • 揭秘!Vue3.5响应式重构如何让内存占用减少56%
    前言Vue3.5版本又将响应式给重构了,重构后的响应式系统主要有两部分组成: 双向链表和版本计数。我们在前两篇文章中我们已经讲过了,这篇文章我们来讲讲为什么这次重构能够让内存占用减少56%。为什么说“又”将响应式重构了因为在之前的Vue3.4版本中刚刚将响应式给重构了,这......
  • 启动mysql报错“服务没有响应控制功能”
    启动mysql服务器报错,如图: 解决方案:1、查看path环境变量配置正确2、查看初始化配置文件正确[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=D:\\mysql-8.0.40-winx64#设置mysql数据库的数据的存放目录datadir=D:\\mysql-8.0.40-winx64\\data#允......