使用CSS解决高度自适应问题

高度自适应问题,我很抵触用js去解决,因为不好维护,也不够自然,但是纯用css,难度不小,比如下面我要说的例子。

需求:

1. 这个矩形的高度和浏览器窗口的高度相同,不能出现纵向滚动条

2. 绿色部分高度固定,比如50px

3. 紫色部分填充剩余的高度

立即学习“前端免费学习笔记(深入)”;

HTML结构暂且如下:

   

   

content

先看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解决高度自适应问题的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1608362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月23日 21:45:23
下一篇 2025年12月22日 16:46:31

相关推荐

  • 从css谈模块化

    模块化是现今我们随处都可以听到的一个名词,什么是模块化?为什么我们需要模块化?这是本系列文章我们要弄明白的一个问题。我们也借这部分内容,顺带回顾一下前端的发展历程。   说实话,模块化这个主题有点大,我一时也不知道从哪里讲起比较合适,通常来说,前端的工作内容主要涉及三个方面:html、css、js(…

    好文分享 2025年12月23日
    000
  • 详解CSS BOX类型和display属性

    box类型会影响呈现和布局, 基本的box类型有两种: 块级(block-level)和行内级(inline-level). 事实上还有其他类型的box(如table, list-item等), 不过最终都会当作块级box或者行内级box来处理. 块极BOX的特征是从新的一行开始内容, 并且能包含其…

    2025年12月23日
    000
  • CSS样式权值的详细介绍

    内联样式表(InLine style)>内部样式表(Internal style sheet)>外部样式表(External style sheet)例外:但如果外部样式表放在内部样式表下边引用,则外部样式表>内部样式表;1,内联样式表权值为1000;2,ID选择器的权值为100;…

    2025年12月23日 好文分享
    000
  • 使用css解决png透明图片在ie6正常显示的方法

    很久没写css了,遇到一个png透明logo折腾了我很久,也怪以前的页面直接不考虑透明的问题。在网上找到几种办法,有用css实现的,有些是用js实现,用js感觉大材小用了,能用纯css解决就css吧,这里感谢蓝莓公主的帮助。以下的两种方法都是尝试过可行的,不过在我的虚拟机下的ie6图片完全透明了,不…

    好文分享 2025年12月23日
    000
  • css多个div浮动float高度自适应的两种方法

    css多个div float并排,高度都自适应(自增) 采用 Div + CSS 进行三列或二列布局时,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了。按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同。 方法一:纯css解决办法…

    2025年12月23日
    000
  • CSS缩小窗口时背景图出现右侧空白解决方法

    小窗口时css背景图出现右侧空白bug的解决方法(兼容各浏览器) 解决办法: 在css内加入如下两行代码,让它自己判断: width:expression(document.body.clientWidth min-width:960px; 立即学习“前端免费学习笔记(深入)”; 即: .top{ …

    2025年12月23日
    000
  • css控制强制换行解决方法

    一、发现问题一般情况下,元素拥有默认的white-space:normal(自动换行,不换行是white-space:nowrap),当录入的文字超过定义的宽度后会自动换行,但当录入的数据是一堆没有空格的字符或字母或数字(常规数据应该不会有吧,但有些测试人员是会这样子做的),超过容器宽度时就会把容器…

    好文分享 2025年12月23日
    000
  • 详解dreamweaver格式化CSS代码

     今天发现dreamweaver里能格式化css代码,这样代码就不会那么乱了,应为在网站改版时,发现原来的css代码大小写很不一致,格式化和缩进也不一致。用dreamweaver格式化方便多了。   格式化CSS: 第一步:在编辑–首选参数–代码格式–选择CSS按…

    好文分享 2025年12月23日
    000
  • CSS显示隐藏滚动条实例代码

    frameset框架下显示隐藏滚动条 scrolling=”Auto” YES 表示要显示卷轴                  NO 表示无论如何都不要显示卷轴                  AUTO 视情况而定。 立即学习“前端免费学习笔记(深入)”; —…

    好文分享 2025年12月23日
    000
  • css设置网页导航栏

    这篇文章主要为大家详细介绍了css设置网页导航栏的相关资料,需要的朋友可以参考下 html页面: FreeBSD 首页 风雨 飘 css文件: /*** ESSENTIAL STYLES ***/ .nav, .nav * { margin: 0; padding: 0; list-style: n…

    好文分享 2025年12月23日
    000
  • 详解css实现的各种形状的代码

    New Document <!—-> #triangle-1{ width:0; height:0; border-left:50px solid transparent; border-right:50px solid transparent; border-bottom:100p…

    2025年12月23日
    000
  • CSS让英文单词的自动换行的方法介绍

    CSS让英文单词的自动换行 在制作网页过程中,css样式编写中,可能会遇到文字换行的问题,其中英文换行可能会困扰着很多初学者,而今天我就这个问题进行相应的阐述,学过css的朋友应该都知道,控制文字是否换行可以直接使用css中的word-break来进行调整,但是对于英文来说,我们要让其能满足所有浏览…

    好文分享 2025年12月23日
    000
  • 详解CSS盒子效果

    css盒子效果: CSS盒子效果*{margin:0; padding:0;}/*通配符*/body{ color:#fff;}.box-common { padding: 5px 10px; margin: 10px; font-size: 21px; line-height: 1.3em; bo…

    2025年12月23日
    000
  • CSS的三个概念

    一、html与css    两者都是W3C组织制定的,HTML侧重定义网页的结构和内容,CSS侧重定义网页的形式和外观,分开的目的是为了网页的内容和形式剥离。 二、HTML与XHTML    类似于C与C++语言的关系,具体可参见《HTML5重构互联网:浏览器将部分替代操作系统》。 三、DOCTYP…

    好文分享 2025年12月23日
    000
  • CSS选择器练习总结

    练习一: 1、类选择器使用练习: 类选择器使用示例 .red { color:red; font-size:12px; } .blue { color:blue; font-size:20px; } 无类选择器效果 类选择器red效果 类选择器blue效果 同一个类别选择器可以使用到另外的标记上 2…

    2025年12月23日 好文分享
    000
  • 详解CSS继承特性和层叠特性

    一、继承特性: 1、学过Java和C++的都注意到,属于父亲的protected字段或方法肯定会被孩子所继承,而CSS也具备此特性,看下面的例子:                                                           CSS 以上就是详解CSS继承特性和…

    好文分享 2025年12月23日
    000
  • 详解CSS盒子距离计算

    一、看如下例子: (1)HTML部分内容 复仇时刻 莫罗请求布雷斯把小孩丹尼带来神殿以避免恶魔夺取他的灵魂,作为回报他将驱除布雷斯身上的诅咒。 源代码 科尔突然惊醒发生自己在一辆高速行驶的列车上,他的身边坐着一个素不相识的女子正在与自己讲话。 (2)CSS内容ul{ backgroud:#ddd; …

    2025年12月23日
    000
  • css背景图根据屏幕大小自动缩放

    css背景图根据屏幕大小自动缩放 代码: html,body{margin:0px;padding:0px;}#background { position: fixed;top: 0;left: 0;width: 100%;height: 100%;overflow: hidden;backgrou…

    2025年12月23日
    000
  • 详解Css常用操作分类方法

    这篇文章主要为大家详解css常用操作分类方法,感兴趣的小伙伴们可以参考一下 一、尺寸操作     height    设置元素高度     line-height    设置行高 .p1{ width: 400px; line-height: normal;} .p2{ width: 400px; …

    好文分享 2025年12月23日
    000
  • 详解CSS常用操作对齐方法

    这篇文章主要为大家详解css常用操作对齐方法,感兴趣的小伙伴们可以参考一下 一、使用margin属性进行水平对齐    *{ margin: 0px;}.div{ width: 70%; height: 1000px; background-color: red; margin-left: auto…

    好文分享 2025年12月23日
    000

发表回复

登录后才能评论
关注微信