欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

布局用position还是float? - Aoker

程序员文章站 2022-05-13 08:56:01
...
  初入前端。在学习上总会有很多问题。这次就网页布局来讲讲。

  网页布局在现代已经不再是什么难事,几乎所有页面都能做好一个能拿得出手的布局,在现在招聘网站上也有好多要求什么div+css布局的,简直不知所言。

  前端不懂布局就没法继续前了。那么怎么布局呢。

  细心一点就会发现,css里面竟然没有专门为布局而设定的属性。而能达到布局效果的,主要就是用position和float这两个属性了。

  在分析两个属性之前,先聊一下

  html标签里面,div是常用于布局的盒子,是一个块级元素,块级元素的自带属性就是display:block。可设宽度和高度,在文档流中独占一行,就是说如果想要有两个div并排的话,就要采取手段了。

  下面两个属性的用法。

  float

  中文翻译是叫做浮动,如果你用word比较多的话,应该不难理解浮动的意思。

设置样式属性float:left之后,会允许下面的块级元素在器右边并排,如果这两个元素的宽度超出父元素的宽度,那么本该在旁边的块级元素就会浮动到下一行,并且只到遇到下一个同级的块级元素设置的clear:left才会停止。另外间距需要使用margin属性来控制。

  优点:该元素的内容不会脱离文档流,父级元素可以让子元素撑起来。所谓撑起来就是比如父元素的宽 、高能自适应。

  缺点:说实话个人经常忘记加clear,所以不喜欢用float去布局。另外由于是浮动的。文档流不会出现重叠的情况。有时候布局会乱掉。

  position

  中文翻译叫定位。position有四个值,static(没有定位),fixed(固定定位),relative(相对定位),absolute(绝对定位);

  static很少用(几乎没用过),暂且不聊;position:relative可用与微调,在原位置上通过top、left、right、bottom来偏移距离。设置了position:absolute的块级元素会脱离文档流,就是说如果设置了float,float是没有效果的,并且能出现两个块级元素重叠的效果,position:absolute的父级元素一般会设置position:relative,用于限制position:absolute的活动范围。

  优点:简直就是坐标系,指哪打哪。给我一堆松散同级的元素都能布出一个漂亮的局。

  缺点:子元素脱离了文档流,父级元素的自适应没有了,高度不再自适应。

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

  那么布局用什么好呢?你喜欢用什么就用呗。开心就好,样式而已,都没有改变html的结构,但是最好不要一起用于同级的布局中,写着很乱,局也容易乱。

  个人喜欢用position。

  所以这里在给出一个解决父级高度宽度自适应的方法。就是用js啦。

  

 1 DOCTYPE html>
 2 html lang="en">
 3 head>
 4     meta charset="UTF-8">
 5     title>Documenttitle>
 6     style type="text/css">
 7     #person{position: relative; margin: 0 auto 0; width: 100px; background: yellow;}
 8     #son{ position: absolute; top: 10px; left: 0; width: 50px; height: 1000px; background: red; }
 9     style>
10 head>
11 body>
12     div id="person">
13         div id="son">div>
14     div>
15 script>
16     document.getElementById('person').style.height = document.getElementById('son').offsetHeight + 20 + 'px';
17 script>
18 body>
19 html>

温馨提示:要灵活使用js的方法,才能有好效果!

  

  

布局用position还是float? - Aoker

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频