强迫症晚期患者:纯CSS实现div高度自适应浏览器。

6 篇文章 0 订阅

我记得在学了网页自适应的内容后,每次写网页,力求宽高自适应。最后还是有一些困惑:写一个div给样式。(给定背景色和字体色是为了便于我们观察。)

width:100%;background:white;color:white;

状况: 如果我们不在div中书写内容,没有东西撑住div,div自适应该内容高度,div是不会显示的;还有,如果我们不给定div具体的高度值如100px,给100%高度,div也不会显示。

我想要的效果是: 给定div宽度100%,让div宽度自适应。高度也要自适应,但是在我不给定div具体高度值和不在该div中书写内容的前提下,它也要铺满整个浏览器。并且如果我们在里面书写内容,当内容的高度超过浏览器的高度的时候,它也自适应。

经过一番查阅和实践 我整理过来了两个纯CSS实现页面宽度,高度都自适应的方案

方案一:

<style>
      div {
        position: absolute;
        left: 0;
        top: 0;
        background-color: #000;
        width: 100%;
        height: 100%;
      }
    </style>
     <div id="test"></div>

分析: 给div一个绝对定位,这样该div脱离文档流,此时它的宽高就不受任何元素的影响,这时给div的宽高都为100%,该div就铺满了整个浏览器。以此div为父级容器,在里面书写页面其他内容,宽高也自然是自适应浏览器的。但是此时我们的body是这样的,只有宽度没有高度,那还是因为我们的div脱离文档流了啊。
在这里插入图片描述

**方案二:**这时我们应该想到了,我们的body也是一个块元素,上面说没有内容撑div,其实是没有内容撑我们的body。

<style>
      html,
      body {
        height: 100%;
        margin: 0;
      }
      div {
        height: 100%;
        background-color: #ccc;
      }
    </style>
  </head>
  <body>
    <div id="test"></div>

解析 通过html,body{heightn:100%;margin: 0;}设置我们的body高度为100%,这时整个页面已经撑开,给定margin:0 是为了页面整体和浏览器无缝填充,这时也相当于给定整个页面的宽度为100%(黑色填满了页面作证了这一点)。那这会我们在给div一个100%的高度,div自然就实现了宽高的自适应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值