效果如下
有时我们可能需要两边定宽,中间自适应,那么可以这样写
.left{
background-color: red;
width: 20px;
}
.middle{
background-color: yellow;
flex: 1;
}
.right{
background-color: green;
width: 20px;
}
效果如下
如果想深入了解可以看阮一峰老师的文章
但是 flexbox 布局方式浏览器的支持不是太好,有一些兼容性的问题,但是是未来布局的趋势。
3 float 布局
float 布局应该是目前各大网站用的最多的一种布局方式了,但是也特别复杂,这里详细讲一下
首先,什么是浮动?
浮动元素是脱离文档流的,但不脱离文本流,这是什么意思呢,用过 word 的应该知道有一种图片环绕的方式是文字环绕吧,就是这种效果。
那么它有什么特点呢
-
对自身的影响
-
float 元素可以形成块,如 span 元素。可以让行内元素也拥有宽和高,因为块级元素具有宽高
-
浮动元素的位置尽量靠上
-
尽量靠左(float:left)或右(float:right),如果那一行满足不了浮动元素的宽度要求,则元素会往下掉
-
对兄弟元素的影响
-
不影响其他块级元素的位置
-
影响其他块级元素的文本
-
上面贴非 float 元素
-
旁边贴 float 元素或者边框
-
对父级元素的影响
-
从布局上 “消失”
-
高度塌陷
3.1 高度塌陷
什么是高度塌陷,举个例子吧
float
我是字
float
效果如下
从图中可以看出,两个 float 元素虽然包含在第一个 container 中,但是却超出了第一个 container 的范围,在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。
但是当为子元素设置浮动以后,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。
解决办法有下面几种
- 父元素设置 overflow: auto 或者 overflow: hidden
效果如下
- 给父元素加一个 after 伪类
.container::after{
content:‘’;
clear:both;
display:block;
visibility:hidden;
height:0;
}
效果如下
这也是目前各大网站比较主流的清除浮动的方式,还有一些其他方式这里就不详细讲了,毕竟这是一篇讲布局的文章。
3.2 两栏布局
首先我们要明白为什么可以用 float 实现布局。其实上面的例子我们大概就可以看出来了,黄红黄这不就是一个标准的三栏布局吗。其实并没有,我们看看下面的例子
效果如下
上面代码中最重要的是 margin-left: 100px;
,这一句将浮动元素的位置空了出来,所以右边栏里面的元素不会影响到浮动的 div。
这就是浮动布局的基本思想。
3.3 三栏布局
讲完两栏布局再讲一下三栏布局,思路主要是左边一个浮动元素,右边一个浮动元素。这里有个小问题,中间的元素要写在最后,因为中间元素假设有块级元素的话,会影响右边浮动元素的定位,这里演示一下
因为浮动元素会把块级元素的位置空出来,所以这里右边的浮动元素把上面的位置空了下来,所以正确的写法应该是
效果如下
这样我们就实现了最基本的三栏布局
4 响应式布局
4.1 meta 标签
最简单的处理方式是加上一个 meta 标签
其中,width = device-width 这一句的意思是让页面的宽度等于屏幕的宽度。
4.2 使用 rem
rem 指的是 html 元素的 font-size,html 元素的 font-size 默认是 16px,所以 1 rem = 16px;然后根据 rem 来计算各个元素的宽高,然后配合 media query 就可以实现自适应。
4.3 media query
css2 允许用户根据特定的 media 类型定制样式,基本语法如下
@media screen and (max-width: 360px) {
html { font-size: 12px; }
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可免费领取!
img-hN2MjeLt-1713474322280)]
[外链图片转存中…(img-mLDb5rdW-1713474322280)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-es4rmpAV-1713474322280)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
[外链图片转存中…(img-0w24x6Rl-1713474322281)]
最后
由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可免费领取!
[外链图片转存中…(img-bcBtM0Uq-1713474322281)]
[外链图片转存中…(img-t5LM8t5J-1713474322281)]