粘连布局

 粘连布局,又称为stick footer布局。在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过。它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部;如果内容足够长时,页脚块会被内容向下推送。

 

0,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
    <title>Title</title>
    <link rel="stylesheet" href="css/reset.css">
    <style>
        #wrap{
            width: 100%;
            min-height: 100%;
        }
        #main{
            background: yellowgreen;
            padding-bottom: 30px;
        }
        #footer{
            width: 100%;
            height: 30px;
            background: deeppink;
            margin-top: -30px;
        }
    </style>
</head>
<body>
<div id="wrap">
    <div id="main">
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
        main<br>
    </div>
</div>
<div id="footer">底部</div>
</body>
</html>

 

1.绝对定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    html,body{height:100%}
    body{margin:0}
    .box{position:relative;background-color:lightblue;min-height:100%;}
    .content{padding-bottom:50px;}
    .sticky{position:absolute;background-color:deepskyblue;width:100%;height:50px;bottom:0;}
  </style>
</head>
<body>
<div class="box">
  <main class="content">
    决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
   ...
  </main>
  <footer class="sticky">
    看到都能看到可能的困难都能
  </footer>
</div>
</body>
</html>

2,calc

上面的代码中,因为要实现最小高度100%的效果,给html、body都设置为高度100%,不利于代码扩展。下面使用100vh来代替100%,代码会简洁很多。内容部分(.content)设置最小高度为calc(100vh - 50px)即可

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    body{margin:0}
    .content{background-color:lightblue;min-height: calc(100vh - 50px)}
    .sticky{background-color:lightgreen;height:50px;}
  </style>
</head>
<body>
<div class="box">
  <main class="content">
    Lorem ipsum dolor sit amet consectetur, adi
    pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
    ...
    Lorem ipsum dolor sit amet consectetur, adi
    pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急





  </main>
  <footer class="sticky"></footer>
</div>
</body>
</html>

 

3,flex

上面的代码中,如果sticky的底部高度发生了变化,则内容部分的代码也需要进行相应地调整。如果使用flex,则可以更加灵活。为父级(.box)设置flex、上下排列及最小高度为100vh,为内容部分(.content)设置flex:1即可

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    body{margin:0}
    .box{display:flex;flex-flow:column;min-height:100vh;background-color:lightblue;}
    .content{flex:1;}
    .sticky{background-color:lightgreen;height:50px;}
  </style>
</head>
<body>
<div class="box">
  <main class="content">
    调度Lorem ipsum dolor sit amet consectetur, adi
    pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
    ...
    Lorem ipsum dolor sit amet consectetur, adi
    pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急





  </main>
  <footer class="sticky"></footer>
</div>
</body>
</html>

4,grid

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    body{margin:0}
    .box{display:grid;grid-template-rows:1fr 50px;min-height:100vh;}
    .content{background-color:lightblue;}
    .sticky{background-color:lightgreen;}
  </style>
</head>
<body>
<div class="box">
  <main class="content">
    调度Lvv差分方程orem ipsum dolor sit amet consectetur, adi
    pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
    ...
    Lorem ipsum dolor sit amet consectetur, adi
    pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急
    ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
    发窘我就急急急急急急急急急急急急急急急





  </main>
  <footer class="sticky"></footer>
</div>
</body>
</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在使用 `grid-template-columns` 布局时,缩放页面后出现了列之间粘连的问题,可能是由于设置了固定的列宽度或者没有足够的空间来容纳所有列导致的。 为了解决这个问题,可以尝试以下几种方法: 1. 使用相对单位:使用相对单位(如百分比)来定义列宽度,而不是使用固定的像素单位。这样,当页面缩放时,列的宽度会根据可用空间的变化进行适应,避免了粘连的问题。 ```css .grid-container { display: grid; grid-template-columns: 1fr 1fr 1fr; } ``` 这个例子将容器分为三个等宽的列,无论页面的宽度如何变化,每个列都会根据可用空间进行自适应。 2. 使用 minmax() 函数:通过使用 `minmax()` 函数设置列的最小和最大宽度,可以确保在缩放页面时列不会过于收缩或扩展。 ```css .grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } ``` 这个例子将创建一个自适应的网格布局,每个列的最小宽度为 200px,最大宽度为可用空间的 1fr。这样,当页面缩放时,列的宽度会自动调整以适应新的可用空间,避免了粘连的问题。 3. 使用媒体查询:使用媒体查询来根据不同的屏幕尺寸或视口宽度,为不同的布局情况设置不同的列宽度。这样可以根据具体情况灵活调整列的宽度,避免列之间粘连的问题。 ```css .grid-container { display: grid; grid-template-columns: 1fr 1fr; } @media screen and (max-width: 600px) { .grid-container { grid-template-columns: 1fr; } } ``` 这个例子将在较小的屏幕尺寸下,将布局改为单列显示,以避免列之间粘连的问题。 希望这些方法能帮助你解决列在缩放时粘连的问题!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值