博主信息
博文 23
粉丝 0
评论 0
访问量 17352
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
20190904 作业
王长中的博客
原创
820人浏览过

一、实例演示如何消除子元素浮动造成父元素高度折叠的影

a、有何影响


实例

<style>
.box1{
      width:100px;
      border:3px solid red;
      background-color:lightblue;
      }
.box2{
      width:inherit; 
      height:200px;
      background-color:lightseagreen;
     }
 .box2{
     float:left;
    }  
</style>
<body>

<div class="box1">
    <div class="box2"></div>

</div>


</body>

运行实例 »

点击 "运行实例" 按钮查看在线实例

    影响:在父元素没有设置高度子元素也没有浮动时,子元素的高度会撑开父元素,使父元素与子元素高度相同,当子元素浮动后,子元素脱离了文档流,父元素高度没有了,无法包住子元素。

小 结:

         当有块级元素嵌套,子元素浮动时,会造成父元素的高度无法自适应的包住子元素的高度,虽然可以采用设置父元素与子元素相同高度,或是父元素同子元素一起浮动,增加一个dom元素来清除等来消除,但都比较麻烦,如果子元素高度发生变化,又要调整父元素的高度,在父元素中增加overflow:hidden来清除浮动可以让父元素自适应子元素的高度,比较方便。

二、实例演示三列布局的实现原理

a、绝对定位

实例

.container {
    width: 1000px;
    margin: 0 auto;
}


/*头部与底部共用样式*/

.header,
.footer {
    height: 60px;
    background-color: lightgrey;
}
/* 主体区与头部底部间隔5px */
.main {
    margin: 5px auto;
}
/* 左边栏宽度,在没有内容时的最小高度及前景色 */
.left {
    width: 150px;
    min-height: 800px;
    background-color: lightseagreen;
}
/* 内容区没有内容时的最小高度及前景色 */
.content {
    min-height: 800px;
    background-color: lightsalmon;
}
/* 右边栏宽度,最小高度及前景色 */
.right {
    width: 150px;
    min-height: 800px;
    background-color: lightgreen;
}
/* 定义父级为相对定位 */
.main {
    position: relative;
}

.left {
    position: absolute;
    left: 0px;
    top: 0px;
}

.right {
    position: absolute;
    right: 0px;
    top: 0px;
}

.content {
    margin-left:0px 160px;
    
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

小结:在本例中着重注意,子元素在绝对定位时,是根据父级元素的位置定们,所以要定位子元素,首先要定位好父级元素。

b、三列布局(浮动方式实现)

实例

 <style>
         .container {
            width: 1000px;
            margin: 0 auto;
        }
        /*头部与底部共用样式*/
        
        .header,
        .footer {
            height: 60px;
            background-color: lightgrey;
        }
        /* 主体区与头部底部间隔5px */
        
        .main {
            margin: 5px auto;
        }
        /* 左边栏宽度,在没有内容时的最小高度及前景色 */
        
        .left {
            width: 150px;
            min-height: 800px;
            background-color: lightseagreen;
        }
        
        .right {
            width: 150px;
            min-height: 800px;
            background-color: lightgreen;
        }
        /* 内容区没有内容时的最小高度及前景色 */
        
        .content {
            min-height: 800px;
            background-color: lightsalmon;
        }
        
        .left {
            float: left;
        }
        
        .right {
            float: right;
        }
      
    </style>
</head>

<body>
    <div class="container">
        <div class="header">头部</div>
        <div class="main">


            <div class="content">内容区
                <div class="left">左边栏</div>
                <div class="right">右边栏</div>
            </div>

        </div>
        <div class="footer">底部</div>
    </div>
</body>

    </style>
</head>

<body>
    <div class="container">
        <div class="header">头部</div>
        <div class="main">
            <div class="left">左侧</div>
            <div class="content">内容区</div>
            <div class="right">右侧</div>
        </div>
        <div class="footer">底部</div>
    </div>
</body>

运行实例 »

点击 "运行实例" 按钮查看在线实例

小结:当几个元素一起浮动,浮动后的位置与它们浮动前的位置有关系

总结:在实际使用中,尽量使用定位,在定位无法达成效果时,才考虑用浮动。(切记:冲动是魔鬼,浮动也是魔鬼。)


批改状态:合格

老师批语:总结的真, 最后二句话, 不做个三年前端, 体会不出来的
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学