对于html中div标签height属性的个人理解
对于没有系统学习过css
的程序员来说,在编写css
样式的时候,div
的height
属性值确实是个玄学的东西,我也感觉css
确实挺玄学的,本文将介绍我对div
标签height
属性的个人理解,如有问题请指正。
在html
中,div
标签属于行级标签,最明显的特点是占一行,也就是width
的值默认是100%
,而height
的值默认是inherit
,并不是100%
当父div
高度指定时
- 若子
div
高度不指定,则父div
高度是根据子div
中内容所需要的高度动态改变的。比如以下代码,在谷歌浏览器中渲染之后,父div
高度指定为600px
,子div
高度动态赋值为21px
<div style="height: 600px;background-color: antiquewhite;"><div style="background-color: gray;">123</div>
</div>
若子
div
高度指定,且高度小于等于父div
高度,则正常渲染,内容超出高度时会出现滚动条若子
div
高度指定,且高度大于父div
高度,子div
高度超过父div
的部分内容会溢出渲染,父div
的高度也不会被撑开变大。如果想让子标签超出父div
高度的内容隐藏,可以给父div
添加overflow-y: hidden;
样式
<div style="height: 50px;background-color: antiquewhite;"><div style="height: 100px;width: 50%;background-color: gray;"></div>
</div>
- 若想给父
div
增加内间距之后,剩余高度由子div
继承,可以给子div
的height
值设置成100%
,注意:父实际渲染的 height = padding-top + padding-bottom + border-top + border-bottom + 父指定height,并且从dom
中获取父div
的height
,结果是父指定height
,而不是实际渲染的height
<div id="demo" style="height: 200px;background-color: antiquewhite;padding: 10px 0 10px 0 ;"><div style="height: 100%;background: #7bed9f;">123</div>
</div>
- 若子
div
存在两个,其中一个div
高度指定,剩余的高度全部交给另一个div
,可以使用calc()
函数计算剩余子div
的高度。注意:另一个div
的height
不能设置成100%
,100%
的height
继承父div
的height(200px)
,此时这两个div
的总height
就会超过父height
,然后内容溢出
<div id="demo" style="height: 200px;background-color: antiquewhite;padding: 10px 0 10px 0 ;"><div style="height: 30px;background: #7bed9f;">123</div><div style="height: calc(100% - 30px);background: #dfe4ea;">456</div>
</div>
若父
div
高度想设置成屏幕高度,可以使用vh
单位,vh
相对于视口的高度,视口被均分为100单位,设置成height:100vh
后,div
的高度就是屏幕高度,又因为div
的宽度默认时100%
,所以此时该div
盒子铺满整个屏幕。
当父div
高度不指定时
- 若子
div
高度也不指定,则父div
的高度取决于子标签的高度
<div id="demo" style="background-color: antiquewhite;padding: 10px 0 10px 0 ;"><div style="background: #7bed9f;">123</div><div style="background: #7bed9f;">123</div>
</div>
- 若子
div
高度指定(非指定百分比),则父div
的高度取决于子标签的高度
<div id="demo" style="background-color: antiquewhite;padding: 10px 0 10px 0 ;"><div style="height: 40px;background: #7bed9f;">123</div><div style="height: 40px;background: #7bed9f;">123</div>
</div>
- 若子
div
的高度指定为百分比,则height
设置无效,因为父div
的height
没有具体值。
<div id="demo" style="background-color: antiquewhite;padding: 10px 0 10px 0 ;"><div style="height: 30%;background: #7bed9f;">123</div><div style="height: 30%;background: #7bed9f;">123</div>
</div>
在多级
div
中,比如一级div
设置了具体的height
,二级div
未设置height
,三级div
的height
的值设置成百分比,该百分比的height
也是失效的,符合以上的情况。因为二级div
未设置height
的具体值,则二级div
的高度取决于子标签中的内容所需要的高度,然后三级div
在指定百分百高度之后,因为(父)二级div
的height
没有指定,则百分百height
失效。<div id="demo" style="height: 200px;background-color: antiquewhite;padding: 10px 0 10px 0 ;"><div style="background: #7bed9f;"><div style="height: 50%;background-color: #dfe4ea;">123</div></div> </div>
对于html中div标签height属性的个人理解相关推荐
- H5 中div标签及其属性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&g ...
- html中div标签圈套,HTML中div标签和span标签的应用
HTML中div标签和span标签的应用 发布时间:2020-06-16 18:09:16 来源:亿速云 阅读:217 作者:元一 一.div标签 DIV标签,称为区隔标记.作用是设定字.画.表格等的 ...
- vue3-video-play视频组件的使用(一)——基本使用 HTML5中Video标签的属性、方法和事件汇总
vue3-video-play视频组件的使用(一)--基本使用 & HTML5中Video标签的属性.方法和事件汇总 npm地址:https://www.npmjs.com/package/v ...
- html中div不在火狐居中,Firefox嵌套CSS中div标签居中问题解决方法
本文和大家重点讨论一下Firefox嵌套CSS中div标签的居中问题的解决方法,主要包括使用line-height垂直居中,清除容器浮动,不让链接折行,始终让Firefox显示滚动条等内容. Fire ...
- html语言div怎么使用,什么是div标签?HTML中div标签怎么使用?
HTML中的div标签是实现网页的重要基础,是学习HTML知识必不可少的内容,本篇文章就来为大家介绍关于HTML中div标签的使用方法. 什么是div标签? div标签表示一组必要的结构.目的是将夹在 ...
- Web学习第三天——HTML中input标签常用属性、框架集、内嵌框架
第三天HTML中input标签常用属性.框架集.内嵌框架 一.input标签常用属性 表单数据提交特点: (一).文本框(text) (二).密码框(password) (三).单选按钮(radio) ...
- Spring中bean标签的属性和值:
Spring中bean标签的属性和值: <bean name="user" class="com.pojo.User" init-method=" ...
- jsp中div 标签到底有什么用?
DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素.DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或 ...
- html中a标签的属性
html中a标签的属性 常用的有: href.rel.target. a标签没有像button的click事件,只能通过html的全局鼠标属性onclick 因此在vue中不能直接对a标签使用语法糖@ ...
最新文章
- 3.12 总结-深度学习第五课《序列模型》-Stanford吴恩达教授
- PHP制作回合制游戏,回合制游戏脚本制作采集思路
- rwkj 1359 友元:两点距离
- python的pygame游戏开始结束信息_从0开始学python第14.8节-pygame射击游戏(一)
- HDU3939(毕达哥拉斯三元组的解)
- (Docker实战) 第五篇:建立持续集成环境02
- 中国K12在线教育市场调研及用户消费行为报告
- 电脑怎么打字切换中文_Master of Typing in Chinese for Mac(中文打字大师)
- 【华为云技术分享】万万没想到,我在夜市地摊解决了MySQL临时表空间难题~~
- access后台链接mysql_Access为后台数据库的网站统计系统
- iOS开发日记56-详解UIImage
- 自己动手——实现台达PLC远程监控数据采集
- win10系统 安装modelsim64位的无法生成license文件的解决办法
- C语言判断上三角矩阵
- 第九节 html特殊文字符号
- 设计思维(Design Thinking)
- 约瑟夫生死者游戏_独立游戏从死者特许经营中夺冠时,游戏玩家获胜
- python中base函数_详细的python basemap中各函数的所有参量注释
- 北航计算机学院硕士培养方案,北航硕士研究生培养方案.doc
- kubectl命令行管理工具
热门文章
- Oracle实例名,服务名等概念区别与联系
- 再不看就晚了,我用Python抢到了回家的火车票!
- 微信小程序获取手机号第一次失败,第二次成功的解决方案
- The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.4 莫德斯大厅问题
- 第3章 运输层--单元测试--计算机网络
- WebRTC入门与实战 --- WebRTC原理与架构
- linux如何调试elf程序,Linux下ELF的执行过程
- 精益画布和数据分析框架
- 随手记录: 快乐终端 ohmyzsh macOS/Ubuntu 共用
- Python-cp950‘ codec can‘t encode