这个问题,已经别扭我多年了,今天终于彻底解决了,拿出来庆贺一下。jquery作为开源项目,无论从思路上,还是从严谨性上,让人崇敬。

随着时间的流逝,jquery的一些功能被逐渐挖掘出来。通过jQuery中【width(),innerWidth(),outerWidth()】这几个方法,我们探索一下网页垂直自适应的方案。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="../../jq-practice/jq/jquery-2.2.1.min.js"></script>
<script>
$(function(){
alert($('div').width()); //width 内容部分
alert($('div').innerWidth()); //width+padding 内容部分和padding部分
alert($('div').outerWidth()); //width+padding+border 包含border部分
alert($('div').outerWidth(true)); //width+padding+border+margin 包含margin部分。
//jquery太强大了 });
</script>
</head>
<body>
<div style="width: 100px; height: 100px; padding: 10px; border: 4px solid red; margin: 5px; background: blue;" ></div> </body>
</html>

经过了一段岁月,我们来看看垂直自适应的方案。一般的业务型公司会要求顶部靠顶,底部靠底,中间的部分高度自适应。

首先我们设置

body {
margin: 0;
}

在这个基础上,我们进行计算浏览器的高度

totalH=$(window).height()

我们计算顶部和底部所占据的所有的高度

var h1=$("#header").outerHeight(true)
var h2=$("#footer").outerHeight(true)

计算剩下的部分占据的高度的总和为

var h3=totalH-h1-h2

h3就是中间部分内容所占距的所有的高度了。

那么新的问题来了,怎么设置中间的高度了。好了如果有 margin,那就要h3-margin了。

如果不为box-sizing:border-box 那就h3-border-padding了。

总之剩下h3减去大家用的才是自己用的。

特别奉上demo一个。

下载

后期我们会补充有些非计算类型的自适应的方案,请期待。

下面我们说下我们在开发中常遇见的问题

这里的width和height和css中的width和height有本质的不同,完全不是一个概念

#div1
{
width:400px;
height:400px
border:10px solid red;
box-sizing:border-box;
}

算上 border一共才400px,其实实际内容也就380px;

jQuery中【width(),innerWidth(),outerWidth()】的更多相关文章

  1. JQuery中width和JS中JS中关于clientWidth offsetWidth scrollWidth 等的含义

    JQuery中: width()方法用于获得元素宽度: innerWidth()方法用于获得包括内边界(padding)的元素宽度: outerWidth()方法用于获得包括内边界(padding)和 ...

  2. jQuery中width、innerWidth、outerWidth的区别

    原文:摘自http://www.canaansky.com/blog/107/ 在css的盒子模型中,最内部是content area,然后是padding.border.margin 那么width ...

  3. jQuery中的width() innerWidth() outerWidth() outerWidth(true)的区别

    width()仅仅包括content(内容) innerWidth()包括content(内容)和padding(补白) outerWidth()包括content(内容),padding(补白)和b ...

  4. jQuery height() innerHeight() outerHight() width() innerWidth() outerWidth()源码解读

    在第二层each,传入的对象以height举例是这样的,{padding:innerHeight,content:height,"":outerHeight} 对它遍历调用func ...

  5. jQuery—一些常见方法(3)【width(),innerWidth(),outerWidth()】

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. jquery width(), innerWidth(), outerWidth() 区别

    #div1 { width: 100px; height: 100px; border: 5px black solid; padding: 10px; margin: 10px; backgroun ...

  7. width() innerwidth() outerwidth() css('width')

    不多说,用一图足以说明 首先先解释下普通元素和非普通元素, 非普通元素是指window,document这些 元素对象, 普通元素是指除window,document之外的元素,如:div 对于普通的 ...

  8. jquery中innerwidth,outerwidth,outerwidth和width的区别

    在jQuery中,width()方法用于获得元素宽度: innerWidth()方法用于获得包括内边界(padding)的元素宽度, outerWidth()方法用于获得包括内边界(padding)和 ...

  9. jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别

    jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别 var a = 元素本身的宽度: width() = a: innerWidt ...

随机推荐

  1. day28 property 装饰器

    方法属性装饰器 本质上来说就是将方法的执行括号去掉,这样将一个方法掩饰成了一个变量名字,变成了类似属性的东西内置装饰器函数,只在面向对象中使用 from math import pi class Cr ...

  2. 自学Python1.5-Centos内python2识别中文

    自学Python之路 自学Python1.5-Centos内python2识别中文 方法一,python推荐使用utf-8编码方案 经验一:在开头声明: # -*- coding: utf-8 -*- ...

  3. Jenkins中使用Azure Powershell连接Service Fabric报错not recognized的原因与解决办法

    一.使用背景 在涉及Azure service Fabric的自动化应用场景中,依赖于Service Fabric的Azure Powershell cmdlets,我们可以使用Jenkins能实现c ...

  4. asp <----> vb(com,dll) <---> c 来回的调用,生命在于折腾

    最近想改进一个两年前写的小程序,原因是最近将运行在托管服务器上的asp程序迁移到阿里云主机上运行. 初次使用阿里云主机,买了一个配置较低的主机(1核,1G内存,年付:1500左右吧) 原来使用的托管的 ...

  5. Linux替换指定列的字符串(awk 命令)

    假设有文件test.txt,想把test.txt文件第三列含有的good替换为bye,并把替换后的文件保存为test_bye.txt,只需要如下命令. test.txt go go good go m ...

  6. quartz 关闭不断输出的batch acquisition of 0 triggers ?

    转: spring整合quartz定时器的项目中,如何关闭不断输出的batch acquisition of 0 triggers ? 不断输出的batch acquisition of 0 trig ...

  7. MUI 窗体切换(setting设置)即窗口从右往左切换,返回从左往右切换。

    1)引入mui.min.css 2)引入mui.min.js  引入mui.view.js 1.HTML: //这是页面的主体结构 <div id="app" class=& ...

  8. 让maven项目使用nexus作为远程仓库

    让maven项目使用nexus作为远程仓库有两种方式,第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库:另一种是通过修改maven的配置文件settings.xml进行更改,让所 ...

  9. [持续更新] 文章列表 Last Update: 8/21/2017

    1.前端 HTML5快速学习二 Canvas@20141125 HTML5快速学习一@20141122 2.ASP.NET(MVC) MVC5+EF6 完整教程17--升级到EFCore2.0@201 ...

  10. java keytool证书工具使用小结【转】

    java keytool证书工具使用小结 keytool导入导出多条目对比 在Security编程中,有几种典型的密码交换信息文件格式: DER-encoded certificate: .cer, ...