关于响应式页面的几种处理方法

  • 2021-01-12
    我本来还看了一些网页设计的课程,本来想找里面的一部分内容来着,结果怎么也找不到当时的笔记了,唉怪我自己没收好,生气

一、使用框架实现响应式

做响应式最简单方便的就是用现成的框架或者UI库,常见的有Bootstrap、ElementUI、LayUI等等,这里拿Bootstrap来举例:


1. 栅格系统

大部分框架都有栅格系统,我们可以根据这个直接来规定不同设备上的布局,省去了很多手写的麻烦。

超小屏幕 手机 (<768px)小屏幕 平板 (≥768px)中等屏幕 桌面显示器 (≥992px)大屏幕 大桌面显示器 (≥1200px)
类前缀.col-xs-.col-sm-.col-md-.col-lg-
最大列(column)宽自动~62px~81px~97px

Bootstrap把每一行分成12列,使用的时候在类名上加上我们想要的行宽,系统就可以自动分配了。

<div class="row">
  	<div class="col-xs-12 col-md-4">1</div>
  	<div class="col-xs-12 col-md-4">2</div>
  	<div class="col-xs-12 col-md-4">3</div>
</div>

这部分的代码在手机上是一列展示的,在电脑上就是三列展示的。



2. 响应式工具

除了栅格系统,Bootstrap 自带的响应式工具也可以帮助我们快速的搭建响应式页面。

可以通过单独或联合使用以下列出的类,可以针对不同屏幕尺寸隐藏或显示页面内容。

超小屏幕 手机 (<768px)小屏幕 平板 (≥768px)中等屏幕 桌面 (≥992px)大屏幕 桌面 (≥1200px)
.visible-xs-*可见隐藏隐藏隐藏
.visible-sm-*隐藏可见隐藏隐藏
.visible-md-*隐藏隐藏可见隐藏
.visible-lg-*隐藏隐藏隐藏可见
.hidden-xs-*隐藏可见可见可见
.hidden-sm-*可见隐藏可见可见
.hidden-md-*可见可见隐藏可见
.hidden-lg-*可见可见可见隐藏

用法类似栅格系统,添加对应的类名就可以了,可以控制在不同页面中的页面布局。



二、手写CSS实现响应式

其实我个人用CSS手写的方法比较多,因为在不同设备下,每个内容块的展示方式、布局或者大小可能都是不一样的,栅格系统能够帮我们更改布局,但是更多的比如字体大小这种样式还是要我们重新设置的,手写的话可以一边设置布局,一边就把样式也完成了。


1. 媒体查询(@media)

想要手写响应式页面,最最基础的当然是媒体查询。

有很多媒体类型都已经被废弃不用了,我个人比较常用的是这两个:

  • max-width:最大宽度。
  • min-width:最小宽度。
body {
    background-color: red;
}
@media screen and (max-width: 768px) {
    body {
        background-color: green;
    }
}

在屏幕宽度小于 768px 时,body 是绿色,不然就是红色。

要注意,先写通用样式,然后从小往大写。
因为小屏幕的样式比较少,如果先写大屏幕样式,有了浮动或者定位,要清除起来就比较麻烦。



2. 设置 Meta 标签

大多数移动浏览器将HTML页面放大为宽的视图(viewport)以符合屏幕分辨率。
你可以使用视图的meta标签来进行重置。下面的视图标签告诉浏览器,使用设备的宽度作为视图宽度并禁止初始的缩放。
在< head>标签里加入这个 meta 标签。

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">


3. 宽度设置

元素的宽度用百分比(%)或者 vw、vh 这个不用我多说了吧~
不光响应式,普通PC页面肯定也是要这样设置的。

另外,可以给元素设置最大宽度(wax-width)和最小宽度(min-width)控制缩放量。
比如这个页面的主体内容我希望他占页面的60%,但是最小也不要低于1000px:

.main{
	width: 60%;
	min-width: 1000px;
}


4. 计算尺寸

计算尺寸可能对于响应式来说没那么友好,因为一个元素的宽度我想要跟页面保持一致(100%),但是两边的边距我又想固定(20px)。这个时候就可以利用盒模型来实现啦~

可以参考我之前写过的文章~
css盒子模型和样式更改: 点这里跳转





  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值