首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么使用top或bottom会降低元素的高度?

使用top或bottom会降低元素的高度是因为这两个属性会改变元素的定位方式为绝对定位或固定定位,从而使元素脱离了正常的文档流。在绝对定位或固定定位的情况下,元素的高度不再受到父元素的影响,而是根据自身内容的高度来决定。

具体来说,使用top属性时,元素的垂直位置会相对于其最近的具有定位属性(position属性值为relative、absolute、fixed或sticky)的父元素进行定位。如果没有找到这样的父元素,则相对于最初的包含块(通常是浏览器窗口)进行定位。而使用bottom属性时,元素的垂直位置则是相对于父元素的底部边界进行定位。

由于绝对定位或固定定位会使元素脱离文档流,因此元素的高度不再受到父元素的限制,而是根据自身内容的高度来决定。如果元素没有设置具体的高度值,那么元素的高度将会被内容撑开,从而导致元素的高度增加或减少。

需要注意的是,使用top或bottom属性时,元素的定位方式必须为绝对定位(position: absolute)或固定定位(position: fixed),否则这两个属性将不会生效。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云函数(SCF)。

  • 腾讯云云服务器(CVM):提供弹性计算能力,可根据业务需求灵活调整服务器配置,支持多种操作系统和应用场景。产品介绍链接:https://cloud.tencent.com/product/cvm
  • 腾讯云云函数(SCF):无需管理服务器,按需运行代码,实现弹性扩缩容,适用于事件驱动型的应用场景。产品介绍链接:https://cloud.tencent.com/product/scf
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

详解 清除浮动 多种方式(clearfix)

