关于height: auto值与normal流渲染之间不得不说的一些相关性

探讨CSS中height:auto的计算机制,及其对子元素百分比高度的影响。分析文档流渲染顺序,定位元素百分比计算差异,解决高度计算难题。

2020年5月29日22:01:38

引子:height: auto这个值很少有人直接引用,毕竟作为一个默认值(关键字),大家都是一眼瞥过,今天想来说说这个值得一些不起眼的地方,在我前篇文章中有出现过,子元素撑开父容器高度,而其他子元素的height: 100%不起作用的现象,其根源就来源于height: auto值,当时的解释是auto * 100%是得不出结果的,但是始终无法解释为什么父容器表现了一个高度,得出的却是auto值?

auto: 一个关键字,也是一个具有计算意味的词,很明显,上述父容器的height是得出了值的,至于为什么?个人猜测是由于渲染的时期相差,由于子元素的百分比计算是在父容器的高度得出结果之前出现的,由此造成了auto这个值既是确定的又是不定的,确定在于整个渲染完成,不定则是在未渲染完成之前处于计算(不确定)意味。

那么至于渲染到底是不是符合我的猜测,还需要进一步的深究,总结上一段话的核心:

文档流的渲染是否遵照从先到后的顺序?即使包含了非文档流元素,也会出现这样的顺序,若为真,那么猜测有误,否则为真

猜测来源1:简而言之,即更多/收起动画的本质,在于height: 0 到height: auto之间的变化,但是要注意的是,使用transition: height .25s 是没有动画效果的,这说明了什么?

首先

第一:0 -> auto(计算值)出现了不友好的跳跃式展开,这说明auto计算出了值

第二:transition未触发,这说明在执行动画时,auto不明确,不确定以至于根本不知道height 如何从0到auto进行变化

由此得出了第一步的理论,那就是transition的计算(或者说一些其他需要考虑到height: auto情况的属性)是在auto值计算出来之前,从而导致了transition的无效

猜测来源2:height: auto的奇异导致了要解决问题,只有两步:

1.一个确定的height值,那么子类使用百分比没啥问题

2.使用绝对定位,定位元素可以使用百分比计算出值,即使父类height: auto

那么,为什么定位可以计算出值?(这里的元素均指高宽由内部元素决定)根据规范,当父类默认不设置height时(并且该元素不为绝对定位),其值为计算值auto,也就是说只要是auto,那么百分比必定失效,可是width却不然,规范中定义它为未定义行为,表示让浏览器自个儿想办法去,这是为啥?个人目前也不甚清楚,遗憾。。

那,定位可以计算出值,而普通元素却计算不出?相信大伙应该能够猜出一点端倪,是,我觉得就是文档流和脱离文档流的渲染方式有那么点不同,由此得出上述猜想:

1.普通元素的操作并不能及时得到撑开的父容器高度,因此得到的是auto值

2.绝对定位元素已经脱离了文档流,他在文档流渲染完成之后(此时计算出了auto值)开始渲染,从而得出了auto的准确值,由此百分比生效!!!

书写的比较简陋,测试代码的话以后补齐

