响应式页面布局处理-一篇打尽

纯pc端响应式

pc端平常用到的响应式布局 大致就如下三种,当然也会有其他方法,欢迎评论区补充

  • 将div height、width设置成100%
  • flex布局

flex布局主要是将flex-wrap: wrap,

最后,你可以通过给子元素设置 flex 属性来控制它们的大小和扩展方式,flex 属性是 flex-grow, flex-shrink 和 flex-basis

  • grid布局

Grid 布局即网格布局,是一个二维的布局方式,由纵横相交的两组网格线形成的框架性布局结构,能够同时处理行与列

对于响应式页面可以由下面例子使用(配合媒体查询)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div class="container">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <style>
    .container{
      width: 100%;
      height: 100%;
      box-sizing:border-box;
      padding: 20px 40px;
      display: grid;
      align-items: start;
      column-gap: 20px;
      row-gap: 20px;
      grid-template-columns: repeat(6, 1fr);
      flex-wrap: wrap;
      overflow-y: auto;
      .item{
        border: 1px solid black;
        height: 220px;
        min-width: 60px;
      }
    }
    @media screen and (max-width: 1000px) {
      .container{ 
        grid-template-columns: repeat(5, 1fr);
    }
}
  </style>
</body>
</html>

2.移动端h5兼容pc端

这个没有别的方法了,只有媒体查询写两套样式代码

h5移动端:

使用em和rem 相对单位,木墙项目大多使用第三方插件实现,但他们的原理其实是类似的:

引入javascript脚本来实现font-size很屏幕之间的计算 ,就是拿到视口的

宽度 根据比例设置相应的根元素字体 从而设置相对参数的基准

(function(doc, win) {
            // 获取到html这个标签
            let docEL = doc.documentElement;
            let resizeEvent = "orientationchange" in window ? "orientationchange" : "resize",
                recalc = function() {
                    // 获取到档期啊设备的宽度
                    const clientWidth = docEL.clientWidth;
                    if (!clientWidth) return;
                    if (clientWidth > 750) {
                        // 给html设置一个内联样式
                        docEL.style.fontSize = "100px";
                    } else {
                        // 逻辑:以iphone678 为标准 算出来font-size 50px
                        docEL.style.fontSize = (clientWidth / 750) * 100 + "px";
                    }
                }
            recalc();
            win.addEventListener(resizeEvent, recalc, false);
            doc.addEventListener("DOMContentLoaded", recalc, false)
        })(document, window)

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于Bootstrap的简单页面布局示例网站: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Bootstrap Page Layout Example</title> <!-- 引入Bootstrap CSS文件 --> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css"> </head> <body> <!-- 导航栏 --> <nav class="navbar navbar-expand-lg navbar-light bg-light"> <a class="navbar-brand" href="#">Logo</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">About</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> </ul> </div> </nav> <!-- 页面主体 --> <div class="container mt-3"> <div class="row"> <div class="col-md-8"> <h1>Welcome to my website</h1> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, libero a aliquet dictum, nisi lacus lacinia metus, vel rhoncus ipsum mauris et ipsum. Sed scelerisque turpis non augue faucibus, vel tincidunt sapien euismod. Suspendisse quis vestibulum velit, eget laoreet nunc. Maecenas posuere fermentum ante, ac interdum felis ultrices quis. Duis ipsum dolor, scelerisque sit amet tellus et, efficitur rutrum nulla. Nulla facilisi.</p> </div> <div class="col-md-4"> <h3>Latest News</h3> <ul class="list-group"> <li class="list-group-item">News item 1</li> <li class="list-group-item">News item 2</li> <li class="list-group-item">News item 3</li> <li class="list-group-item">News item 4</li> </ul> </div> </div> </div> <!-- 引入Bootstrap JS文件 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script> </body> </html> ``` 该网站包含一个导航栏和一个主体内容区域。导航栏包含Logo和三个链接,可以通过Bootstrap的内置样式和组件轻松构建。主体内容区域是一个两列布局,左侧是一篇文章,右侧是最新新闻列表。通过Bootstrap的栅格系统,可以轻松实现响应式布局。最后,引入Bootstrap的JS文件,可以增强网站的交互性和用户体验。 希望这个示例可以帮助你了解如何使用Bootstrap制作简单页面布局

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值