本文作者:IMWeb 赛冷思

未经同意,禁止转载

最近学习了一种经典布局,固定左侧或右侧的宽度,另一侧自适应宽度,此种布局挺常用,尤其是像后台,大部分都是采用这种结构,还比如像订餐类的APP,进入商家的时候,会出现一堆饭的列表,左侧是饭的分类,右侧是饭的列表等等。反正挺实用,值得收藏!

先看HTML代码

左侧固定,右侧自适应

左侧固定,右侧自适应布局

左侧定宽左侧定宽左侧定宽左侧定宽左侧定宽左侧定宽

右侧自适应,这是会自动换行的换行的换行的发动发动发扥扥这是会自动换行的换行的换行的发动发动发扥扥这是会自动换行的换行的换行的发动发动发扥扥这是会自动换行的换行的换行的发动发动发扥扥

css代码

*{

margin:0;

padding:0;

-webkit-box-sizing:border-box;

-moz-box-sizing:border-box;

box-sizing:border-box;

}

/* 两列右侧自适应布局 */

.left-fixed_right-auto{

width:100%;

height:200px;

clear:both;

display:inline-block;

margin-top:20px;

}

.left{

position:relative;

float:left;

width:200px;/* 数值核心1 */

height:100%;

margin-right:-200px;/* 数值核心2 */

background:red;

}

.right{

float:right;

width:100%;

height:100%;

background:pink;

}

.right-content{

margin-left:200px;/* 数值核心3 */

height:100%;

background:blue;

}

你可以尝试改变你的浏览器窗口,会发现,不管怎么改变大小,始终都是这种布局。有了这个规律,便可以实现一种动态效果,比如有一种场景:

左侧里面放一个按钮,通过点击这个按钮,来切换左侧的宽度大小。当左侧变窄时,右侧自动变宽;当左侧变宽时,右侧自动变窄,下面来实现一下:

js代码,在这之前,需要注释css中的以下三行代码

.left{

position:relative;

float:left;

/* width:200px; */

height:100%;

/* margin-right:-200px; */

background:red;

}

.right-content{

/* margin-left:200px; */

height:100%;

background:blue;

}

其实这三行我已在注释中标明了,分别是数值核心1,2,3.

javascript(我没有写window.onload,请务必放到dom的下面执行)

var doc=document,

/**

* [flag 当前展示宽度状态,true:使用最大宽度;false:使用最小宽度。默认是使用最大宽度]

* @type {Boolean}

*/

flag=true,

/**

* [maxWidth,minWidth 分别是左侧的最大和最小宽度]

* @type {String}

*/

maxWidth="200px",

minWidth="50px",

//左侧按钮容器

btnContainer=doc.querySelector(".toggle-btn"),

//左侧容器和右侧容器,实际上就只需要操作这两个元素

leftContainer=doc.querySelector(".left"),

rightContent=doc.querySelector(".right-content"),

/**

* 切换宽度大小

* @param {String} width 左侧需要显示的宽度(带px)

*/

setToggleLayout=function(width){

leftContainer.style.width=width;

leftContainer.style.marginRight="-"+width;

rightContent.style.marginLeft=width;

};

//初始化先调用一下,根据前面定义的规则,默认显示最大宽度

setToggleLayout(flag ? maxWidth : minWidth);

//点击按钮切换大小

btnContainer.οnclick=function(){

flag=!flag;

setToggleLayout(flag ? maxWidth : minWidth);

btnContainer=flag ? "收起" : "展开";

};

其实这只是简单的封装,你可以使用jQuery加入动画,还可以写成jQuery插件等。

