批改状态:合格
老师批语:布局的前提, 你必须拥有该元素的控制权力
【css基础作业:浮动与三列布局】
1、实例演示如何消除子元素浮动造成父元素高度折叠的影响
<!DOCTYPE html>
<html lang="en">
<head>
<title>子元素对父元素的影响</title>
<meta charset="utf-8">
<style type="text/css">
.box1{
width: 300px;
border: 5px dashed red;
overflow:hidden; /*scroll、auto*/
}
.box2{
width: 300px;
height: 300px;
background-color: lightblue;
float: left;
}
</style>
</head>
<body>
<div class="box1">
<div class="box2"></div>
</div>
</body>
</html>点击 "运行实例" 按钮查看在线实例
总结:
浮动造成父元素高度折叠原因:浮动导致子元素和父元素不在同一平面内。
即:对于子元素而言,其脱离文档流,位于在一定空间高度处排列
对于父元素而言,其因为子元素脱离文档流(父元素尚且归属文档流中)其由于缺少子元素的支撑导致“肉眼”识别差的高度折叠。(浏览器无法识别子元素。高度中剔除子元素高度)
而对于子元素而言,由于其位于一定空间高度处排列
从而导致视觉效果时父元素高度折叠
处理:1、父元素设置成子元素高度2、父元素设置浮动 3、在浮动元素文档流后设置块元素,用于清除浮动4、父元素overflow:hidden;设置清除浮动
2、实例演示三列布局的实现原理( 绝对定位实现, 浮动定位实现)
绝对定位:
<!DOCTYPE html>
<html>
<head>
<title>绝对定位实现三列布局</title>
<meta charset="utf-8">
<style type="text/css">
.container{
width: 1000px;
margin: 0 auto;
background-color: black;
}
.header,.footer{
height: 60px;
background-color: red;
}
.main{
margin: 5px auto;
position: relative;
}
.left{
background-color: lightgreen;
width: 200px;
min-height: 800px;
top: 0;
left: 0;
position: absolute;
}
.content{
background-color: lightyellow;
min-height: 800px;
margin-left:200px;
margin-right: 200px;
}
.right{
background-color: lightgreen;
width: 200px;
min-height: 800px;
top: 0;
right: 0;
position: absolute;
}
</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>
</html>点击 "运行实例" 按钮查看在线实例
原理:
1、先计算出左右栏占据的宽度大小,并设置左右各自紧挨在main块中边界。
2、中间部分设置好左右编剧等于左右块宽度即可
通过计算三部分宽度将main块分成三块。
浮动定位:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>三列布局(浮动)</title>
<style>
.container {
width: 1000px;
margin: 0 auto;
background-color: black;
}
.header,
.footer {
height: 60px;
background-color: red;
}
.main {
background-color: lightblue;
margin: 5px auto;
overflow: hidden;
}
.left {
background-color: lightyellow;
width: 200px;
min-height: 800px;
float: left;
}
.content {
background-color: lightgreen;
min-height: 800px;
width: 600px;
float: left;
}
.right {
background-color: lightyellow;
width: 200px;
min-height: 800px;
float: right;
}
</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>
</html>点击 "运行实例" 按钮查看在线实例
原理:
浮动布局原理:
1、将left、content、right三块从原来文档流中抽离出来重新组合排列
2、设置left、content、right父级元素main中overflow:hidden避免浮动对其他子集产生影响
即通过浮动完成三列布局
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号