html布局的常用的四种实现方式

html布局的常用的四种实现方式,第1张

需求 :假设高度默认100px ,请写出三栏布局,其中左栏、右栏各为300px,中间自适应

将左右的div宽度设为300px,分别左右浮动,中间盒子不设宽度。注意:先写右边盒子,再写中间盒子,否则先渲染中间盒子,中间盒子会占满该行剩下的宽度,右边盒子只能换行显示,就会出现下面的情况

正常的渲染效果如下所示:

第二种:绝对定位(position:absolute)

设置父盒子position:relative(相对定位),

三个子盒子position:absolute,

左盒子left:0,

右盒子right:0

中间盒子left:300pxright:300px

第三种:flex布局

父盒子 display:flex

左右盒子设置宽度:300px

中间盒子flex:1(flex-grow:1 flex-shrink:1 flex-basis:0%)不考虑元素尺寸自由伸缩

第四种:grid布局

父盒子display: grid

grid-template-columns:300px auto 300px(分割成3列,宽度分别为300px auto 300px)

grid-template-rows:100px(占一行,行高100px)

1.自然布局。

没有任何修饰的布局是自动靠左的。

2.流动布局

上面讲的float:left的情况。

3.定位布局

相对定位和绝对定位都是相对于父div标签的。

相对------以这个元素的本来应该在的位置为参照点

绝对——以父div标签的原点(左上角)为参照点。

由于外层是position:relative,所以里层是absolute的话,则会以外层的左上角为位移参考对齐。当然外层只写position:relative,写上left,top这两个值,则表示以:以这个元素的本来应该在的位置为布局参照原点进行left,top对齐。

还有一种情况是,只是一个position:absolute外层没有position:relative,这时会找寻那个点为参考呢?这时候的原则是:如果某父级元素中有relative者,则以某父级元素为参考原点,如果没有position:relative,则以body为参考原点。如果position:absolute外层没有relative时,这两个布局上是没有区别的。

当然最后一种情况是:外层是:position:absolute里边是position:relative,那会是什么情况?按着原来的原则,absolute会参考body为布局原点,relative会参考他本来应该在的位置为布局原点,这时候其实就是参考外层左上角为布局原点。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7079902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存