常见的移动端布局

流式布局(百分比布局)

使用百分比、相对单位(如 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

相关推荐
志尊宝2 小时前
Vue3 零基础每日笔记(048):嵌套路由与命名视图——后台管理系统布局雏形
前端·javascript·vue.js·笔记·html5
@tangguo1233 小时前
npm 和 yarn 配置说明
前端·javascript·npm·node.js·yarn
志尊宝3 小时前
Vue3 零基础每日笔记(052):路由常见坑一次排雷——404、刷新丢参数、部署白屏
前端·javascript·vue.js·笔记·html5
linux_cfan3 小时前
videojs v10 源代码系列解读:13 · 能力型媒体契约:`Media` 的组合接口
前端·javascript·音视频
福兮说4 小时前
Canvas 文字排版:measureText 量出来的宽度为什么总是不对
前端·javascript
用户80806181436934 小时前
JavaScript 面向对象入门到精通
前端·javascript
一条溺水的鱼4 小时前
一次讲透 JS 闭包 —— 概念、原理、应用和内存泄漏
javascript·面试
吠品5 小时前
STM32最小系统板引脚梳理与配置实操
前端·javascript·vue.js
Hilaku5 小时前
Sass 和 Less 在 2026 年彻底多余了吗?
前端·javascript·程序员
右耳朵猫AI5 小时前
Node.js周刊2026W38 | 进程中断缺陷修复、Copilot 迁至 Rust、Node 新增 VFS
javascript·后端·node.js