利用绝对定位脱离文档流
三个盒子都分别使用绝对定位,left、right分别距离窗口左右端为0,center距离窗口左端的间距为left盒子的宽度,距离窗口右端的间距为right盒子的宽度。
3.使用flex
利用弹性盒固有属性
须给父盒子layout加上弹性盒属性,给center盒子设置大于0的flex值,利用弹性盒自动拉伸效果实现center盒子的宽度自适应。
4.使用table
设置为表格
给父盒子layout设置为table,宽度为整个窗口,给三个子盒子都设置为table-cell,此时三个盒子就有了表格的属性。固定left、right盒子的宽度,center盒子自动占满父盒子剩余宽度。需要注意的是,因为父盒子具有表格属性,当left、center、right三者中任意一个盒子高度改变时,其他两个盒子会跟着改变。
5.使用grid
设置为网格
将父盒子layout设置为grid,宽度为整个窗口,用template-rows设置行高,用template-columns分别设置三个盒子的宽度,其中auto实现center盒子的宽度自适应。需要注意的是,这里用template-rows设置了固定的行高,因此center的高度不会自适应。
仿写练习
适合初学者练习的网页有很多,可以打开网址之家去里面挑一挑,以静态页面为主的网站。作者自己是以豆瓣首页(局部)进行练习的。练习过程中,千万不要去看网站源码(此时你也有很多地方看不懂),先试着自己分析和思考,用所学的知识看看能做到哪一步。