前端之路随笔小记——height:100%

       有个问题纠结了很久,关于html,body{height:100%},当时看到时就蒙了,看了很多相关知识介绍,博客论坛百度百科一把抓,但讲真,很多评价很高的文章所提的观点在我的实验中并不成立(也许是我的问题),那今天咱们就论一论,各位可以提点意见。

       首先来一段代码:

<html>
  <head>
     <meta charset="utf-8">
     <title>测试一下%</title>
	 <style>
	    *{
		  margin:0px;
		  padding:0px;
		}
		html{background:"yellow";height:100%;}
		body{background:"green";height:50%;}
		div{background:"red";height:50%;}
	 </style>
  </head>
  <body>
        <div>
		<p>jjfajljladfjlf</p>
		<p>jjfajljladfjlf</p>
		<p>jjfajljladfjlf</p>
		<p>jjfajljladfjlf</p>
		<p>jjfajljladfjlf</p>
		</div>
  </body>
</html>

          个等级,html,body和div,三辈人的故事,和和美美的一家人,先来张效果图:

                显而易见,一半一半的比例,html中的height:100%意思是占据浏览器的全部高度,也可以认为html的父类为浏览器默认的高度(有些文章说浏览器会默认指定宽度,但不会指定高度,这个要靠子快堆积而成,但貌似不是这样,且看下图):

       这个界面是在上述代码中去掉html{background:"yellow";height:100%;}的效果,也就是说不指定html的高度,但他的子元素body会占满浏览器,而不是像有些文章所说的高度为0,更为神奇的是div的高度还是原始的模样,并不是其父元素body的一半,但把body中的height改为100%后,其大小变为浏览器界面的一半,这里就有点问题了,难道不指定html的高度,他的子元素body会占满界面,而它的孙元素div还是会紧跟body的设置,有点不合理啊。。然后我又修改了几组数据,比如把html的height改为50%(body和div的height分别为100%,50%),则效果和第一张图一样,这就说明浏览器是会自动铺满的,不管你的设置怎样的,这就很尴尬了。

       当把html和body的设置全部去掉,只留下div,则效果图如下:

占据浏览器的一半,也就是说即使没有为div的父元素和爷元素设定高度,他也可以继承(我不知道可不可以用这个词)其老爷爷,也就是浏览器的高度,而有的文章说如果不设定其父元素的高度值那他的高度就为0,我不知道这是什么情况。。。

最后一个问题就是内容越界了,大家看上面的图div中的内容很少,看不出效果,但当期内容增加后就是这个样子:

       这个可以给div设定一个最小高度,即min-height属性,当没有内容时可以显示出区块的大小,当内容超过指定高度时,他又能自动扩增,这个常用于一开始无法确定内容多少时,当然对应的还有最大高度max-heght,这个属性不常用,当保持布局稳定时可以使用其控制界面大小。下图所示为使用min-height属性后的效果:

      还有一个很严重的问题就是浏览器的兼容性,我这个使用IE测的,当改用谷歌时就完全显示不出来,查看源码发现很多属性都已无效,很失败啊,听某位大神说现在的前端最主要的就是解决各个浏览器的兼容性问题,看来真的是这样了。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
阿⾥巴巴⼤数据之路 阿⾥巴巴⼤数据之路——数据技术篇 数据技术篇 ⼀、整体架构 ⼀、整体架构      从下⾄上依次分为数据采集层、数据计算层、数据服务层、数据应⽤层    数据采集层:以DataX为代表的数据同步⼯具和同步中⼼    数据计算层:以MaxComputer为代表的离线数据存储和计算平台    数据服务层:以RDS为代表的数据库服务(接⼝或者视图形式的数据服务)    数据应⽤层:包含流量分析平台等数据应⽤⼯具 ⼆、数据采集(离线数据同步) ⼆、数据采集(离线数据同步)   数据采集主要分为⽇志采集和数据库采集。⽇志采集暂略(参考书籍原⽂)。我们主要运⽤的是数据库采集(数据库同步)。   通常情况下,我们需要规定原业务系统表增加两个字段:创建时间、更新时间(或者⾄少⼀个字段:更新时间)   数据同步主要可以分为三⼤类:直连同步、数据⽂件同步、数据库⽇志解析同步   1.直连同步     通过规范好的接⼝和动态连接库的⽅式直接连接业务库,例如通过ODBC/JDBC进⾏直连     当然直接连接业务库的话会对业务库产⽣较⼤压⼒,如果有主备策略可以从备库进⾏抽取,此⽅式不适合直接从业务库到数仓的情景   2.数据⽂件同步     从源系统⽣成数据⽂本⽂件,利⽤FTP等传输⽅式传输⾄⽬标系统,完成数据的同步     为了防⽌丢包等情况,⼀般会附加⼀个校验⽂件 ,校验⽂件包含数据量、⽂件⼤⼩等信息     为了安全起见还可以加密压缩传输,到⽬标库再解压解密,提⾼安全性   3.数据库⽇志同步     主流数据库都⽀持⽇志⽂件进⾏数据恢复(⽇志信息丰富,格式稳定),例如Oracle的归档⽇志   (数据库相关⽇志介绍,参考:)    4.阿⾥数据仓库同步⽅式     1)批量数据同步     要实现各种各样数据源与数仓的数据同步,需要实现数据的统⼀,统⼀的⽅式是将所有数据类型都转化为中间状态,也就是字符串类型。以此来实现数据格式的统⼀。     产品——阿⾥DataX:多⽅向⾼⾃由度异构数据交换服务产品,产品解决的主要问题:实现跨平台的、跨数据库、不同系统之间的数据同步及交互。     产品简介:     开源地址:     更多的介绍将会通过新开随笔进⾏介绍!(当然还有其他主流的数据同步⼯具例如kettle等!)     2)实时数据同步     实时数据同步强调的是实时性,基本原理是通过数据库的⽇志(MySQL的bin-log,Oracle的归档⽇志等)实现数据的增量同步传输。     产品——阿⾥TimeTunnel(简称TT)。TT产品本质是⼀个⽣产者、消费者模型的消息中间件     3)常见问题       1.增量数据与全量数据的合并         主要的场景是数据同步中周期全量同步,对应的解决⽅案是每次只同步变更的数据,然后和上⼀周期合并,形成最新的全量数据(选择此⽅案的原因是绝⼤多 数⼤数据平台不⽀持update操作)         具体的⽅案主要有union的联合操作(可以通过⽣成增量中间表detal)与阿⾥主推的全外连接full outer join+全量覆盖insert overwrite的形式。实例参考如下: SQL的Join语法有很多, inner join(等值连接) 只返回两个表中联结字段相等的⾏, left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录, right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录, 假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所⽰: A表 id name 1 Pirate 2 Monkey 3 Ninja 4 Spaghetti B表 id name 1 Rutabaga 2 Pirate 3 Darth Vade 4 Ninja 让我们看看不同JOIN的不同。 FULL [OUTER] JOIN (1) SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name TableA.name = TableB.name 的情况,A和B的交集有两条数据,那么 FULL OUTER JOIN的结果集, 应该是2+2+2=6条,即上⾯的交集,再加剩下的四条数据,没有匹配,以null补全。 结果集 (TableA.) (TableB.) id name id name 1 Pirate 2 Pirate 2 Monkey null null 3 Ninja 4 Ninja 4 Spaghetti null null null null 1 Rutabag

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond_LH

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值