html 左边固定右边自动,css经典布局之左侧固定大小右侧自动适应相关推荐

  1. div固定在浏览器顶部_手写几种常见的css布局,1垂直两栏左边固定右边自适应,垂直3栏左右固定中间自适应...

    1垂直两栏右边固定左边自适应的四种写法 <!DOCTYPE html> <html lang="en"><head><meta chars ...

  2. css经典布局——头尾固定高度中间高度自适应布局

    今天说说一个经典布局:头尾固定高度中间高度自适应布局! 转文请标明 --- 出处:穆乙 http://www.cnblogs.com/pigtail/ 相信做过后台管理界面的同学,都非常清楚这个布局. ...

  3. 圣杯布局-三种实现方式,css经典布局

    圣杯布局:经典三栏布局,左右两边宽度固定,中间自适应 圣杯布局在前端构建页面是最常见的一种布局方式,也是前端面试中最常被问到的一问题,下面通过三种方式去实现圣杯布局!附代码!可以一对比一下哪种方式最便 ...

  4. CSS经典布局--圣杯布局和双飞翼布局

    圣杯布局与双飞翼布局,都是属于三列布局的经典布局. 双飞翼布局是圣杯布局的优化版,由淘宝UED提出: 它们的效果图类似,但是实现方法不同. 文章目录 一.圣杯布局和双飞翼布局的常规方法 1.圣杯 po ...

  5. css经典布局——双飞翼布局

    圣杯布局的出现是来自由 Matthew Levine 在 2006 年写的一篇文章 <In Search of the Holy Grail>,在国内最早是淘宝UED的工程师(玉伯大大)对 ...

  6. html怎么制作固定背景,使用CSS制作的页面背景固定和滚动效果

    HTML HTML结构很简单,一个class为.cd-fixed-bg的div元素用于放置固定背景图,一个class为.cd-scrolling-bg的div元素用于滚动的部分.我们可以放置多个.cd ...

  7. html文字自适应屏幕居中显示,DIV+CSS经典布局[宽度自适应][自动屏幕居中]的实现...

    test --> Header 分析: 最外层的wrapper把所有内容都嵌套在里边,整体相对定位.max min已经很好的控制了最窄最宽值,但对IE没有作用.如果没有其他布局的穿插,这一层其实 ...

  8. CSS(一) 经典布局(两边固定,中间自适应)的五种方式

    两边固定,中间自适应 本篇总结五种思路实现方式, 圣杯布局 圣杯布局,方便理解是带有两只耳朵的奖杯,耳朵跟奖杯是一体,所以左右两边跟中间同级,但是content在上面 第一步:中间盒子100%,两边固 ...

  9. (转)CSS经典布局解析

    CSS 基础知识: 下面几个入门教程不错: 幕课网 – HTML+CSS基础课程:偏基础,可以在线练习和预览 MDN – CSS入门教程: MDN 的官方文档 学习 CSS 布局:排版和配色特别舒服, ...

最新文章

  1. 计算机分级存储的特,一种分级存储的方法、系统、设备及介质技术方案
  2. DNS SOA NS区别
  3. Pytorch 网络模型的保存与读取
  4. 昨天又写到个结构体排序,用多种cmp
  5. 计算机族应常喝的健康饮品
  6. SVM支持向量机算法详解
  7. 利用WPS功能破解无线路由器PIN码
  8. 微信公众号——分享给朋友/分享至朋友圈(Vue)
  9. JST日本压着端子XH系列线对板连接器PCB封装库(2.5mm间距)
  10. 中文论文检索证明怎么开_SCI论文检索后收录证明怎么开?
  11. SPIR-V教程 -- SPIR-V介绍(一)
  12. 树莓派人脸表情识别中期报告
  13. STM32F7-->USART串口通信
  14. 儿童用灯哪个品牌好?推荐专业的儿童护眼台灯
  15. 串口,使用交叉还是直连串口线
  16. HTTP协议报文基本格式
  17. 火星玩家Mars全球合伙人招募计划启动:为电核户外可持续发展贡献实质力量
  18. 【枚举 + 求最大公约数方法】最大公约数等于K的子数组数目问题
  19. dsa数字签名c语言编程,实验三DSA数字签名算法
  20. layui框架使用方法详解

热门文章

  1. 博客园自定义鼠标样式
  2. mysql 民族表_我国西北地区藏族.蒙古族等民族的藏传佛教格鲁派中心是(        )。...
  3. 用Python制作mini翻译器
  4. React的React.FC与React.Component的初步认识
  5. 关于微积分的所有公式定理
  6. ESP32 使用 ESP-AT 测试 MQTT WSS 连接和数据传输的流程
  7. 第一个计算出地球周长的人——埃拉托色尼
  8. Golang读写锁读锁重复获取的问题
  9. Clean Code 读书笔记三——方法(函数)
  10. 基于大模型GPT,如何提炼出优质的Prompt