两栏布局的实现

简介: 两栏布局的实现

两栏布局

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


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

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

上课中:

第一种情况(浮动: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代码


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

最后:

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

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

相关文章
|
存储 前端开发 Linux
DPDK-mempool(1)
DPDK-mempool(1)
282 0
|
关系型数据库 Shell Linux
ACL(访问控制列表)权限管理
一、ACL权限 二、rwx权限 三、mask权限 四、ACL备份和恢复
|
5月前
|
存储 Java
【源码】【Java并发】【ThreadLocal】适合中学者体质的ThreadLocal源码阅读
前言 下面,跟上主播的节奏,马上开始ThreadLocal源码的阅读( ̄▽ ̄)" 内部结构 如下图所示,我们可以知道,每个线程,都有自己的threadLocals字段,指向ThreadLocalMap
454 81
【源码】【Java并发】【ThreadLocal】适合中学者体质的ThreadLocal源码阅读
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
10月前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
290 0
|
5月前
|
Linux 数据库 虚拟化
Docker的常见应用部署技巧
以上就是一些Docker的常见应用部署技巧。使用Docker,你可以更容易地部署和管理你的应用,而不需要关心底层的硬件和操作系统。只要你掌握了这些技巧,你就可以更有效地使用Docker来部署你的应用。
121 25
|
6月前
|
机器学习/深度学习 人工智能 安全
魔搭社区模型速递(3.9-3.15)
魔搭ModelScope本期社区进展:1066个模型,153个数据集,125个创新应用,13篇内容
161 1
|
运维 监控 Java
函数计算产品使用问题之怎么在运行环境中更改时区
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch,帮助你快速搭建起这个强大的工具
【6月更文挑战第7天】本文档详细介绍了如何在Rocky Linux 8上安装和配置Elasticsearch,首先通过添加Elasticsearch仓库并使用yum安装。接着,配置Elasticsearch,包括修改`elasticsearch.yml`、设置内存和文件描述符,以及可选的安全设置。启动Elasticsearch后,通过验证日志和测试连接确保其正常运行。文章还列举了常见问题及解决方法,如启动失败、内存不足和网络问题。按照这些步骤,用户可以在Rocky Linux 8上成功部署Elasticsearch,为数据管理与分析提供强大支持。
358 5