HTML5如何利用rem实现自适应布局

HTML5如何利用rem实现自适应布局,第1张

分析设计图

假设设计图大小为1080px。这也就意味着,在开发时,需要兼容的最大分辨率为1080px,最小的为320px。

2. 调整视口

代码实例:

<!DOCTYPE html>

<head>

    <meta charset="UTF-8" />

    <title>布局之路-移动端开发实例</title>

    <meta name="viewport" content="width=device-width,user-scalable = no" />

    <link rel="stylesheet" type="text/css" href="css/reset.css" />

</head>

<body>

    <div class="wrap"></div>

</body>

</html>

代码解析:由于使用不同设备打开网页时,宽度均有所不同,所以不能讲视口设置为固定值,应当为width=device-width,即将视口设置为当前设备的宽度。

3. 确定设计图的最小字体

浏览器(部分)能够显示的最小字体未12px,当移动端页面宽度为320px时,要保证最小字体为12px,那么在1080px的设计图中,最小字体应当为42px。

代码实例:

    <style type="text/css">

        html {

            font-size: 42px

        }

    </style>

4. 按照设计图的像素进行开发

按照正常网页开发流程,进行网页开发即可。

5. 使用百分比和rem替换px

代码效果对比:

/*使用固定像素*/

.box {

    float: left

    width: 658px

    font-size: 72px

    text-align: center

    line-height: 195px

}

/*使用百分比和rem*/

.box {

    float: left

    width: 60.93%

    font-size: 1.71rem

    text-align: center

    line-height: 4.64rem

}

代码解析:

水平方向的值,将具体像素调整为百分比。百分比的计算是根据父级的内容区宽度进行计算的。

例如,父级宽度为1080px, 子级元素为197px,那么子元素转换为百分比为:197/1080*100%=18.24%。需要注意的是百分比根据父级计算,当标签结构级别不同时,计算公式中的“分母”也有所不同,在开发时这个地方很容易出现问题,请务必注意。

垂直方向的值,将具体像素调整为rem,与水平方向相比,垂直方向的计算就比较简单。例如,行高为195px,HTML标签当前的字体大小为42px,将行高转换为rem单位,即195/42= 4. 64rem。

响应式布局最简单的就是用css3来实现。我举一个最简单的例子。

下面是html代码

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name ="viewport" content="width = device-width,initial-scale=1">

<title>index01</title>

<link href="style01.css" type="text/css" rel="stylesheet">

</head>

<body>

<div class="heading">第一</div>

<div class="container">

<div class="left">第二</div>

<div class="main">第三</div>

<div class="right">第四</div>

</div>

<div class="footing">第五</div>

</body>

</html>

下面是css3代码

*{

margin:0px

padding: 0px

}

.heading,

.container,

.footing{

margin: 10px auto

}

.heading{

height: 100px

background-color: red

}

.left,

.right,

.main{

height: 300px

background-color: yellow

}

.footing{

height: 100px

background-color: gray

}

<!--media="only screen and (max-width:640px)" 这句话的意思是:只要当渲染屏幕的宽度不大于640px的时候才会使用这个样式表-->

@media screen and (min-width: 960px){

.heading,

.container,

.footing{

width:960px

}

.left,

.main,

.right{

float: left

height: 500px

}

.left,

.right{

width:200px

}

.main{

margin: 0px 5px

width:550px

}

.container{

height: 500px

}

}

@media screen and (min-width: 600px) and (max-width: 960px){

.heading,

.container,

.footing{

width: 600px

}

.left,

.main{

float: left

height:400px

}

.right{

display: none

}

.left{

width: 160px

}

.main{

width: 435px

margin-left: 5px

}

.container{

height: 400px

}

}

@media screen and (max-width: 600px){

.heading,

.container,

.footing{

width: 400px

}

.left,

.right{

width: 400px

height: 100px

}

.main{

margin-top: 10px

width:400px

height:200px

}

.right{

margin-top: 10px

}

.container{

height: 420px

}

}

这样就可以实现简单的响应式布局!如果你想要了解的话,可以到华清远见学习一下。我就是在那里学习的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7251689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存