【第17周 01 移动web入门 3-17卡片布局】用了display:flex; 是否一定程度上可以不用 float:left 浮动来布局了?
来源:3-17 编程练习
easyschen
2022-03-14 13:16:29
问题描述:
1. 老师麻烦看下代码是否正确
2. .box不设置高度height、不用margin,只用flex可以实现box中内容的间隔吗?
3. 用了display:flex; 是否一定程度上可以不用 float:left 浮动来布局了?
相关代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
/* 在此处补充代码*/
/* 一、页头部分 */
/*去除默认样式*/
* {
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
/* flex布局的标签 */
header, .logo, .nav, .login, .shopping{
display: flex;
}
/* header样式 */
header {
display: flex;
background-color: black;
justify-content: space-around;
align-items: center;
}
/* logo样式 */
.logo img{
width: 200px;
}
/* li样式 */
header .nav li{
color:white;
width: 100px;
line-height: 80px;
height: 80px;
text-align: center;
}
/* 登陆样式 */
header .login{
width: 100px;
justify-content: space-between;
align-items: center;
}
header .login input{
background-color: orange; /* 背景颜色橙色 */
color: white; /* 文字颜色白色 */
width:40px;
height: 30px;
border: none;
border-radius: 2px;
}
/* 二、主体内容部分 */
section, .section, .box, .shopping{
display: flex;
}
section{
flex-flow: row wrap; /* 容器属性 */
/* 等价于:
flex-direction: row;
flex-wrap: wrap; */
justify-content: space-around;
align-items: center;
}
section .section{
/* 作为section的项目时候的属性: */
flex-basis:46%;
/* 作为容器时候的属性 */
flex-direction: row;
justify-content: space-around;
align-items:center;
/* 样式 */
background-color: rgb(154, 240, 233);
border-radius: 10px;
padding:20px 0;
margin: 10px 0;
}
section .section .box{
/* idea:先布局再样式 */
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
height: 100%;
}
section .section .shopping{
/* 布局都在父亲容器属性中写了,这里不写项目属性了 */
background-color: orange;
color: white;
width: 100px;
border-radius: 5px;
justify-content: center;
}
section .section .shopping .btn{
text-align: center;
height: 40px;
line-height: 40px;
}
</style>
</head>
<body>
<!-- 头部 -->
<header>
<div class="logo">
<img src="http://climg.mukewang.com/59197ab000014f1503000100.jpg" alt="">
</div>
<ul class="nav">
<li>课程</li>
<li>路径</li>
<li>猿问</li>
<li>手记</li>
</ul>
<div class="login">
<input type="button" value="登录">
<input type="button" value="注册">
</div>
</header>
<!-- 主体内容 -->
<section>
<div class="section">
<div class="box">
<p>《前端小白入门手册》</p>
<div>适用人群:没有任何前端基础的小白</div>
<div>费用:¥499</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
<div class="section">
<div class="box">
<p>《HTML5月CSS3实现动态网页》</p>
<div>适用人群:有html和css基础的童鞋</div>
<div>费用:¥599</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
<div class="section">
<div class="box">
<p>《HTML5月CSS3实现动态网页》</p>
<div>适用人群:有html和css基础的童鞋</div>
<div>费用:¥599</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
<div class="section">
<div class="box">
<p>《HTML5月CSS3实现动态网页》</p>
<div>适用人群:有html和css基础的童鞋</div>
<div>费用:¥599</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
</section>
</body>
</html><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
/* 在此处补充代码*/
/* 一、页头部分 */
/*去除默认样式*/
* {
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
/* flex布局的标签 */
header, .logo, .nav, .login, .shopping{
display: flex;
}
/* header样式 */
header {
display: flex;
background-color: black;
justify-content: space-around;
align-items: center;
}
/* logo样式 */
.logo img{
width: 200px;
}
/* li样式 */
header .nav li{
color:white;
width: 100px;
line-height: 80px;
height: 80px;
text-align: center;
}
/* 登陆样式 */
header .login{
width: 100px;
justify-content: space-between;
align-items: center;
}
header .login input{
background-color: orange; /* 背景颜色橙色 */
color: white; /* 文字颜色白色 */
width:40px;
height: 30px;
border: none;
border-radius: 2px;
}
/* 二、主体内容部分 */
section, .section, .box, .shopping{
display: flex;
}
section{
flex-flow: row wrap; /* 容器属性 */
/* 等价于:
flex-direction: row;
flex-wrap: wrap; */
justify-content: space-around;
align-items: center;
}
section .section{
/* 作为section的项目时候的属性: */
flex-basis:46%;
/* 作为容器时候的属性 */
flex-direction: row;
justify-content: space-around;
align-items:center;
/* 样式 */
background-color: rgb(154, 240, 233);
border-radius: 10px;
padding:20px 0;
margin: 10px 0;
}
section .section .box{
/* idea:先布局再样式 */
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
height: 100%;
}
section .section .shopping{
/* 布局都在父亲容器属性中写了,这里不写项目属性了 */
background-color: orange;
color: white;
width: 100px;
border-radius: 5px;
justify-content: center;
}
section .section .shopping .btn{
text-align: center;
height: 40px;
line-height: 40px;
}
</style>
</head>
<body>
<!-- 头部 -->
<header>
<div class="logo">
<img src="http://climg.mukewang.com/59197ab000014f1503000100.jpg" alt="">
</div>
<ul class="nav">
<li>课程</li>
<li>路径</li>
<li>猿问</li>
<li>手记</li>
</ul>
<div class="login">
<input type="button" value="登录">
<input type="button" value="注册">
</div>
</header>
<!-- 主体内容 -->
<section>
<div class="section">
<div class="box">
<p>《前端小白入门手册》</p>
<div>适用人群:没有任何前端基础的小白</div>
<div>费用:¥499</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
<div class="section">
<div class="box">
<p>《HTML5月CSS3实现动态网页》</p>
<div>适用人群:有html和css基础的童鞋</div>
<div>费用:¥599</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
<div class="section">
<div class="box">
<p>《HTML5月CSS3实现动态网页》</p>
<div>适用人群:有html和css基础的童鞋</div>
<div>费用:¥599</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
<div class="section">
<div class="box">
<p>《HTML5月CSS3实现动态网页》</p>
<div>适用人群:有html和css基础的童鞋</div>
<div>费用:¥599</div>
</div>
<div class="shopping">
<div class="btn">加入购物车</div>
</div>
</div>
</section>
</body>
</html>
1回答
好帮手慕慕子
2022-03-14
同学你好,对于你的问题解答如下:
1、代码实现是对的
2、可以,示例:


修改后效果如下:

3、是的,不过还是要具体情况具体分析,灵活应用所学知识去实现效果即可。
祝学习愉快~
相似问题