宽高自适应

宽度自适应

宽度自适应 :width

 ①在网页布局中 如果块级元素设置width:100%或者是不写的时候,会沾满浏览器的全屏(通栏效果)

        块级元素不设置宽度会与父级等宽(html,body块级元素)

        重点:当元素没有设置宽度的时候 元素脱离文档流 宽度由内容决定

        => 设置浮动和绝对/固定定位的时候 元素一定要加宽高大小!!!

②书写方式:

        第一种:不写或者是width:auto;(推荐)        

        第二种:width:100%

③二者的区别:

              width写auto:盒子的总宽的和父元素保持一致,加了内间距和边框线不会撑大盒子。
             width:100%:盒子的内容区和父亲的保持一致,加了内间距和边框线会撑大盒子。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        *{
            margin: 0;padding: 0;
        }
        div{
            width: 200px;
            height: 62px;
            background: #232323;
        }
        p{
            height: 50px;
            background: green;
            float: left;
        }
    </style>
</head>
<body>
    <div>
        <p>11111</p>
    </div>
</body>
</html>

效果图:

                                        高度自适应

高度自适应 height

①不设置高度或者高度设置为auto, 当前盒子就没有高度不显示, 高度由内容决定的

        使用场景:不知道这个区域要写多少内容或者不知道高是多少的时候

②height:100%===高度由父亲决定

        使用场景:移动端

③常见的宽高自适应的情况

全屏案例、移动端 html,body{height:100%}

图片 img{width:100%;height:100%}

在工作中常用的方法: 高度设置为Auto的时候可以实现高度自适应

效果图:

                                        最小高度 

最小高度:min-height:====保证最小区域的存在==当内容比较少,甚至没有内容的时候,要保证最低区域的纯在,当超过最小高度的时候,高度自动撑开====元素高度由内容决定

例如:评论区的需求

①内容没有的时候 保持一个固定的高度

②内容较多的时候 会根据内容撑开 => 最小高度属性 min-height

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        *{
            margin: 0;padding: 0
        }
        div:nth-child(1){
            height: 100px;
            background: pink;
            font-size: 50px;
        }
        div:nth-child(2){
            min-height: 200px; 
            /* 
                - 可以保持一个固定高度
                - 内容较多 会自动撑开高度 效果和height:auto效果一样
            */
            background: orange;
            font-size: 50px;
        }
        div:nth-child(3){
            height: 100px;
            background: skyblue;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div>恭喜武大靖同学获得冬奥会首金</div>
    <div>
        评论区
        <p>胜平月考考60  这个小菜鸡</p>
        <p>胜平月考考60  这个小菜鸡</p>
    </div>
    <div>底部区域</div>
</body>
</html>

效果图:

 

                                高度塌陷

1.高度塌陷/高度坍塌

前提1:①父级没有设置高度 => 做到自适应

        ②子级含有浮动属性(原因) => 需求

前提2:如果高度不写或者写了最小高度

2.解决方案

①overflow:hidden

        优点:简单

        缺点:一旦里面有元素超出,则会隐藏,不会被看到        

②隔墙法:在所有浮动元素的最后面建立一个空的div标签,里面写一个行内样式:clear:both;

        优点:简单

        缺点:导致html代码冗余        

③万能解决法/万能清除法(不要求理解,只要求会用)

- 要给父级盒子添加一个类名 clear-fix(前端中不成文的规定)

- clear-fix::after{

content:'';

width:0;

height:0;

display:block;

overflow:hidden;

visibility:hidden;

clear:both;

}

用法:哪个盒子塌陷了,就给哪个盒子上面写这个类名即可。 注意:这个类名是自己随意起的,你要想改是可以自行更改的。

注意:宽高为0,超出部分隐藏,为了防止写文字的内容出现的问题

- 清除浮动 right、left、both 所有两边

                                       移动端的设置  

 1.全屏页面:元素的宽度和高度会随着浏览器大小的变化而变化

2.全屏页面,高度要成100%,则需要html与body的高度一定要写100%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是打工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值