美文网首页
div+flex移动端布局

div+flex移动端布局

作者: 樊小勇 | 来源:发表于2019-03-21 21:50 被阅读0次

移动端布局

1.我们要进行移动端页面的开发设计第一肯定想到的是弹性盒子
2.弹性盒子flex
3.div和flex的配合使用

移动端页面

1.移动端需要引入一个样式,meta
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> 随便打开一个网站F12调成手机模式,复制meta
2.弹性盒子
一个div设置了display: flex; 就成了一个弹性盒子
因此我们把移动端界面布局称为div+flex布局

flex水平和垂直对齐方式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        ul {
            margin: 0;
            padding: 0;
            list-style: none;
            border: 1px solid;
            height: 300px;
            width: 500px;
            display: flex;
            /* 水平对齐方式 */
            /* 左对齐 */
            justify-content: flex-start;
            /* 居中 */
            justify-content: center;
            /* 右对齐 */
            justify-content: flex-end;
            /* 两端对齐 */
            justify-content: space-between;
            /* 分散对齐 */
            justify-content: space-around;

            /* 垂直对齐 */
            /* 顶部对齐 */
            align-items: flex-start;
            /* 底部对齐 */
            align-items: flex-end;
            /* 居中对齐 */
            align-items: center;
        }
        li {
            background: gray;
            color: #fff;
            height: 50px;
            width: 100px;
        }
    </style>
</head>
<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</body>
</html>
inline-flex行内弹性盒子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        span {
            height: 100px;
            width: 300px;
            border: 1px solid;
            /* 水平居中,垂直居中 */
            display: inline-flex;
            justify-content: center;
            align-items: center;
        }
    </style>
</head>
<body>
    <h3>inline-flex用法和flex一样</h3>
    <span>
        行内弹性盒子
    </span>
</body>
</html>
flex-grow剩余空间分配方式

1.平均分配

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
         div {
            width: 500px;
            border: 1px solid;
            display: flex;
         }
         p {
             width: 100px;
             background: gray;
             color: #fff;
             border: 1px solid red;
             /* 剩余空间分为3分,三个p标签各占1份,相当于平均分配 */
             flex-grow: 1;
         }
    </style>
</head>
<body>
    <div>
        <p class="p1">1</p>
        <p class="p2">2</p>
        <p class="p3">3</p>
    </div>
</body>
</html>

2.某一个子元素占据全部剩余空间

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
         div {
            width: 500px;
            border: 1px solid;
            display: flex;
         }
         p {
             width: 100px;
             background: gray;
             color: #fff;
             border: 1px solid red;
         }
         .p3 {
             /* 剩余空间分为1分,p3占一份 */
             flex-grow: 1;
         }
    </style>
</head>
<body>
    <div>
        <p class="p1">1</p>
        <p class="p2">2</p>
        <p class="p3">3</p>
    </div>
</body>
</html>

3.按需求分配

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
         div {
            width: 500px;
            border: 1px solid;
            display: flex;
         }
         p {
             width: 100px;
             background: gray;
             color: #fff;
             /* border: 1px solid red; */
            
         }
         .p1,.p2 {
             /* 剩余空间分为四份,p1,p2各占一份 */
            flex-grow: 1;
         }
         .p3 {
              /* 剩余空间分为四份,p3占两份 */
             flex-grow: 2;
         }
    </style>
</head>
<body>
    <div>
        <p class="p1">1</p>
        <p class="p2">2</p>
        <p class="p3">3</p>
    </div>
</body>
</html>
flex-direction盒子排列方向
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 500px;
            width: 200px;
            border: 1px solid;
            margin: 0 auto;
            display: flex;
            /* 排列方向默认是row(水平) */
            flex-direction: column;
            /* 水平方向居中 */
            align-items: center;
            /* 垂直对齐 */
            justify-content: center;
        }
        p {
            margin: 0;
            height: 50px;
            width: 100px;
            background: gray;
            color: #fff;
        }
    </style>
</head>
<body>
    <div>
        <p>1</p>
        <p>2</p>
        <p>3</p>
    </div>
</body>
</html>
盒子换行设置
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        ul {
            margin: 0;
            padding: 0;
            list-style: none;
            border: 1px solid;
            height: 300px;
            width: 500px;
            display: flex;
            /* 分散对齐 */
            justify-content: space-around;
            /* 居中对齐 */
            align-items: center;
            /* 换行设置,默认不换行 */
            flex-wrap: wrap;
        }
        li {
            border: 1px solid;
            background: gray;
            color: #fff;
            height: 50px;
            width: 100px;
        }
    </style>

</head>
<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
        <li>11</li>
        <li>12</li>
        <li>13</li>
        <li>14</li>
        <li>15</li>
        <li>16</li>
        <li>17</li>
        <li>18</li>
        <li>19</li>
        <li>20</li>
    </ul>
</body>
</html>

相关文章

  • div+flex移动端布局

    移动端布局 1.我们要进行移动端页面的开发设计第一肯定想到的是弹性盒子2.弹性盒子flex3.div和flex的配...

  • web移动端布局之流式布局

    移动端布局之流式布局meta视口标签,写移动端布局必须加入视口标签: 二倍图:在移动端布局中,我们需要一个5050...

  • 补充8: flex布局

    flex 布局与传统布局 传统布局兼容性好, 但是布局繁琐, 且不适合移动端flex布局更方便, 更适用移动端. ...

  • 移动端css(三)

    目录: 1 移动端特点 2 百分比布局 3 Flex布局 一 移动端特点 • 移动端和PC端网页不同点• 谷歌模拟...

  • 网络编程(七)移动端布局(1)

    pink老师移动端布局还有最后一小部分,坚持下,很快就能把网页端及移动端布局学完了。这篇博客主要讲述的是移动端布局...

  • 移动端布局

    移动端布局 移动端h5、Android、iOS的各自实现方式不同,布局方式也不同。但,随着移动终端的普及,用户展示...

  • web移动端常见面试题以及适配兼容问题

    1、移动端你们一般采用什么布局?移动端设计稿是多大的尺寸? ● 定宽布局 ● 一般移动端设计稿是640或者750的...

  • 移动端布局方案 rem

    移动端布局方案 rem 示例

  • 移动端

    app Web App Hybird App 移动端页面 设计图 测试 移动端的设置 移动端的布局 弹性 fl...

  • 移动布局

    移动web开发流式布局 ====================== 1.0 移动端基础 1.1浏览器现状 PC端...

网友评论

      本文标题:div+flex移动端布局

      本文链接:https://www.haomeiwen.com/subject/qvuhvqtx.html