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

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

需求:

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

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

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

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

HTML结构暂且如下:

   

nav

   

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

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2904344.html

(0)
上一篇 2025年3月11日 02:01:33
下一篇 2025年3月11日 02:01:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 详解CSS BOX类型和display属性

    box类型会影响呈现和布局, 基本的box类型有两种: 块级(block-level)和行内级(inline-level). 事实上还有其他类型的box(如table, list-item等), 不过最终都会当作块级box或者行内级box来…

    2025年3月11日
    200
  • CSS样式权值的详细介绍

    内联样式表(InLine style)>内部样式表(Internal style sheet)>外部样式表(External style sheet)例外:但如果外部样式表放在内部样式表下边引用,则外部样式表>内部样式表;…

    2025年3月11日
    200
  • 分享利用CSS生成小圆点图案代码

    通过下面的代码,可以让你的网站背景上产生一些小圆点装饰图案。默认情况下,它是使用在body元素上,但你也可以把它使用在网页里的其他容器上。 body {    background: radial-gradient(circle, whit…

    2025年3月11日
    200
  • CSS排版页面实例代码

    创建css文件如下: @charset “utf-8”;/* CSS Document */*{    margin:0px;    padding:0px;    border:0px;}#box{    width:1100px;   …

    2025年3月11日
    200
  • 从css谈模块化

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

    2025年3月11日
    200
  • css多浏览常见问题详细介绍

    关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一、CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着…

    编程技术 2025年3月11日
    200
  • CSS伪类和伪元素的区别

    和伪元素皆独立于文档结构。它们获取元素的途径也不是基于id、、这些基础的元素特征,而是在处于特殊的元素(伪类),或者是元素中特别的内容(伪元素)。区别总结如下: CSS伪类 (Pseudo-classes):用于向某些选择器添加特殊的效果,…

    编程技术 2025年3月11日
    200
  • div+css浮动的解决方法

    如何清楚浮动(一)   已知一个大的div容器,这个容器包含了两个子div容器,然后在这两个子div容器的后面再添加一个div(这个div表示浮动的div容器),清楚浮动的div容器设置css样式为浮动:both,此时,大的div标签的内部…

    编程技术 2025年3月11日
    200
  • CSS教程(一)初识CSS

    css教程(一)认识css     dreamweaver4是现今最好的网站编辑工具之一,用它来给制作网页的css样式表会更简单、更方便。本教程教你如何利用dreamweaver4在页面中加入css,你不用死记硬背的记代码标记,也不用去看很…

    2025年3月11日
    200
  • CSS教程(二)基础语法

    1.  基本语法 css的定义是由三个部分构成:选择符(selector),属性(properties)和属性的取值(value)。基本格式如下:selector {property: value} (选择符 {属性:值})选择符是可以是多…

    2025年3月11日
    200

发表回复

登录后才能评论