由于浮动元素脱离文档流,所以导致不占据页面空间,所以会对父元素高度带来一定影响。...优势:不影响结构与表现分离,语义化正确,代码量少 弊端:盒模型属性已经改变,造成其他问题 方案6 使用内容生成方式清除浮动 .clearfix:after { content:""...疑问 为什么margin边距重叠?...overflow:hidden, 语义应该是溢出:隐藏,按道理说,子元素浮动了,但依然是在父元素,而父元素高度塌陷,高度为0了,子元素应该算是溢出了,为什么没有隐藏,反而撑开了父元素高度?...我们可以看到,虽然有浮动元素top,但是bottom左边依然与包含块左边相接触。

1.5K60

简单说 CSSvertical-align

定义和用法 vertical-align 属性设置元素垂直对齐方式。 该属性定义行内元素基线相对于该元素所在行基线垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。...vertical-align: text-top; /*把元素顶端与父元素字体顶端对齐*/ vertical-align: text-bottom; /*把元素底端与父元素字体底端对齐。...*/ vertical-align: middle; /*把此元素放置在父元素中部*/ vertical-align: top; /*把元素顶端与行中最高元素顶端对齐*/...我们能看见,图片是和文字x下边缘,也就是基线对齐,并不是和底线对齐。 现在我们调整图片 vertical-align 属性值 为bottom,看看怎样 <!...既然我们知道了这些,那我们就能想到更多解决方案了。 1、设置vertical-align值,不使用baseline,使用bottom/middle/top都是可以。

1.4K31
  • CSS实用技巧(中)

    防止垂直方向margin合并 实现多栏弹性布局 BFC生效条件 以下CSS属性触发元素生成BFC结界: 根元素() 浮动元素元素 float 不是 none) 绝对定位元素元素...为 flex inline-flex 元素直接子元素) 网格元素(display 为 grid inline-grid 元素直接子元素) 多列容器(元素 column-count column-width...绝对定位元素脱离文档流,相对于最近非 static 祖先元素定位,可以利用left/right/top/bottom定位元素位置。...left/top/right/bottom都有值定位 当对立位置(left与right,topbottom)都设置值且元素没用固定宽高 此时元素宽高是根据元素位置决定,张鑫旭大佬在《CSS世界》...上述demo,box-item之所以能够垂直居中,得益于top/bottom设置了值,使元素产生高度100%外部尺寸,而width/height固定元素内部尺寸,使得 外部尺寸高度-内部尺寸高度=元素剩余可用空间高度

    1.5K40

    前端开发面试题答案(二)

    没有定位,元素出现在正常流中(忽略 top, bottom, left, right z-index 声明)。 inherit 规定从父元素继承position 属性值。...利用padding-bottom|margin-bottom正负值相抵; 设置父容器设置超出隐藏(overflow:hidden),这样子父容器高度就还是它里面的列没有设定padding-bottom...时高度, 当它里面的任一列高度增加了,则父容器高度被撑到里面最高那列高度, 其他比这列矮列会用它们padding-bottom补偿这部分高度差。...清除浮动方式 清除浮动是为了清除使用浮动元素产生影响。浮动元素高度塌陷,而高度塌陷使我们页面后面的布局不能正常显示。...因为cookie有域限制,因此不能跨域提交请求,故使用非主要域名时候,请求头中就不会带有cookie数据, 这样可以降低请求头大小,降低请求时间,从而达到降低整体请求延时目的。

    1.4K40

    关于 vertical-align 你应该知道一切

    topbottom 对于内联元素,指的是元素顶部(底部)和当前行框盒子顶部(底部)对齐;即与 line-box 顶部(底部)对齐。...2、百分比则是基于 line-height 来计算 需要注意是:除了 topbottom 是使元素相对于整行垂直对齐外,其他属性值都是相对于父元素。...为什么不学以致用呢?按照之前讲解,我们可以借助空白节点,空白节点我们看不见,但是如果可以给它设置一个高度,让它与父级高度一致,就解决了这个问题。怎么给高度呢?答案是借助伪元素。...那么我们解决这类问题就可以使用以下步骤了: 主体元素 inline-block 化 0 宽度 100% 高度辅助元素(伪元素) vertical-align : middle 案例 2:实现多图列表两端对齐...我们惊喜发现这个现象就是上面所说任意一个块级元素,里面若有图片,则块级元素高度基本上都要比图片高度高问题,那么产生原因就知道了,是 line-height 与 vertical-align

    2.7K20

    面试官问:如何判断一个元素是否在可视区域?

    通过元素位置信息和滚动条滚动高度 在这里,我们先介绍几个元素位置信息和大小: Element.clientWidth Element.clientWidth 属性表示元素内部高度,以像素计。...如果一个元素在视窗之内的话,那么它一定满足下面四个条件: top 大于等于 0 left 大于等于 0 bottom 小于等于视窗高度 right 小于等于视窗宽度 function isContain...() 方法返回值,如果没有根元素(即直接相对于视口滚动),则返回 null boundingClientRect:目标元素矩形区域信息 intersectionRect:目标元素与视口(元素)...root 属性,rootMargin 属性 很多时候,目标元素不仅随着窗口滚动,还会在容器里面滚动(比如在iframe窗口里滚动)。容器内滚动也影响目标元素可见性。...它使用 CSS 定义方法,比如 10px 20px 30px 40px,表示 top、right、bottom 和 left 四个方向值。

    3K21

    【面试篇】金九银十面试季,这些面试题你都会了吗?

    设置百分比高度:在standards模式下,一个元素高度是由其包含内容来决定,如果父元素没有设置百分比高度,子元素设置一个百分比高度是无效用margin:0 auto设置水平居中:使用margin...网页标准和标准制定机构都是为了能让web发展更‘健康’,开发者遵循统一标准,降低开发难度,开发成本,SEO也更好做,也不会因为滥用代码导致各种BUG、安全问题,最终提高网站易用性。...如果我们在文档中添加 那么浏览器识别该文档为css文件,就会并行下载资源并且不会停止对当前文档处理。这也是为什么建议使用link方式来加载css,而不是使用@import方式。...内联元素(inline)特性: 和相邻内联元素在同一行; 宽度(width)、高度(height)、内边距top/bottom(padding-top/padding-bottom)和外边距top.../bottom(margin-top/margin-bottom)都不可改变(也就是padding和marginleft和right是可以设置),就是里面文字图片大小。

    87630

    第213天:12个HTML和CSS必须知道重点难点问题

    一般都要配合"left"、"top"、"right" 以及 "bottom" 属性使用。 **static:默认位置。...设置为 static 元素,它始终会处于页面流给予位置(static 元素忽略任何 topbottom、left right 声明)。一般不常用。 **relative:相对定位。...**相对定位是相对于元素默认位置定位,它偏移 top,right,bottom,left 值都以它原来位置为基准偏移,而不管其他元素怎么 样。...取值:left、right、both 3.2 父元素高度塌陷问题 为什么要清除浮动,父元素高度塌陷 解决父元素高度塌陷问题:一个块级元素如果没有设置height,其height是由子元素撑开。...对子元素使用了浮动之后,子元素脱离标准文档流,也就是说,父级元素中没有内容可以撑开其高度,这样父级元素height就会被忽略,这就是所谓高度塌陷。

    2.3K20

    深入理解视觉格式化模型( VISUAL FORMATTING MODEL)

    实践过程中经常会遇到某个属性使用,浏览器渲染效果与预期效果不符,虽然通过死记硬背能避免巧妙应用这种效果,但总感心虚发慌、毫无自信,因为不知晓背后原理。...现介绍两个绝对定位使用技巧: 1. 绝对定位元素,水平方向(topbottom和垂直方向(left和right)定位值不设置时,其位置受其前面的兄弟元素影响,如同其在常规流中位置。...同样,由于触发按钮高度是可能变化,那么下拉列表与触发按钮顶端绝对距离是不固定使用单位px是无法达到自适应,通常技巧是设置top:100%,其实利用我们上面提到技巧,对topbottom...一般为了水平居中会在水平方向上设置auto,为什么这种情况下,在垂直方向上设置auto,导致垂直居中效果呢?...对于绝对定位元素,垂直尺寸使用值必须满足下面约束: ‘top’ + ‘margin-top’ + ‘border-top-width’ + ‘padding-top’ + ‘height’ +

    62730

    这实现牛逼了,原来阮大佬博客阅读进度功能这么简单

    js 实现需要监听 scroll 事件,而且滚动时有可能是频繁 scroll 事件触发,有可能造成一定性能浪费,所以我们来一起学习 css 实现方案 使用CSS实现阅读进度 使用 CSS 实现阅读进度方法很有意思...类似于 js 功能检查,可以检查 CSS 中某一属性功能当前浏览器是否支持。...: linear-gradient(to right top, #0089f2 50%, #DDD 50%); /* 通过 calc 函数配合 100vh 就可以从总长中删除一屏高度 */...; } 复制代码 设置盖住蓝块白块 阅读进度条高度为 3px ,因此设置白块高度为 100% \- 3px,可以另外加一个 div 元素来设置白块,但小包推荐使用元素 :before/:after...topbottom 可以拉伸 height */ /* 设置高度为 100% - 3px */ top: 3px; bottom: 0; width: 100%;

    72730

    【CSS 学习笔记】CSS元素和布局

    + padding-bottom + border-top + border-bottom border-box: width 和 height 属性设置值就为元素整体宽高,内边距和边框在已设定宽度和高度内进行绘制...垂直属性 如果 margin-top 和 margin-bottom 都设为 auto(对于定位元素会有不同),会将它们计算为0。 height 设为 auto,一般等于其包含元素高度。...对于替换元素来说,元素行内框高度等于元素 height + margin-top + margin-bottom + padding-top + padding-bottom + border-top...替换元素 替换元素 margin, border. padding 影响行内框宽度和高度 可以对替换元素设置 width 和 height。如果不设置宽高,会使用元素本来宽度和高度。...table-row-group 此元素作为一个多个行分组来显示(类似 tbody)。 table-header-group 此元素作为一个多个行分组来显示(类似 thead)。

    1.1K20

    深入理解视觉格式化模型

    实践过程中经常会遇到某个属性使用,浏览器渲染效果与预期效果不符,虽然通过死记硬背能避免巧妙应用这种效果,但总感心虚发慌、毫无自信,因为不知晓背后原理。...现介绍两个绝对定位使用技巧: 1. 绝对定位元素,水平方向(topbottom和垂直方向(left和right)定位值不设置时,其位置受其前面的兄弟元素影响,如同其在常规流中位置。...同样,由于触发按钮高度是可能变化,那么下拉列表与触发按钮顶端绝对距离是不固定使用单位px是无法达到自适应,通常技巧是设置top:100%,其实利用我们上面提到技巧,对topbottom...一般为了水平居中会在水平方向上设置auto,为什么这种情况下,在垂直方向上设置auto,导致垂直居中效果呢?...对于绝对定位元素,垂直尺寸使用值必须满足下面约束: 'top' + 'margin-top' + 'border-top-width' + 'padding-top' + 'height' + 'padding-bottom

    91790

    从头学前端-CSS基础04

    定位为什么需要定位> 定位可以让盒子在指定盒子内自由移动位置,并压住其他盒子,而浮动只能让盒子排在一行;定位组成>定位是定位模式+边偏移> 定位模式用于指定一个元素在文档中定位方式,使用CSS属性...> 必须要有left,top right bottom一个属性- 定位总结;!...设置自身元素宽度一半- 定位特殊特性> 行内元素添加定位,可以直接设置宽度和高度> 块内元素添加定位,默认是内容高度和宽度> 脱标的盒子不会触发外边距塌陷问题- 浮动和定位区别: > 浮动压住后面的盒子...,不会压住盒子中文字;(浮动最初目的是为了做文字环绕效果,文字围绕着浮动元素)> 绝对定位压住标准流盒子内容;网页布局总结:网页布局是通过标准流,浮动,定位一起完成;标准流可以让盒子上下左右排列浮动可以让多个块级元素一行显示左右对齐盒子定位有层级概念...html结构导航栏实际开发中,不会直接使用连接a,而是使用li包含链接做法> 直接使用a,搜索引擎辨别为关键字堆砌,有降权风险

    62940

    【面试题】104道 CSS 面试题,助你查漏补缺(下)

    (1)外层div使用position:relative;高度要求自适应div使用position:absolute;top:100px;bottom:0; left:0;right:0; (2)使用...因为cookie有域限制,因此不能跨域提交请求,故使用非主要域名时候,请求头中就不会带有cookie数据,这样可以降低请 求头大小,降低请求时间,从而达到降低整体请求延时目的。...(2)topbottom这两个垂直方向百分比值计算跟height百分比值是一样,都是相对高度计算。...(3)当相对定位元素同时应用对立方向定位值时候,也就是top/bottom和left/right同时使用时候,只有一个方向定位属性起作用。...而谁起作用则是与文档流顺序有关,默认文档流是自上而下、从左往右,因此top/bottom同时使用时候,bottom失效;left/right同时使用时候,right失效。

    2.5K40

    104道 CSS 面试题,助你查漏补缺(下)

    (1)外层div使用position:relative;高度要求自适应div使用position:absolute;top:100px;bottom:0; left:0;right:0; (2)使用...因为cookie有域限制,因此不能跨域提交请求,故使用非主要域名时候,请求头中就不会带有cookie数据,这样可以降低请 求头大小,降低请求时间,从而达到降低整体请求延时目的。...(2)topbottom这两个垂直方向百分比值计算跟height百分比值是一样,都是相对高度计算。...(3)当相对定位元素同时应用对立方向定位值时候,也就是top/bottom和left/right同时使用时候,只有一个方向定位属性起作用。...而谁起作用则是与文档流顺序有关,默认文档流是自上而下、从左往右,因此top/bottom同时使用时候,bottom失效;left/right同时使用时候,right失效。

    2.4K30

    clientHeight、scrollHeight、offsetHeight和scrollTop之间区别

    屏幕可见区域高(内容可视高度,不包括边框,边距滚动条):document.body.clientHeight 正文内容高(整个元素高度,包括带滚动条隐蔽地方):document.body.scrollHeight...一、先来这个我平时用比较多,height 它主要是返回元素高度或者说这个div内容高度,它是jquery对像,如果只是想取到某个内容高度,那完全可以使用这个,按照上面所设置参数,得到就是...三、我么怎么用clientHeight和scrollHeight clientHeight在页面上返回内容可视高度(不包括边框,边距滚动条),结果显示上图h3; scrollHeight返回整个元素高度...在.outerHeight()计算中总是包含padding-top ,padding-bottom 和 border-top,border-bottom ;如果includeMargin参数是true,...那么margin (topbottom)也会被包含。

    1.5K20

    img图片加载出错处理

    地址'"/> 注意:如果使用不当,在IE内核浏览器下造成死循环。...  值: baseline | sub | super | top | text-top | middle | bottom | text-bottom | | <percentage...:baseline(元素基线与父元素基线对齐) vertical-align:sub(降低元素基线到父元素合适下标位置) vertical-align:super(升高元素基线到父元素合适上标位置...:top(把对齐元素顶端与行框顶端对齐) vertical-align:text-top(把元素顶端与父元素内容区域顶端对齐) vertical-align:middle(元素中垂点与父元素基线加...1/2父元素中字母X高度对齐) vertical-align:(+-n)px(元素相对于基线上下偏移npx) vertical-align:x%(相对于元素line-height值) vertical-align

    2.6K20

    height、offsetheight、clientheight、scrollheight、innerheight、outerheight

    下面都以高度来说,详细区别在取某块元素高度时候,这些height、offsetheight、clientheight、scrollheight、innerheight、outerheight不同地方...jquery给取出值并放在各自框中 一、先来这个我平时用比较多,height 它主要是返回元素高度或者说这个div内容高度,它是jquery对像,如果只是想取到某个内容高度,那完全可以使用这个...三、我么怎么用clientHeight和scrollHeight clientHeight在页面上返回内容可视高度(不包括边框,边距滚动条),结果显示上图h3; scrollHeight返回整个元素高度...在.outerHeight()计算中总是包含padding-top ,padding-bottom 和 border-top,border-bottom ;如果includeMargin参数是true,...那么margin (topbottom)也会被包含。

    1.5K20
    领券