内容滚动条和子 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>


目录
相关文章
|
7月前
|
前端开发 JavaScript
css之伪类hover改变自身、子元素、其他元素的样式
css之伪类hover改变自身、子元素、其他元素的样式
136 0
|
4月前
|
前端开发 安全 容器
CSS如何优雅实现卡片多行排列布局?
【8月更文挑战第24天】CSS如何优雅实现卡片多行排列布局?
185 3
|
6月前
|
前端开发
CSS实现将垂直滚动条放置在左侧方法
CSS实现将垂直滚动条放置在左侧方法
195 2
|
前端开发 计算机视觉
|
前端开发 JavaScript
CSS: hover选择器控制子元素的出现和隐藏
CSS: hover选择器控制子元素的出现和隐藏
99 0
|
前端开发
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(一)
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(一)
200 0
|
前端开发
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(三)
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(三)
78 0
|
前端开发
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(二)
Day02 了解Html+CSS的学习内容Css属性 内边距 外边距呀 边框 选择器 实操(二)
204 0
div盒子水平垂直居中以及表格的居中的方法
div盒子水平垂直居中以及表格的居中的方法
155 0
|
前端开发
Web前端学习:CSS基础-小终结【布局和文本常用样式、常用属性、外边距和内边距】
Web前端学习:CSS基础-小终结【布局和文本常用样式、常用属性、外边距和内边距】
143 0
Web前端学习:CSS基础-小终结【布局和文本常用样式、常用属性、外边距和内边距】
下一篇
DataWorks