常见的移动端布局

流式布局(百分比布局)

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

相关推荐
活宝小娜39 分钟前
vue不刷新浏览器更新页面的方法
前端·javascript·vue.js
程序视点41 分钟前
【Vue3新工具】Pinia.js:提升开发效率,更轻量、更高效的状态管理方案!
前端·javascript·vue.js·typescript·vue·ecmascript
coldriversnow43 分钟前
在Vue中,vue document.onkeydown 无效
前端·javascript·vue.js
我开心就好o44 分钟前
uniapp点左上角返回键, 重复来回跳转的问题 解决方案
前端·javascript·uni-app
刚刚好ā2 小时前
js作用域超全介绍--全局作用域、局部作用、块级作用域
前端·javascript·vue.js·vue
yqcoder3 小时前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
会发光的猪。4 小时前
css使用弹性盒,让每个子元素平均等分父元素的4/1大小
前端·javascript·vue.js
天下代码客4 小时前
【vue】vue中.sync修饰符如何使用--详细代码对比
前端·javascript·vue.js
Domain-zhuo5 小时前
什么是JavaScript原型链?
开发语言·前端·javascript·jvm·ecmascript·原型模式
小丁爱养花5 小时前
前端三剑客(三):JavaScript
开发语言·前端·javascript