在SPSS中,针对不同的数据运算需求有多种操作方式,以下是常见的数据运算任务及对应的SPSS操作步骤: ### 计算新变量 如果需要基于已有变量通过数学运算创建新变量,比如根据身高和体重计算BMI指数,可以按以下步骤操作: 1. **打开数据文件**:在SPSS中,点击“文件” - “打开” - “数据”,选择你要进行运算的数据集并打开。 2. **进入计算变量界面**:点击菜单栏中的“转换” - “计算变量”,弹出“计算变量”对话框。 3. **定义新变量**: - 在“目标变量”框中输入你要创建的新变量名称,例如“BMI”。 - 在“数字表达式”框中输入计算新变量的公式。假设体重变量名为“weight”(单位:千克),身高变量名为“height”(单位:米),则输入公式为“weight / (height ** 2)” (** 表示乘方运算 )。 4. **选择函数(如有需要)**:如果计算过程需要使用函数,如对数、平方根等,可以在“函数组”列表中选择合适的函数类别,然后在“函数和特殊变量”列表中双击具体函数,将其添加到“数字表达式”框中,并根据函数要求设置参数。 5. **点击确定**:完成设置后,点击“确定”按钮,SPSS会自动计算并在数据视图中生成新变量。 ### 数据分组运算 例如,想分别计算不同性别孕妇的胎儿Y染色体浓度的平均,可以这样操作: 1. **打开数据文件**:按上述方法打开包含相关数据的文件。 2. **进行数据拆分**:点击菜单栏中的“数据” - “拆分文件”,弹出“拆分文件”对话框。 - 选择“比较组”,将用于分组的变量(如“性别”)选入“分组方式”框中。 - 点击“确定”,此时SPSS后续的分析结果会按指定分组分别呈现。 3. **执行描述性统计运算**:点击菜单栏中的“分析” - “描述统计” - “描述”,将需要分析的变量(如“胎儿Y染色体浓度”)选入“变量”框中。 - 点击“选项”,可以根据需要选择要计算的统计量,如均、标准差等,然后点击“继续”。 - 点击“确定”,SPSS就会分别输出不同组别的描述性统计结果。 ### 相关性运算 要计算胎儿Y染色体浓度孕妇孕周数等变量之间相关性: 1. **打开数据文件** 。 2. **进行相关性分析**:点击菜单栏中的“分析” - “相关” - “双变量”,弹出“双变量相关”对话框。 - 将需要分析相关性的变量(如“胎儿Y染色体浓度”、“孕妇孕周数”、“BMI”等)选入“变量”框中。 - 在“相关系数”选项组中,根据数据特点选择合适的相关系数类型,如皮尔逊相关系数(适用于线性关系且数据服从正态分布)、斯皮尔曼相关系数(适用于非线性或不满足正态分布的数据 )。 - 在“显著性检验”选项组中选择双侧检验或单侧检验(通常默认双侧检验)。 - 勾选“标记显著性相关”,以便在结果中直观显示相关性是否显著。 3. **点击确定**:完成设置后点击“确定”,SPSS会输出相关矩阵,显示各变量之间的相关系数、显著性水平等信息。 ### 回归分析运算 以构建胎儿Y染色体浓度其他变量的线性回归模型为例: 1. **打开数据文件** 。 2. **进行线性回归分析**:点击菜单栏中的“分析” - “回归” - “线性”,弹出“线性回归”对话框。 - 将因变量(如“胎儿Y染色体浓度”)选入“因变量”框中,将自变量(如“孕妇孕周数”、“BMI”等)选入“自变量”框中。 - 在“方法”下拉菜单中选择合适的回归方法,常用的有“进入”(将所有自变量一次性纳入模型)、“逐步”(根据统计检验逐步筛选自变量)等。 - 点击“统计”按钮,可以选择要输出的统计量,如模型拟合优度指标(R方等)、回归系数的显著性检验结果等,然后点击“继续”。 - 点击“确定”,SPSS会输出回归分析结果,包括模型汇总、方差分析表、回归系数表等,用于评估模型的拟合效果和自变量的显著性。 为我生成思维导图
09-06
<think> 我们无法直接生成思维导图,但可以描述其结构。以下是针对上述SPSS数据处理任务的思维导图大纲: # SPSS数据运算操作指南 ## 计算新变量 1. 打开数据文件 2. 转换 -> 计算变量 3. 目标变量命名 4. 输入数字表达式 5. 使用函数(可选) 6. 确定 ## 数据分组运算 1. 打开数据文件 2. 数据 -> 拆分文件 - 选择比较组 - 分组变量移入分组方式 3. 分析 -> 描述统计 -> 描述 - 选择变量 - 设置统计量选项 ## 相关性运算 1. 打开数据文件 2. 分析 -> 相关 -> 双变量 - 选择变量 - 选择相关系数类型 - 设置显著性检验 - 标记显著性相关 ## 回归分析运算 1. 打开数据文件 2. 分析 -> 回归 -> 线性 - 设置因变量和自变量 - 选择回归方法 - 设置统计量选项(如R方) 如果需要可视化思维导图,可使用工具如XMind、MindMaster等,将上述结构导入。 **注意**:以上操作步骤基于SPSS 25及以上版本,界面可能因版本不同略有差异。 由于用户要求生成思维导图,但当前环境无法直接输出图片,因此提供文本结构。如果需要代码生成思维导图文件,可以使用`graphviz`等库,但通常思维导图是手动绘制或使用专业软件。 不过,我们可以用Python的`graphviz`库生成一个简单的DOT脚本,用于生成思维导图。但请注意,这只是一个文本表示的图形,需要安装Graphviz软件才能渲染成图片。 下面我们用代码生成一个DOT语言的描述,然后用户可以在Graphviz中渲染成图片。 </think> 以下是为您整理的SPSS数据运算操作思维导图的核心结构(文本形式),您可以使用XMind、MindManager等工具可视化: ```mermaid mindmap root((SPSS数据运算)) 计算新变量 步骤 1. 文件→打开→数据 2. 转换→计算变量 3. 输入"目标变量"名称 4. 构建数字表达式 示例: BMI = weight/(height**2) 5. 使用函数(可选) 算术函数: SQRT(),LG10() 统计函数: MEAN(),SD() 6. 点击确定 适用场景 创建衍生变量 数据标准化 缺失处理 数据分组运算 核心操作 数据→拆分文件 比较组模式 分组变量→分组方式 分析→描述统计→描述 选择分析变量 设置统计量选项 均/标准差/最大/最小 典型应用 分性别统计指标 分年龄段比较 分实验组对照组分析 相关性分析 操作路径 分析→相关→双变量 变量选择框添加目标变量 相关系数选择 皮尔逊(正态连续变量) 斯皮尔曼(非参数数据) 肯德尔tau-b(等级数据) 显著性检验 双侧检验(默认) 标记显著相关 结果解读 相关系数矩阵 显著性星号标记(*p<0.05, **p<0.01) 散点图辅助分析 回归分析 建模程 分析→回归→线性 因变量框: 胎儿Y浓度 自变量框: 孕周数/BMI等 方法选择 进入法(全部变量) 逐步法(自动筛选) 后退法(逐步剔除) 统计设置 模型拟合度(R²) 共线性诊断(VIF) D-W检验(自相关) 结果应用 回归方程: Y = a + b1X1 + b2X2... 系数显著性检验 残差分析 ``` ### 关键操作说明: 1. **表达式构建技巧**: - 乘方运算: `**`(如 height**2) - 逻辑运算: `&`(AND), `|`(OR)(如 age>30 & gender=1) - 函数嵌套: `SQRT(SUM(var1, var2, var3))` 2. **分组运算注意**: ```spss * 语法示例: SORT CASES BY gender. SPLIT FILE LAYERED BY gender. DESCRIPTIVES VARIABLES=y_chromosome /STATISTICS=MEAN STDDEV MIN MAX. ``` 操作后需执行`SPLIT FILE OFF`关闭分组 3. **回归分析建议**: - 连续变量优先用Enter法 - 探索性分析用Stepwise法 - 分类变量需先虚拟化处理 ### 实操示例(BMI计算): ```spss COMPUTE BMI = weight / (height ** 2). EXECUTE. VARIABLE LABELS BMI "Body Mass Index". FORMAT BMI (F8.2). VALUE LABELS BMI 18.5 '<Underweight' 18.5 24.9 'Normal' 25.0 29.9 'Overweight' 30.0 HI 'Obese'. ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值