【CSS】说说响应式布局

本文介绍了响应式设计的核心概念,如何通过媒体查询、百分比、vw/vh实现布局自适应,以及其优点和缺点。重点强调了使用这些技术进行跨设备兼容和流式布局的过程。
摘要由CSDN通过智能技术生成

目录

一、是什么

二、怎么实现

1、媒体查询

2、百分比

3、vw/vh

4、小结

三、总结


一、是什么

        响应式设计简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。

·        响应式网站常见特点:

  • 同时适配PC + 平板 + 手机等

  • 标签导航在接近手持终端设备时改变为经典的抽屉式导航

  • 网站的布局会根据视口来调整模块的大小和位置

二、怎么实现

        响应式设计的基本原理是通过媒体查询检测不同的设备屏幕尺寸做处理。为了适应屏幕,多数的移动浏览器会把HTML网页缩放到设备屏幕的宽度。

        可以使用 meta 标签的 viewport 属性来设置。下面的代码告诉浏览器使用设备屏幕宽度作为内容的宽度,并且忽视初始的宽度设置。这段代码写在 <head>里面。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  • viewport:即视图窗口,表示网页的可是区域;

  • width=device-width: 是自适应手机屏幕的尺寸宽度;

  • inital-scale:是缩放的初始化,也就是页面第一次加载时的缩放比例;

  • maximum-scale:是缩放比例的最大值,范围从0.0~10.0;

  • user-scalable:是用户的可以缩放的操作,“yes”表示允许缩放,“no”表示禁止缩放。

实现响应式布局的方式有如下:

  • 媒体查询
  • 百分比
  • vw/vh
  • rem

1、媒体查询

  CSS3中的增加了更多的媒体查询,就像if条件表达式一样,我们可以设置不同类型的媒体条件,并根据对应的条件,给相应符合条件的媒体调用相对应的样式表使用@Media查询,可以针对不同的媒体类型定义不同的样式,语法如下:

@media mediatype and|not|only (media feature) { CSS-Code;}
@media screen and (max-width: 1920px) { ... }

(当视口宽度小于1920px样式发生......改变)

@media screen (min-width: 400px) and (max-width: 600px) {
  body {
    font-size: 40px;
  }
}

(当视口宽度在大于等于400px并且小于等于600px,字体大小变为40px)

通过媒体查询,可以通过给不同分辨率的设备编写不同的样式来实现响应式布局

2、百分比

        当浏览器的宽度或者高度发生变化时,可以通过百分比单位,可以使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果。

        但是每个属性都使用百分比,会照成布局的复杂度,所以不建议使用百分比来实现响应式。

3、vw/vh

  vw表示相对于视图窗口的宽度,vh表示相对于视图窗口高度。 任意层级元素,在使用vw单位的情况下,1vw都等于视图宽度的百分之一。

        但是每个属性都使用vh/vw,会照成布局的复杂度,所以不建议使用vh/vw来实现响应式。

4、小结

响应式设计实现通常会从以下几方面思考:

  • 弹性盒子(包括图片、表格、视频)和媒体查询等技术
  • 使用百分比布局创建流式布局的弹性UI,同时使用媒体查询限制元素的尺寸和内容变更范围
  • 使用相对单位使得内容自适应调节
  • 选择断点,针对不同断点实现不同布局和内容展示

三、总结

优点:

  • 面对不同分辨率设备灵活性强

  • 能够快捷解决多设备显示适应问题

缺点:

  • 兼容各种设备工作量大,效率低下
  • 代码累赘,会出现隐藏无用的元素,加载时间加长
  • 其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果
  • 一定程度上改变了网站原有的布局结构,会出现用户混淆的情况
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
响应式布局是一种能够根据设备屏幕大小和分辨率自动调整页面布局的技术。CSS是实现响应式布局的关键工具之一。下面是一些常用的CSS技术和方法来实现响应式布局: 1. 媒体查询(Media Queries):使用媒体查询可以根据不同的设备屏幕大小应用不同的CSS样式。通过在CSS中定义不同的媒体查询规则,可以根据屏幕宽度、高度、设备类型等条件来应用不同的样式。 2. 弹性盒子布局(Flexbox):Flexbox是一种弹性布局模型,可以方便地创建灵活的、自适应的布局。通过设置容器和子元素的flex属性,可以实现自动调整元素的大小和位置。 3. 网格布局(Grid Layout):网格布局是一种二维布局系统,可以将页面划分为行和列,并通过设置网格单元格的大小和位置来实现布局。网格布局提供了更精确的控制,适用于复杂的布局需求。 4. 相对单位(Relative Units):使用相对单位(如百分比、em、rem等)可以根据父元素或根元素的大小来设置元素的尺寸。相对单位可以使元素相对于其容器进行自适应调整。 5. 图片和媒体的响应式处理:通过设置max-width属性和width:auto,可以使图片和媒体元素根据容器大小自动调整大小,避免溢出或变形。 6. 隐藏和显示元素:通过设置display属性或使用CSS伪类(如:visible和:hidden)可以根据屏幕大小来隐藏或显示特定的元素,以适应不同的设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早睡第一人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值