内容滚动条和子 div 高度自适应

简介: 一个div里面,两个子div高度自适应(平分父div的高度)和元素内容过多的时候,根据需求出现高度滚动条或者宽度滚动条。先放最终效果(在下面会有demo代码。):Paste_Image.png实现这些效果要怎么做呢?咱一步一步来。第一步:先设置html结构:这里我已经搭好了。第二步然后开始写css样式了设置父元素box的样式设置box1的样式现在尝试把html解除注释下面就到了关键的部分了(文章末尾有demo,不想看的话,可以自己试试。):在上面我们已经设置了最大高度和最小高度,因为box1空间不够所以溢出来了。

image.png写在前面:老套路有图有真相,这才叫做分享。本文内容是:一个div里面,两个子div高度自适应(平分父div的高度)和元素内容过多的时候,根据需求出现高度滚动条或者宽度滚动条。

微信截图_20220621152629.png

先放最终效果(在下面会有demo代码。):

image.png


实现这些效果要怎么做呢?咱一步一步来。

第一步:

先设置html结构:这里我已经搭好了。


<div class="box">
    <div class="box1">
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <!--<span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>-->
        <!--<span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>-->
        <!--<span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>-->
        <!--<span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>-->
    </div>
    <div class="box2">
        <span>填充填充</span>
    </div>
</div>


第二步然后开始写css样式了(我会把踩坑经历放上去,所以不要一步一步走,看效果):

设置父元素box的样式:


.box{
            margin: 0 auto;
            width: 40%;
            background: #ccc;
            height: 15rem;
            border: 5px solid red; /*为了区分各个box界限*/
        }


设置box1的样式:


.box1{
            min-height: 3rem;
            max-height: 13rem;
            background: coral;
        }


现在界面是这样子的:


image.png


现在尝试把html解除注释:

image.png


然后浏览器里面变成这样了。。。


image.png

excuse me???说好的滚动条呢?说好的自适应呢?

下面就到了关键的部分了(文章末尾有demo,不想看的话,可以自己试试。):

在上面我们已经设置了最大高度和最小高度,因为box1空间不够所以溢出来了。

image.png

overflow属性大家去看下,www.w3school.com.cn/cssref/pr_p…

知道你们不会去看,所以我又放图片了。。。


image.png


所以对于这部分我们要隐藏起来。 加个overflow: hidden;变成。

image.png

大家也都注意到了overflow: scroll;这个属性,是的,我们加上去试试。

image.png

滚动条是出来了,但是X轴的滚动条是什么鬼?

所以百度好久的答案,你们有福了!—————overflow-x: hidden;

image.png

然后我顺便查到上面的简写方式。

原来用overflow-x: hidden;overflow-y: auto;这两行代码就可以做到!

我刚才是这样子的


.box1{
            min-height: 3rem;
            overflow: hidden;
            max-height: 13rem;
            background: coral;
            overflow: scroll;
            overflow-x: hidden;
        }


最终的代码是这样的。


.box1{
            min-height: 3rem;
            max-height: 13rem;
            background: coral;
            overflow-x: hidden;
            overflow-y: auto;
        }


好了今天的内容就到这里了。。等等,好像有什么不对的地方?

说好的div高度自适应呢??

额。。。关于这个问题,我只有一个取巧的办法。

我先放两张图片:

image.pngimage.png

ps:这样就算是自适应了吧?

现在的情况是这样子的:

image.png

我把他们两个的背景颜色都改成一样的,再来看下:

image.png

这里也是,实际上,他的box就那么大。

image.png


说好的demo,差点忘记,回来更新。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>div-height-roll-demo</title>
    <style>
      .box{
            margin: 0 auto;
            width: 40%;
            background: #ccc;
            height: 25rem;
            border: 5px solid red; /*为了区分各个box界限*/
        }
        .box1{
            min-height: 3rem;
            max-height: 13rem;
            background: coral;
            overflow-x: hidden;
            overflow-y: auto;
        }
        .box2{
            text-align: center;
            border-top: 3px solid black;
        }
    </style>
</head>
<body>
<div class="box">
    <div class="box1">
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
        <span>填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充填充</span>
    </div>
    <div class="box2">
        <span>填充填充</span>
    </div>
</div>
</body>
</html>


目录
相关文章
|
9月前
UITableView根据表格内容进行高度自适应与使用Masonry实现根据内容进行宽度自适应和高度自适应
UITableView根据表格内容进行高度自适应与使用Masonry实现根据内容进行宽度自适应和高度自适应
126 0
|
9月前
|
JavaScript
vue给li标签设置鼠标覆盖阴影样式
vue给li标签设置鼠标覆盖阴影样式
|
9月前
|
JavaScript
【经典】原生JS实现“用鼠标拖拽(drag)内容DIV”,滚动条对应同步滚动
【经典】原生JS实现“用鼠标拖拽(drag)内容DIV”,滚动条对应同步滚动
|
前端开发 JavaScript
CSS: hover选择器控制子元素的出现和隐藏
CSS: hover选择器控制子元素的出现和隐藏
115 0
|
前端开发
CSS实现隐藏滚动条但是可以滚动
CSS实现隐藏滚动条但是可以滚动
77 0
|
前端开发
前端切图:CSS实现隐藏滚动条同时又可以滚动
前端切图:CSS实现隐藏滚动条同时又可以滚动
66 0
|
前端开发 程序员
【前端】使用样式选择器before和after布局,以及简单的表单输入框布局
本篇文章来讲解下样式选择器before和after的用法,以及doctype的作用 有时候真的需要温故而知新,用了那么多年的前端,对一些知识点灵活运用加点小技巧也是挺有趣的
180 0
|
JavaScript 小程序 Android开发
讲述小程序之组件picker(从底部弹起的滚动选择器)
讲述小程序之组件picker(从底部弹起的滚动选择器)
396 0
讲述小程序之组件picker(从底部弹起的滚动选择器)