如何用CSS实现左侧宽度固定,右侧自适应(两栏布局)?左右固定中间自适应(三栏布局)呢?
在前端日常布局中,会经常遇到左侧宽度固定,右侧自适应或者左右两边固定,中间部分自适应的实用场景。本文例子中将列举出两种常用的两栏布局,左侧固定右侧自适应的常用方法以及代码和五种左右固定中间自适应的常用方法以及代码
具体实现效果展示如下:
1.二栏布局-flex弹性布局
<!-- flex弹性布局 -->
<div class="title">flex弹性布局:</div>
<div class="box1">
<div class="left1">左边</div>
<div class="right1">右边</div>
</div>
// flex弹性布局
.box1 {
display: flex;
height: 100px;
background: rgb(241, 210, 210);
padding: 10px;
.left1 {
width: 100px;
height: 100%;
background: yellow;
text-align: center;
line-height: 100px;
}
.right1 {
flex: 1;
background: grey;
text-align: center;
line-height: 100px;
}
}
2.二栏布局-左float右margin-left
<!-- 左float右margin-left -->
<div class="title">双栏布局(左float右margin-left):</div>
<div class="box">
<div class="left">左边</div>
<div class="right">右边</div>
</div>
// 双栏布局(左float右margin-left)
.box {
overflow: hidden;
background: rgb(241, 210, 210);
padding: 10px;
.left {
float: left;
width: 200px;
background-color: gray;
height: 100px;
text-align: center;
line-height: 100px;
}
.right {
margin-left: 210px;
background-color: lightgray;
height: 100px;
text-align: center;
line-height: 100px;
}
}
3.三栏布局-两边使用 float,中间使用 margin
<!-- 三栏布局-两边使用 float,中间使用 margin -->
<div class="title">三栏布局-两边使用 float,中间使用 margin:</div>
<div class="box-float-margin">
<div class="left">三栏左侧</div>
<div class="right">三栏右侧</div>
<div class="center">三栏中间</div>
</div>
// 三栏布局-两边使用 float,中间使用 margin
.box-float-margin {
background: rgb(241, 210, 210);
overflow: hidden;
padding: 10px;
height: 100px;
.left {
width: 200px;
height: 100px;
float: left;
background: rgb(80, 255, 182);
text-align: center;
line-height: 100px;
}
.right {
width: 120px;
height: 100px;
float: right;
background: rgb(173, 130, 130);
text-align: center;
line-height: 100px;
}
.center {
margin-left: 220px;
height: 100px;
background: rgb(255, 223, 182);
margin-right: 140px;
text-align: center;
line-height: 100px;
}
}
4.三栏布局-两边使用 absolute,中间使用 margin
<!-- 三栏布局-两边使用 absolute,中间使用 margin -->
<div class="title">三栏布局-两边使用 absolute,中间使用 margin:</div>
<div class="box-absolute">
<div class="left">左边固定宽度</div>
<div class="right">右边固定宽度</div>
<div class="center">中间自适应</div>
</div>
// 三栏布局-两边使用 absolute,中间使用 margin
.box-absolute {
position: relative;
background: rgb(241, 210, 210);
padding: 10px;
div {
height: 100px;
text-align: center;
line-height: 100px;
}
.left {
position: absolute;
top: 10px;
left: 10px;
width: 100px;
background: rgb(128, 119, 119);
}
.right {
position: absolute;
top: 10px;
right: 10px;
width: 100px;
background: rgb(128, 168, 228);
}
.center {
margin: 0 110px;
background: rgb(126, 102, 143);
color: rgb(255, 255, 255);
}
}
5.三栏布局-flex弹性布局
<!-- 三栏布局-flex弹性布局 -->
<div class="title">三栏布局-flex弹性布局:</div>
<div class="box-flex-three">
<div class="left">左边固定宽度</div>
<div class="center">中间自适应</div>
<div class="right">右边固定宽度</div>
</div>
// 三栏布局-flex弹性布局
.box-flex-three {
display: flex;
justify-content: space-between;
background: rgb(241, 210, 210);
padding: 10px;
div {
text-align: center;
line-height: 100px;
height: 100px;
}
.left {
width: 500px;
background: rgb(165, 163, 162);
}
.right {
width: 300px;
background: rgb(209, 123, 226);
}
.center {
background: rgb(7, 245, 7);
width: 100%;
margin: 0 10px;
}
}
6.三栏布局-grid布局
<!-- 三栏布局-grid布局 -->
<div class="title">三栏布局-grid布局:</div>
<div class="box-grid">
<div class="left">左侧</div>
<div class="center">中间</div>
<div class="right">右侧</div>
</div>
// 三栏布局-grid布局
.box-grid {
display: grid;
width: 100%;
grid-template-columns: 300px auto 250px;
div {
text-align: center;
line-height: 100px;
height: 100px;
}
.left {
background: rgb(80, 255, 95);
}
.right {
width: 250px;
background: rgb(23, 127, 161);
}
.center {
background: rgb(54, 131, 73);
}
}
7.三栏布局-display: table
<!-- 三栏布局-display: table -->
<div class="title">三栏布局-display: table:</div>
<div class="box-table">
<div class="left">左边固定宽度</div>
<div class="center">中间自适应</div>
<div class="right">右边固定宽度</div>
</div>
// display: table
.box-table {
height: 100px;
line-height: 100px;
text-align: center;
display: table;
table-layout: fixed;
width: 100%;
.left,
.right {
width: 300px;
background: rgb(228, 20, 183);
display: table-cell;
}
.center {
background: rgb(18, 240, 118);
color: white;
width: 100%;
display: table-cell;
}
}
如何用CSS实现左侧宽度固定,右侧自适应(两栏布局)?左右固定中间自适应(三栏布局)呢?的更多相关文章
- [转]css实现左侧宽度自适应,右侧固定宽度
原文地址:https://segmentfault.com/a/1190000008411418 页面布局中经常用会遇到左侧宽度自适应,右侧固定宽度,或者左侧宽度固定,右侧自适应.总之就是一边固定宽度 ...
- css实现左侧固定宽度,右侧宽度自适应
#centerDIV { height: 550px; width: 100%; } #mainDIV { height: 100%; border: 1px solid #F00; margin-l ...
- CSS布局:Float布局过程与老生常谈的三栏布局
原文见博客主站,欢迎大家去评论. 使用CSS布局网页,那是前端的基本功了,什么两栏布局,三栏布局,那也是前端面试的基本题了.一般来说,可以使用CSSposition属性进行布局,或者使用CSSfloa ...
- 转:CSS布局:Float布局过程与老生常谈的三栏布局
使用CSS布局网页,那是前端的基本功了,什么两栏布局,三栏布局,那也是前端面试的基本题了.一般来说,可以使用CSSposition属性进行布局,或者使用CSSfloat属性布局.前者适合布局首页,因为 ...
- CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼
今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化 可能很多朋友已经笑了,这玩意儿通过双飞翼布局就能轻松实现.不过,还请容我在双飞 ...
- 【CSS】三栏/两栏宽高自适应布局大全
页面布局 注意方案多样性.各自原理.各自优缺点.如果不定高呢.兼容性如何 三栏自适应布局,左右两侧300px,中间宽度自适应 (1) 给出5种方案 方案一: float (左右浮动,中间不用给宽,设置 ...
- CSS布局 - 三栏布局
CSS布局技术可谓是前端技术中最基础的技术,就是因为基础,所以我认为要更加熟练,深入的去掌握,去梳理. 一. 传统 ---> 浮动实现的三栏布局 采用浮动实现的三栏布局有以下特点及注意事项: · ...
- 前端一面/面试常考题1-页面布局:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应。
题目:假设高度已知,请写出三栏布局,其中左栏.右栏宽度各为300px,中间自适应. [题外话:日常宣读我的目标===想要成为一名优雅的程序媛] 一.分析 1. 题目真的像我们想得这么简单吗? 其实不然 ...
- css常见的各种布局下----三列布局
css 三列布局,左右固定宽度右边自适应 1不使用定位,只使用浮动可以实现左右固定,中间宽度自适应布局 1.1.1 自适应部分一定要放第一个位子,使用浮动,并且设置宽度为100%,不设置浮动元素内容不 ...
随机推荐
- centos7下rsync+inotify脚本实现文件同步,.NET CORE客户端文件更新后自动重启服务
源服务器IP:192.168.8.51 目标服务器IP:192.168.8.79 安装前源服务器及目标服务器均需关闭FIREWALLD\SELINUX防火墙 sestatus | grep statu ...
- 6月7日 python 复习 collections
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> ...
- 4月9日 python学习总结 模块
1.XML模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融 ...
- bzoj5417/luoguP4770 [NOI2018]你的名字(后缀自动机+线段树合并)
bzoj5417/luoguP4770 [NOI2018]你的名字(后缀自动机+线段树合并) bzoj Luogu 给出一个字符串 $ S $ 及 $ q $ 次询问,每次询问一个字符串 $ T $ ...
- 不会真有人还不会调用Excel吧?
哈喽,大家好!我是指北君. 大家有没有过这样的经历:开发某个项目,需要调用Excel控件去生成Excel文件.填充数据.改变格式等等,常常在测试环境中一切正常,但在生产环境却无法正常调用Excel,不 ...
- Git常见错误整理
参考文章 git 排错 fatal: 'git status --porcelain' failed in submodule abi/cpp 1 fatal: 'git status --porce ...
- 【推理引擎】在 VS Code 调试 ONNXRuntime 的测试单元
背景:在学习如何往ONNXRuntime中添加新算子时,参考了官方测试代码:onnxruntime/test/shared_lib/test_inference.cc,代码内部使用GTest作为单元测 ...
- idea执行maven命令的三种方式
前言: java开发的IDE工具idea默认会提供maven生命周期的图形化执行,但是如果我们需要定制化的执行命令的时候,就需要使用手动执行maven命令的方式,今天就和大家讲一下idea手动执行ma ...
- Eureka和Zookeeper区别?
(1)Eureka取CAP的AP,注重可用性,Zookeeper取CAP的CP注重一致性. (2)Zookeeper在选举期间注册服务瘫痪,虽然服务最终会恢复,但选举期间不可用. (3)eureka的 ...
- springMVC和struts2的区别有哪些?
(1)springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilte ...