博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html+css 布局篇
阅读量:5063 次
发布时间:2019-06-12

本文共 1270 字,大约阅读时间需要 4 分钟。

float

做了float后有一些不好的影响。

1、背景不能显示 由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。
2、边框不能撑开 如上图中,如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。
3、margin padding设置值不能正确显示 由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。
故需清除浮动

1 、父div设置合适高度

2 、在要做float的div后,可以在html加一个空的div,或者在css在其父元素用after中 content:'';,

而后写

clear:both;(有一些浏览器不写这句就不作用

display:block;

(最好再写上width:0;height:0;visibility:hidden;保证这个元素看不见,不影响布局)

(建议是用after)

3、父级div定义overflow:hidden(或overflow:auto)

(注意:给导航栏单独每一项加下划线时不要用3,因为会把下划线隐藏)

(还有一些奇奇怪怪不好用的方法,比如把父元素也设置浮动,就不提了)

 

div

默认一个div占一行,那么如何让多个个div同一行?

1、用float

如果分两列,可以先把两列的div分别包含在两个div里面

如果分三列,要都float:left,或者两个float:left一个float:right;

缺点:如果右边div没有设置宽度,右边div的宽度会根据div里的内容自动调整,不易控制。

2、只有左侧div设置为float:left,右侧div设置overflow:auto;,右侧div将会占据整个右侧剩余宽度。

缺点:如果有多个div 比如三个及以上了?

3、使用display的inline-block属性(不用inline,inline高度不可控)

(会上下错位,原因:

①同一行的行内元素对齐方式默认是底部对齐,即vertical-align:baseline

②对于内容为空的inline-block元素而言,该元素的基线就是它的margin底边缘,否则就是元素的内部最后一行内联元素的基线

解决方案:

改变vertical-align属性(右侧div设置vertical-align: top;)

4、①对于两个div并排,左边为绝对宽度,右边为相对宽度的,需要用到这种布局的情况比较多见,如左边为导航,右边为内容的页面

      ②左边固定宽度,使用position:absolute

      ③右边margin-left为左边一块的固定宽度

 

(此处暂时不考虑弹性盒子,我先练习不用弹性盒子的)

转载于:https://www.cnblogs.com/fy-xjw/p/9685344.html

你可能感兴趣的文章
PT协程简介
查看>>
LSA算法简单理解
查看>>
然之协同系统3.5(OA+CRM+CASH+TEAM)
查看>>
文件系统损坏导致虚拟机无法正常启动的问题及解决方法
查看>>
C++入门经典-例4.1-声明、定义和使用函数
查看>>
[无向图割点] PKU 1523 SPF
查看>>
JAVA WEB开发环境搭建教程
查看>>
jquery 表单校验
查看>>
【机器学习实战】Machine Learning in Action 代码 视频 项目案例
查看>>
我的第一个.NET Core App Windows系统
查看>>
faceswap深度学习AI实现视频换脸详解
查看>>
Android实例-手机安全卫士(十一)-自定义对话框点击事件处理
查看>>
上海行政区域规划图
查看>>
HDU-4417 Super Mario
查看>>
ptmalloc内存分配释放
查看>>
通过Url网络编程实现下载
查看>>
@RequestParam 绑定List参数
查看>>
poj 2195Going Home
查看>>
伪元素消除浮动
查看>>
HttpClient的几个实现类
查看>>