浅谈宽高自适应

浅谈宽高自适应

在网页布局中,我们通过设置元素的宽高定义元素的显示大小,但是,在不同窗口大小,不同分辨率下,宽高相同的元素显示状况是不同的。所以,我们往往需要元素的大小能够根据窗口或子元素自动调整,这就是pc自适应。

一、相对窗口和父元素的宽度自适应

两种方法:
1、不设置宽度;
2、width:100%;
在不设置宽度时,块元素的宽度(width)的值默认为100%,即父元素的宽度的100%,也就是块元素继承父元素的宽度。
注意: 默认情况下,如果给块元素加了绝对定位或者固定定位,他的宽度就不再是100%显示了,也不会跟父元素同宽的,而是跟里面的内容同宽,如果元素里面没有内容,也没有定义宽高,这个时候,元素就不见了。

二、高度自适应

(一)、相对窗口和父元素的自适应

首先,与宽度不同,高度在不设置时,是与元素里的内容同高的!
但是,这里我们依然可以用设置百分比值的方法,让元素与父元素同高,即height:100%;
前提是父元素有高度!!!
所以,我们在设置元素高度相对于窗口自适应的时候,需要给元素的“祖先级”父元素body和body的父元素HTML设置高度,即

html,body{height:100%;}  
(全屏显示的页面必须要给 html,body设置高度100%)

注:百分比设置宽高的时候,都是相对当前元素最近的父元素显得的百分比的值(即百分比这个值显示大小的参照物就是自己最近的父元素)。

(二)相对元素或内容自适应

1、不设置高度,或者高度设置成:height:auto;
前面提到,高度在不设置时,元素是与元素里的内容同高的。而auto是自由值的意思。
2、通过最小高度实现高度自适应 :

min-height:value;
_height:value; 
/* value为某个数 */

min-height属性表示最小高度的意思,当元素内容的高度小于最小高度时,元素的高度以最小高度的值显示;当元素内容的高度大于最小高度时,元素的高度随内容高度变化而变化。
需要注意的是,IE6浏览器不识别min-height属性,且将height属性识别为最小高度属性,默认元素高度与内容同高。因此,我们通过下划线过滤器“_”设置一个专门给IE6识别的属性,即

_height:value;
/* 加了下划线过滤器之后,只有IE6 这个浏览器识别当前的属性,其他浏览器就都不识别。*/

这里我们也可以用!import 来辅助设置元素高度。
3、给需要高度自适应的元素添加这些属性:

min-height:value;  
height:auto !important;
height:value; 
/* 逆战班,与你同行。 */

!important;为关键字过滤器,具有最高优先级,且IE6不支持。所以,IE6浏览器会自动过滤前两条程序,只执行第三条;而其他浏览器会执行前两条程序,不会执行第三条。

附:以上元素高度相对内容自适应并没有考虑浮动情况,当第一级子元素浮动后,父元素高度会塌陷。所以,我们需要专门讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值