CSS解决高度自适应问题
高度自适应问题,我很抵触用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的高度也变成了300px,出现了需求不允许的纵向滚动条。
当然,用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一起使用,这是很反常规的用法,可以强制定义盒模型的区域
相关推荐
### div+css高度自适应详解 #### 一、引言 在前端开发中,随着屏幕尺寸的多样化以及响应式设计的需求日益增长,实现元素的高度自适应成为了一个重要的课题。高度自适应不仅能够确保页面在不同设备上的良好展示,还...
div+css高度自适应网页布局,子div含float,父div高度自适应,已经通过测试的浏览器:ie6、ie7、ie8、火狐、Chrome。 代码来源: http://www.positioniseverything.net/articles/onetruelayout/equalheight
本资源“CSS3自适应浏览器页面框架布局代码”旨在帮助开发者创建适应各种屏幕尺寸和设备的网页,确保在不同浏览器上的一致显示效果。 首先,CSS3中的媒体查询(Media Queries)是实现自适应布局的关键。媒体查询...
"2列左窄右宽高度自适应且未知高度底部平齐CSS模板"是一种常见的网页布局方式,这种布局通常用于创建内容丰富的网站,其中左侧栏提供导航或侧边信息,右侧栏展示主要内容。下面将详细介绍这种布局的实现原理和相关...
CSS3自适应手机布局就是解决这一问题的关键技术。它允许网页在各种设备上,包括桌面、平板电脑和手机,都能呈现出良好的视觉效果和用户体验。本篇文章将深入探讨CSS3自适应手机布局的相关知识点。 首先,我们了解下...
高度自适应100%常用于实现全屏布局,例如“头、身体、脚”的页面结构。为了使元素高度填充整个屏幕,可以使用CSS的`vh`单位(viewport height,视口高度): ```html <!DOCTYPE html> html, body { margin:...
以下是对这两个库以及与`iframe`、高度自适应和背景颜色处理相关的知识点的详细解释。 首先,`html2canvas`是一个JavaScript库,它的主要功能是将DOM(文档对象模型)转换为Canvas元素。这个过程被称为“屏幕截图”...
总之,要实现CSS高度自适应,关键在于理解百分比高度的计算依赖于父元素的高度,并确保所有相关的祖先元素都有明确的高度设定。在实际应用中,根据项目需求和浏览器兼容性选择合适的方法,可以有效地解决高度自适应...
"CSS实现自适应的图片背景边框"这个主题就是针对这一需求展开的。 首先,我们需要理解CSS中的`background-size`属性。这是一个关键的属性,用于设置背景图片的大小。默认值是`auto`,这意味着图片会按照自身的原生...
在探讨“根据图片大小自适应的CSS”这一主题时,我们深入分析了如何利用CSS(层叠样式表)来确保图片能够根据不同设备和屏幕尺寸自动调整其大小,从而实现响应式设计的效果。以下是对该主题的详细解析: ### 一、...
在Web开发领域,门户窗口高度自适应插件是至关重要的工具,它确保了网页内容能够根据用户设备的屏幕尺寸和窗口大小自动调整布局,提供良好的用户体验。随着移动设备的普及,响应式设计已经成为现代Web开发的标准,而...
标题“Iframe 高度自适应浏览器高度”涉及的核心知识点是如何让Iframe的大小根据其内容自动调整,特别是高度,以便始终保持与浏览器窗口的高度同步,从而提供更好的用户体验。 首先,我们需要了解Iframe的基本结构...
例如,媒体查询(Media Queries)是CSS3中用于实现响应式设计的核心工具,可以根据设备的物理特性,如宽度、高度以及颜色深度等来应用不同的样式规则。 在这个代码示例中,"jiaoben6246"很可能是实现响应式导航菜单...
总结,`iframe`高度自适应是前端开发中的常见问题,解决这个问题需要根据实际情况选择合适的方法,包括利用CSS、JavaScript、`window.postMessage` API,以及处理IE浏览器的兼容性问题。在实际操作中,一定要注意...
总的来说,这个项目展示了HTML、CSS、JavaScript和pym.js库的结合应用,用于创建一个高度自适应且具有页面切换功能的嵌入式网页框架,这对于移动设备和桌面设备的用户体验都有积极的影响。这种技术在现代网页开发中...
标题"CSS强制图片自适应大小.rar"揭示了我们今天要探讨的核心技术,即如何利用CSS来让图片根据容器大小进行自适应调整,确保无论图片原始尺寸如何,都能在网页中以580px的最大宽度展示。这在响应式设计中尤其重要,...
本教程将详细介绍如何使用CSS3来创建一个自适应的、带有角度和边框的对话气泡,同时支持自定义背景色,实现更高效、更灵活的设计。 首先,我们需要创建HTML结构,为对话气泡提供基本的容器。一个简单的示例是: ``...
为了解决这个问题,我们可以使用JavaScript或者jQuery来实现textarea的高度自适应功能,即根据textarea内的内容动态调整其高度,确保内容始终可见。 `textareaAutoHeight.jquery.js` 是一个基于jQuery的插件,它的...
在CSS布局设计中,创建一个典型的三行两列居中高度自适应的页面布局是一项常见的任务,这有助于确保网页在不同设备和浏览器上保持良好的视觉效果。以下将详细讲解如何实现这种布局,以及代码示例中涉及的关键CSS属性...
标题中的“自适应各种终端各分辨率的CSS+XHTML”是指使用CSS(层叠样式表)和XHTML(可扩展超文本标记语言)技术来创建一个网页设计,该设计能够根据用户使用的设备和屏幕分辨率自动调整布局,确保在手机、平板电脑...