CSS float和absolute
position:absolute
与float:left
有两大共性:包裹性,破坏性。
包裹性
包裹性即让元素inline-block
化,例如一个div
标签默认宽度是100%显示的,但是使用了absolute
属性,则100%默认宽度就会变成自适应内部元素的宽度。
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><style type="text/css">.div { padding:20px; margin-bottom:10px; background-color:#f0f3f9; }.abs { position:absolute; }</style>
</head>
<body><div class="div"><p>无absolute</p></div><div class="div abs"><p>absolute后</p></div>
</body>
</html>
float
也是典型的inline-block
化元素,这种使元素inline-block
化适用于任何的标签。例如让span
标签支持width
属性,如下设置:
span { display:block; width:100px; }
但是,使用了float:left
/position:absolute
之后就不需要使用display
属性。
span { float:left; width:100px; }
span { position:absolute; width:100px; }
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><style type="text/css">.span0 { width:100px;margin-bottom:10px; background-color:#f0f3f9; }.span1 { display:block; width:100px;margin-top: 10px;margin-bottom:10px; background-color:#f0f3f9; }.span2 { position:absolute;width:100px;background-color:#f0f3f9; margin-bottom:10px; }</style>
</head>
<body><span class="span0">没有使用absolute没有使用display:block</span><span class="span1">没有使用absolute使用了display:block</span><span class="span2">使用absolute</span>
</body>
</body>
</html>
破坏性
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title>
</head>
<body><div style="border: 1px solid;margin-top:20px;"><div style="float:left;width:100px;height:200px;background-color:red;"></div><div style="position:relative;left:150px;width:100px;height:100px;background-color:green;"></div></div><div style="border: 1px solid;position:relative;top:150px;"><div style="position:absolute;width:100px;height:200px;background-color:red;">使用absolute对父div的影响</div><div style="position:relative;left:150px;width:100px;height:100px;background-color:green;"></div></div><div style="border: 1px solid;position:relative;top:300px;"><div style="width:100px;height:200px;background-color:red;">不使用absolute对父div的影响</div><div style="position:relative;left:150px;width:100px;height:100px;background-color:green;"></div></div>
</body>
</html>
五、position:absolute滥用
absolute
属性本来是想把页面搞得像photoshop那样,一个图层一个图层覆盖。但是,页面的发展与这个背道而驰,毕竟页面是活的。
流动性布局很强调不定宽,不定高,活用标签自身属性,顺其自然,最少干预。但是由于absolute
属性(尤其是带有left
/top
值)的破坏性,会导致高宽塌陷,于是,只能设定一个高度值(或是足以撑开高度的值),例如新浪微博导航就是绝对定位,所以导航外标签必须定高,否则,下面的元素会上来发生重叠:
想重构高质量的页面,少用绝对定位布局!
CSS float和absolute相关推荐
- CSS position绝对定位absolute relative
常常使用position用于层的绝对定位,比如我们让一个层位于一个层内具体什么位置,为即可使用position:absolute和position:relative实现. 一.position语法与结 ...
- html中的绝对定位怎么写,CSS position绝对定位absolute relative
DIV CSS position绝对定位absolute relative教程篇 常常使用position用于层的绝对定位,比如我们让一个层位于一个层内具体什么位置,为即可使用position:abs ...
- CSS Float(浮动)
2019独角兽企业重金招聘Python工程师标准>>> 什么是CSS Float(浮动)? CSS的Float(浮动),元素可以围绕其他元素向左或向右被推动 Float(浮动),往往 ...
- css float left right 中间空间城数据无法显示
css float left right 中间空间城数据无法显示 是由于设定了width具体值太小造成,简单用%值或不设置. 转载于:https://www.cnblogs.com/allensun- ...
- 对css float 浮动的学习心得
css float浮动详解 @(css float)[hasLayout|clear float|妙瞳] css float的定义和用法 float 属性定义元素在哪个方向浮动.以往这个属性总应用于图 ...
- 教你玩转CSS Float(浮动)
目录 什么是 CSS Float(浮动)? 元素怎样浮动 彼此相邻的浮动元素 清除浮动 - 使用 clear CSS 中所有的浮动属性 什么是 CSS Float(浮动)? CSS 的 Float(浮 ...
- html中左浮动怎么写,div css float浮动用法(left right)
div+css中float认识及css float用法,DIV CSS float浮动知识用法与float浮动教程篇 Css样式的float浮动属性,用于设置标签对象(如: 标签盒子.标签.标签.标签 ...
- html图片浮动教程,CSS Float(浮动)
CSS Float(浮动) 什么是 CSS Float(浮动)? CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列. Float(浮动),往往是用于图像,但它在布局时一 ...
- float和absolute的区别
float和absolute都会脱离文档流,那二者之间有哪些不同的地方呢? 脱离文档流,就是将该元素从普通的布局中拿出来,其他元素在定位的时候,会当脱离文档流的元素不存在而进行定位. float fl ...
最新文章
- php怎样获取视频播放的进度条,小程序如何实现视频或音频自定义可拖拽进度条...
- 爬虫必须得会的Web知识
- Max retries exceeded with url 解决方案
- centos6.5+jexus5.6.3+mono 3.10实践,让asp.net在linux上飞一会儿
- IDEA 调试部署 Web-INF/classes下面不生成class文件
- 如何用一句话证明你是程序员?
- 预定义类型未定义或导入_LimeSurvey基础教程(二)——问题类型
- 【Beam Search】seq2seq中的beam search算法过程
- 原型和原型链 及 instanceof函数
- 六石管理学:流程是为工作服务的
- Bootdo后台管理系统使用步骤详解
- Image data of dtype object cannot be converted to float 问题解决
- 闭合导线的近似平均差(工程测量)
- violate与线程安全
- 金蝶java笔试_金蝶面试题
- Navicat11 for mysql(包括激活工具)亲测可用
- 送书来了|Python数据分析必备工具书
- 物联网安全解决方案_如何设计具有安全性的自制物联网解决方案
- 图片按钮 imagebutton
- 夏令营被拒,计算机保研er应该怎么办?
热门文章
- mysql:查询所有课程的成绩第2名到第3名的学生信息及该课程成绩
- qq录制视频保存到哪了?qq录制视频怎么没了?找回方法在这
- 陕西互联网大会9月举行,聚焦新互联时代陕西机遇
- 开源在线客服系统源码 支持PC官网+微网站+h5页面+小程序+公众号等多端客服 含搭建教程
- 苹果手机速度慢_手机上网很卡?只需要几步就能让手机飞速起来
- windows环境下,如何查看redis密码和设置redis密码
- Windows 10操作系统更改计算机名报“一般性网络错误”的解决方案
- 蓝桥杯 世纪末的星期(世界末日)
- 搞笑能火的爆款短视频选题
- 【Word排版】大纲级别、多级列表、样式应用