常见的移动端布局

流式布局(百分比布局)

使用百分比、相对单位(如 em、rem)等来设置元素的宽度,使页面元素根据视口大小的变化进行调整。这种方法可以实现基本的自适应效果,但可能在不同设备上显示不一致。

html 复制代码
 
<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    .container {
      width: 100%;
      max-width: 1200px;
      margin: 0 auto;
      padding: 20px;
    }

    .box {
      width: 100%;
      height: 200px;
      background-color: #e0e0e0;
      margin-bottom: 20px;
    }

    @media (min-width: 768px) {
      .box {
        width: 50%;
      }
    }

    @media (min-width: 1024px) {
      .box {
        width: 33.33%;
      }
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
  </div>
</body>
</html>

flex弹性布局(强烈推荐)

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="style.css">
  <title>Flexbox Layout Example</title>
</head>
<body>
  <div class="container">
    <div class="box1">Box 1</div>
    <div class="box2">Box 2</div>
    <div class="box3">Box 3</div>
  </div>
</body>
</html>

/* styles.css */
body {
  margin: 0;
  font-family: Arial, sans-serif;
}

.container {
  display: flex; /* 使用 Flexbox 布局 */
  justify-content: space-between; /* 在主轴上均匀分布元素 */
  align-items: center; /* 在交叉轴上居中对齐元素 */
  padding: 20px;
}


.box1{
  background-color: aqua;
  width: 10%;
}
.box2{
  background-color:brown;
  flex: 1;
}

.box3{
  background-color: blue;
  width: 10%;
}

rem+媒体查询布局

rem基础

rem(root em)是一个相对单位,类似于em,em是父元素字体大小。

不同的是rem的基准是相对于html元素的字体大小。

比如,根元素(html)设置font-size=12px,非根元素设置width:2rem;则换成px表示就是24px。

em相对于父元素的字体大小来说的

rem相对于html元素字体大小来说的

rem的优点就是可以通过修改html里面的文字大小来改变页面中元素的大小可以整体控制。

媒体查询

媒体查询(Media Query)是CSS3新语法。

· 使用@media查询,可以针对不同的媒体类型定义不同的样式

· @media可以针对不同的屏幕尺寸设置不同的样式

· 当重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面

· 目前针对很多苹果手机、Android手机,平板等设备都用得到多媒体查询

语法规范:

@media mediatype and|not|only (media feature) {

CSS-Code;

}

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>媒体查询案例背景变色</title>
    <style>
        /* 1.媒体查询一般按照从大到小或者从小到大的顺序来 */
        /* 2.小于540px 页面的背景颜色变为蓝色 */
 
        @media screen and (max-width: 539px) {
            body {
                background-color: blue;
            }
        }
        /* 3. 540~970 我们的页面颜色改为绿色 */
        @media screen and (min-width: 540px) and (max-width:969px) {
            body {
                background-color: green;
            }
        }
        /* 4. 大于等于970 我们页面的颜色改为红色 */
        @media screen and (min-width: 970px) {
            body {
                background-color: pink;
            }
        }
        /* 5. screen 还有and必须带上不能省略 */
        /* 6. 我们的数字后面必须跟单位 970px 这个px不能省略 */
    </style>
</head>
<body></body>
</html>
html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>媒体查询+rem案例</title>
    <style>
        /* 从小到大顺序 */
        @media screen and (min-width: 320px) {
            html {
                font-size: 50px;
            }
        }
        @media screen and (min-width: 640px) {
            html {
                font-size: 100px;
            }
        }
 
        div {
            height: 1rem;
            font-size: .5rem;
            background-color: green;
            color: #fff;
            text-align: center;
            line-height: 1rem;
        }
    </style>
</head>
<body>
    <div>实例</div>
</body>
</html>

响应式布局:bootstrap

引用:

https://blog.csdn.net/xy_is_fhh/article/details/121662703

相关推荐
清灵xmf37 分钟前
在 Vue 中实现与优化轮询技术
前端·javascript·vue·轮询
小白白一枚1112 小时前
css实现div被图片撑开
前端·css
薛一半2 小时前
PC端查看历史消息,鼠标向上滚动加载数据时页面停留在上次查看的位置
前端·javascript·vue.js
@蒙面大虾2 小时前
CSS综合练习——懒羊羊网页设计
前端·css
过期的H2O22 小时前
【H2O2|全栈】JS进阶知识(四)Ajax
开发语言·javascript·ajax
MarcoPage2 小时前
第十九课 Vue组件中的方法
前端·javascript·vue.js
顾菁寒3 小时前
WEB第二次作业
前端·css·html
你好龙卷风!!!3 小时前
vue3 怎么判断数据列是否包某一列名
前端·javascript·vue.js
shenweihong4 小时前
javascript实现md5算法(支持微信小程序),可分多次计算
javascript·算法·微信小程序
荆州克莱4 小时前
[FE] React 初窥门径(四):React 组件的加载过程(render 阶段)
spring boot·spring·spring cloud·css3·技术