两栏布局的实现

简介: 两栏布局的实现

两栏布局

  • 问:那么什么叫做两栏布局呢?
  • 答:一般将左侧一栏宽度固定,右边一栏宽度自适应称为两栏布局


课前预习:块级元素宽度自适应,高度需要手动设置(如不设置则由高度内容撑开)

本文规范:为了叙述方便,故以类名代表相应的元素

上课中:

第一种情况(浮动:float)


CSS代码

/*宽度默认为铺满整个屏幕 /
.outer{
height: 100px;
}
.left{
float: left;
width: 200px;height: inherit;
background: tomato;
}
/ .right可以不用设置宽度因为它的宽度是自适应的,嘿嘿嘿 */
.right{
margin-left: 200px;
height: inherit;
background: black;
}

HTML代码


  • 结果



第二种情况(浮动float与BFC结合)


CSS代码

/*宽度默认为铺满整个屏幕 /
.outer{height: 100px;
}
.left{
float: left;
width: 200px;height: inherit;
background: tomato;
}
/ .right可以不用设置宽度因为它的宽度是自适应的,嘿嘿嘿 */
.right{
overflow: hidden;
height: inherit;
background: black;
}

HTML代码


  • 结果


第三种情况(flex布局)

本问需要了解flex-grow,flex-grow的作用是平分剩余空间,记住是剩余空间(敲黑板)

  • 例一

CSS代码

/*宽度默认为铺满整个屏幕 /
.outer{height: 100px;
display: flex;
}
.left{
width: 200px;height: inherit;
background: tomato;
flex-grow:0 ;
}
/ .right可以不用设置宽度因为它的宽度是自适应的,嘿嘿嘿 */
.right{
flex-grow: 1;
height: inherit;
background: black;
}
 


HTML代码


  • 结果
  • 例二
  • 修改类名为left的元素css属性flex-grow的值为1(flex-grow:1)

CSS代码

.left{
width: 200px;height: inherit;
background: tomato;
flex-grow:1 ;
}
  • 结果
  • 补充:因为left本身是有200px的宽度,而right的宽度是0,他们平分剩下的剩余空间,所以出现了left多于right的现象。

第四种情况(定位:position:(relative与absolute))


  • 例一
  • 父与左孩子使用定位


CSS代码

/*宽度默认为铺满整个屏幕 /
.outer{height: 100px;
position: relative;
}
.left{
position: absolute;
width: 200px;height: inherit;
background: tomato;
}
/ .right可以不用设置宽度因为它的宽度是自适应的,嘿嘿嘿 */
.right{
margin-left: 200px;
height: inherit;
background: black;
}
 

HTML代码


  • 结果
  • 例二
  • 父与右孩子使用定位

CSS代码

/*宽度默认为铺满整个屏幕 /
.outer{height: 100px;
position: relative;
}
.left{
width: 200px;height: inherit;
background: tomato;
}
/ .right可以不用设置宽度因为它的宽度是自适应的,嘿嘿嘿 */
.right{
position:absolute;
top: 0;
bottom: 0;
left: 200px;
right: 0;
height: inherit;
background: black;
}
 

HTML代码


  • 结果
  • 补充:这个牛逼,真的牛逼。我之前写一个很垃圾的项目的时候,想找一个可以铺满剩余空间的写法,偶然间我发现了这个,这个真的确实很妙,你不搜的话,我想可能很多人都不知道吧!!!这个太神奇了,反正我是非常喜欢这个。

最后:

若发现问题,请您留言指正。

若觉得对您有所帮助,欢迎点赞评论,我会继续加油!!!

相关文章
|
14天前
|
前端开发
前端三栏布局(包括圣杯,双飞翼)
前端三栏布局(包括圣杯,双飞翼)
|
4月前
|
前端开发 容器
如何实现一个两栏布局,右侧自适应?三栏布局中间自适应?
要实现一个两栏布局,右侧自适应的效果,可以使用 CSS 的 Flexbox 或 Grid 布局来实现。以下是使用 Flexbox 实现的示例:
35 1
|
10月前
|
容器
圣杯布局和双飞翼布局
圣杯布局和双飞翼布局
|
5月前
|
安全 容器
由圣杯布局引发的思考
今天在MDN看到块格式化上下文有点不以为然,关键是它写的高深莫测,读不懂... 于是下午想试试圣杯布局的时候,终究还是逃不过它。🤣 这里不介绍圣杯布局的历史,这样的文章网上不知道多少篇,我来写写千篇一律中的亮点吧,哈哈。
23 0
|
6月前
|
Web App开发 设计模式 前端开发
DIV+CSS布局总结
DIV+CSS布局总结
|
7月前
|
UED 容器
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
45 0
|
9月前
|
前端开发 容器
两栏布局的实现方式
两栏布局的实现方式
|
9月前
|
前端开发 数据可视化 容器
CSS 两栏布局和三栏布局的实现
CSS 两栏布局和三栏布局的实现
111 0
|
9月前
圣杯布局实现
圣杯布局实现
|
12月前
|
容器
2022年了,还是得学圣杯布局与双飞翼布局
2022年了,还是得学圣杯布局与双飞翼布局 今天看别人的面经,发现还是有很多家公司会问圣杯布局以及双飞翼布局,之前我跳过了,因为实际中我几乎没有用过float布局,所以对这两个布局理解起来稍微有一点费劲,但是既然面试可能要问,那还是得把这个理解透,所以这篇文章将带你从零创建一个圣杯布局以及双飞翼布局,小白也能看懂,绝对的保姆级讲解,当然理解有误的希望大家积极补充,共同进步。 可以转载,但请声明源链接:文章源链接justin3go.com(有些latex公式某些平台不能渲染可查看这个网站)
74 0