关于flex布局

关于flex布局

以下为个人理解,老师请指点

flex弹性盒子是用于位置的编写,padding和margin是用于元素间的距离,position用于固定位置及覆盖

比如设计图中的导航栏,logo及nav左右两边的距离是固定的,此时用flex布局中的space-around去编写位置,是不能再用padding或者margin去编写固定的左右距离的是么?

http://img1.sycdn.imooc.com//climg/5d7f3ad9095bdd8718710214.jpg

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>慕淘网</title>

<link rel="stylesheet" type="text/css" href="css/index.css" />

<link rel="stylesheet" type="text/css" href="css/common.css"/>

<style>

.top{

width: 100%;

height: 100px;

background-color: burlywood;

}

.wrap{

width: 1200px;

height: 100%;

background-color: cornflowerblue;

margin: 0 auto;

display: flex;

justify-content: space-around;

align-items: center;

}

.logo{

width: 200px;

height: 100px;

background-color: aquamarine;

}

.list{

width: 200px;

height: 100px;

background-color: antiquewhite;

}

</style>

</head>

<body>

<div class="top">

<div class="wrap">

<div class="logo"></div>

<div class="list"></div>

</div>

</div>

</body>

</html>

关于高度和内容撑满问题

高度继承问题麻烦老师在讲述一下,看完课程感觉有点蒙了,不太理解

内容撑满高度和自己设置高度问题,是元素本身的高度及设置padding或者margin去填充的高度吗?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕言 2019-09-16 19:13:22

同学你好,是可以的,但是要通过计算得出使用弹性盒模型之后,左边距是多少,然后设置margin值。

如果同学想要设置左边距为25px,那么直接给logo设置左浮动,设置margin-left值,这样会更方便哦。

如果帮助到了你,欢迎采纳~祝学习愉快~

提问者 据说真的有神 2019-09-16 17:22:04

http://img1.sycdn.imooc.com//climg/5d7f53e109e6268e18090289.jpg

就是这样的样式,如果左边距和右边距的距离是固定的,比如是25px,用弹性盒子写完是自动分配的,还可以用margin和padding去处理成25px吗?

好帮手慕言 2019-09-16 17:09:38

同学你好,

1、padding是给元素设置内边距属性(会撑开元素的宽高)。

例子:

http://img1.sycdn.imooc.com//climg/5d7f4cee09d8f5b705330421.jpg

页面效果:

http://img1.sycdn.imooc.com//climg/5d7f4c6609ba342c18070775.jpg

2、margin可以设置元素之间的间距。

例子:

http://img1.sycdn.imooc.com//climg/5d7f4cc809d01fab05650651.jpg

页面效果:

http://img1.sycdn.imooc.com//climg/5d7f4d17099529fb02370479.jpg

3、position是对元素进行定位。(绝对定位和固定定位脱离文档流,因此可能会覆盖元素)

例子:

http://img1.sycdn.imooc.com//climg/5d7f4dcd09b377d805260684.jpg

页面效果(灰色背景的元素被覆盖在红色元素之下):

http://img1.sycdn.imooc.com//climg/5d7f4de10992237602710332.jpg

4、logo可以再设置边距(同学的代码中没有找到nav元素哦),

http://img1.sycdn.imooc.com//climg/5d7f4ea50998cdb818380702.jpg

5、关于高度的问题。高度继承

父元素设置了高度,子元素设置高度为100%,那么子元素的高度和父元素的高度一致。

例子:

http://img1.sycdn.imooc.com//climg/5d7f4fd209f1041405860600.jpg

页面效果:

http://img1.sycdn.imooc.com//climg/5d7f4ff309aa0d7318020632.jpg

6、如果元素不设置高度,那么是由内容撑开的。

例子:

http://img1.sycdn.imooc.com//climg/5d7f50580919a81405600646.jpg

页面效果:

http://img1.sycdn.imooc.com//climg/5d7f507d0962d12303700307.jpg

自己设置高度:

http://img1.sycdn.imooc.com//climg/5d7f50b609892c9306370593.jpg

http://img1.sycdn.imooc.com//climg/5d7f50d1090b7bc702860256.jpg

padding可以撑开内容的宽高,但是margin是不可以的。

同学可以结合例子再理解下。

如果帮助到了你,欢迎采纳~祝学习愉快~

  • 提问者 据说真的有神 #1
    谢谢老师的回答 关于flex布局,在logo和nav那块我只是举了个例子,没有表达清楚,让老师误解了,按照图片,左边红色线条是logo的左边距,右边红色线条是nav的右边距 我想问下,如果用弹性盒子去写,还可以用padding或者margin设置距离左右两边的距离吗?
    2019-09-16 17:18:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师