浮动
浮动初心主要解决图文并排显示问题
float:left right;向左向右浮动
解决父级元素高度塌陷:
1、清除浮动:clear:both;
2、BFC 给父元素添加overflow: hidden;
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.box {
border: 1px solid #ccc;
overflow: hidden;
}
/* .box::after {
content: '';
display: block;
clear: both;
} */
.box img {
float: left;
width: 15em;
border-radius: 0.5em;
margin: 1em;
}
.box .desc {
overflow: hidden;
}
</style>
<body>
<div class="box">
<img src="https://img.php.cn/upload/course/000/000/001/5fae4f08a043a576.png" alt="">
<div class="desc">
<h2>第十四期_前端开发</h2>
<p>php中文网第十四期前端开发部分学习目标:1、HTML5+CSS3基础知识与实战; 2、完成网站所有静态页面布局;重点:弹性布局与网格布局;3.JavaScript、jQuery、ES6基础与实战 ;4.Vue.js基础与实战
</p>
</div>
</div>
</body>
效果图
总结:
1、浮动仅限于水平方向
2、浮动元素脱离了文档流,后面的元素会上移填充它原来的空间
3、浮动元素不会影响到它前面的元素布局,只会影响到后面的允素的排列
4、任何元素(包括行内元素)浮动后,都具备了块级元素的特征
BFC:创建独立的布局单元
创建BFC的方式:任何一个元素添加以下任何一个属性后就是一个BFC容器;
1、float:left / right,不能是none;
2、overflow:hidden/auto/scroll,不能是visible;
3、display:inline-block/ table-cell;
4、display:flex / inline-flex;
5、display:grid / inline-grid;
6、position:absolute / fixed
定位的种类
定位属性:position
1、静态定位:static 默认定位
2、相对定位:relative 相对自身的位置
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.box {
width: 15em;
height: 15em;
border: 1px solid #ccc;
overflow: hidden;
margin: 0 auto;
}
.box h2 {
position: relative;
top: 1em;
left: 1em;
background-color: burlywood;
}
</style>
<body>
<div class="box">
<div class="desc">
<h2>第十四期_前端开发</h2>
<p>php中文网第十四期前端开发部分学习目标
</p>
</div>
</div>
</body>
效果图
3、绝对定位:absolute 相对它的祖先中离它最近的定位元素的位置发生偏移,定位元素只能是相对定位或者绝对定位;
.box h2 {
position: absolute;
top: 1em;
left: 1em;
background-color: burlywood;
}
效果图
如果祖先中不存在定位元素,则相对于根元素发生偏移
4、固定定位:fixed;是绝对定位中的一个特例,始终相对于根元素定位
模态框小案例
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
header {
background-color: #ccc;
padding: .5em 2em;
}
.modal .modal-back {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0, 0, 0, .5);
}
.modal .modal-body {
position: fixed;
top: 10em;
left: 30em;
right: 30em;
padding: 1em;
width: 20em;
height: 10em;
border: 1px solid #000;
margin: 0 auto;
background-color: rosybrown;
}
.close {
position: absolute;
right: 1em;
}
.modal-body form {
margin-top: 2em;
}
.modal-body form p {
text-align: center;
}
</style>
<body>
<header>
<h2>我的博客</h2>
</header>
<div class="modal">
<div class="modal-back"></div>
<div class="modal-body">
<button class="close">关闭</button>
<form action="">
<p><label for="username">账号:</label><input type="text" name="username" id="username"></p>
<p><label for="password">密码</label><input type="password" name="password" id="password"></p>
<p><button>登录</button></p>
</form>
</div>
</div>
</body>
效果图