高度自适应问题,我很抵触用js去解决,因为不好维护,也不够自然,但是纯用CSS,难度不小,比如下面我要说的例子。
需求:
1. 这个矩形的高度和浏览器窗口的高度相同,不能出现纵向滚动条
2. 绿色部分高度固定,比如50px
3. 紫色部分填充剩余的高度
HTML结构暂且如下:
< div id="main">
< div id="nav">nav</ div >
< div id="content">content</ div >
</ div >
|
先看1.
html, body { height : 100% ;
margin : 0px ;
padding : 0px ;
} #main { background-color : #999 ;
height : 100% ;
} |
需求2 也很容易:
#nav { background-color : #85d989 ;
height : 50px ;
} |
需求3 是最让人头痛的,一般我们都会想到height:100%, 但是100%是以父元素的高度为准的,比如父元素的高度是300px,#nav占去了50px,#content理应是250px,但是写成height: 100%,结果就是#content的高度也变成了300%,出现了需求不允许的纵向滚动条。
当然,用js解决这种问题是相当简单的,但是这次我就是不想用js,下面就来试吧:
这个需求真的让我非常崩溃,看似简单,换了n种方式都觉得不靠谱,最后找到一种最接近理想效果的方法,如下
html, body { height : 100% ;
margin : 0px ;
padding : 0px ;
} #main { background-color : #999 ;
height : 100% ;
} #nav { background-color : #85d989 ;
width : 100% ;
height : 50px ;
float : left ;
} #content { background-color : #cc85d9 ;
height : 100% ;
} |
这里利用了浮动,最后的结果仅仅是看着没问题,当然了,如果你只是简单的展示文本和图片,这种方法已经够用了,但是如果你想用js做点交互,比如#content内部有个需要拖拽的元素,它的top最小值肯定不能是0,否则就被#nav挡住了,悲剧的是我就有这种需求,于是继续苦逼的试。
经过一天的尝试,加上高人指点,终于有解了,泪奔啊
#nav { background-color : #85d989 ;
width : 100% ;
height : 50px ;
} #content { background-color : #cc85d9 ;
width : 100% ;
position : absolute ;
top : 50px ;
bottom : 0px ;
left : 0px ;
} |
重点是要top和bottom一起使用,这是很反常规的用法,可以强制定义盒模型的区域,神奇啊
相关推荐
鄙人在写一个项目,发现成功将数据在页面显示后, 高度没有自适应,而是将一些按钮遮挡了,不断的调试和网上寻找解决办法,发现没有效果,最后添加了一句css <style> .layui-table-cell{ display:table-...
总结起来,要创建一个“2列左窄右宽高度自适应且未知高度底部平齐”的CSS模板,需要熟练运用Flexbox布局,以及理解如何处理高度自适应和底部对齐的问题。这个模板对于构建响应式网站非常有用,能够适应不同设备和...
CSS 高度自适应问题解决方案与实现方法 在 Web 开发中,div 元素的高度自适应问题是一个常见的问题,特别是在需要实现上下两个 div 元素高度自适应的情况下。这篇文章将讨论 div + CSS 高度自适应问题的解决方案和...
以下是如何使用CSS来实现`textarea`高度自适应的方法。 首先,我们可以设置`textarea`的基本样式,例如宽度和溢出行为。例如: ```css .t_area { width: 300px; overflow-y: visible; } ``` 这段代码中,`width...
总之,`html2canvas`和`jspdf`结合使用可以实现网页到PDF的转换,但需要解决`iframe`、滚动条、背景颜色和高度自适应等问题。开发者需要理解这两个库的工作原理,并根据实际需求进行适当的配置和优化。在处理复杂...
在CSS布局设计中,高度自适应(Height Auto-Adaptation)是一个常见的需求,尤其是在创建响应式网页或者希望内容能够...在实际应用中,根据项目需求和浏览器兼容性选择合适的方法,可以有效地解决高度自适应的问题。
然而,`iframe` 的高度自适应往往是一个常见的问题,特别是当`iframe`内容动态加载或者不同浏览器之间存在差异时。本文将深入探讨如何实现`iframe`的高度自适应,以确保内容在所有浏览器中都能正确显示。 首先,...
为了解决这个问题,我们可以使用JavaScript或者jQuery来实现textarea的高度自适应功能,即根据textarea内的内容动态调整其高度,确保内容始终可见。 `textareaAutoHeight.jquery.js` 是一个基于jQuery的插件,它的...
【解决列高度自适应(相同)的五种方法】 在网页设计中,有时我们需要让同一行内的多个列具有相同的高度,以保持布局的整洁和视觉的一致性。这里将介绍五种实现列高度自适应(相同)的方法: 1. **背景图填充**: ...
然而,由于浏览器之间的差异,尤其是在旧版本的IE(Internet Explorer)中,iFrame的高度自适应问题常常困扰着开发者。"iFrame高度自适应终极解决方案(兼容IE7,8,9 Firefox3.6+,Chrome 12+)"这个标题所指向的,...
在实际应用中,这种菜单可能不是最通用的解决方案,但对那些希望深入了解CSS特性和动画效果的开发者来说,这是一个很好的学习案例。 首先,让我们了解纯CSS下拉菜单的基本构建块。通常,它由HTML结构和CSS样式组成...
综上所述,“仿新浪微博高度自适应无缝滚动”涉及到了前端开发的多个核心知识点,包括JavaScript编程、jQuery库的使用、Ajax异步加载、CSS布局、性能优化以及响应式设计等。理解和掌握这些技术,可以帮助开发者创建...
CSS3自适应手机布局就是解决这一问题的关键技术。它允许网页在各种设备上,包括桌面、平板电脑和手机,都能呈现出良好的视觉效果和用户体验。本篇文章将深入探讨CSS3自适应手机布局的相关知识点。 首先,我们了解下...
2. CSS Grid:CSS Grid布局也提供了高度自适应的解决方案。通过`grid-template-columns: auto;`和`grid-auto-rows: min-content;`,可以创建一个网格,使得按钮的高度根据内容自动扩展。 3. JavaScript动态计算:...
在网页设计领域,CSS3(层叠样式表第三版)是一种强大的工具,它极大地扩展了网页的视觉表现力,同时也提供了更加灵活的页面布局解决方案。本资源“CSS3自适应浏览器页面框架布局代码”旨在帮助开发者创建适应各种...
一种可能的解决方案是使用CSS的`resize`属性,将其设置为`none`,以禁用用户的缩放功能,这在某些版本的IE中可以帮助解决问题。 ```css :auto-height-textarea textarea { resize: none; } ``` 现在,我们的Vue...
针对“RichText自适应高度”这一主题,我们主要探讨的是如何在特定场景下,如聊天界面,解决富文本在显示时无法自适应宽度的问题,并结合HTML解析来优化显示效果。 首先,富文本自适应高度的问题通常出现在动态内容...