css实现宽度与高度成比例

html-css07

css实现宽度与高度成比例,第1张

当你使用绝对的值设置了一个框的大小(如,固定像素的宽/高),允许的大小可能不适合放置内容,这种情况下内容会从盒子溢流。我们使用 overflow 属性来控制这种情况的发生。它有一些可能的值,但是最常用的是:

框模型的 width 和 height (不是content设置的width,height),框模型 content 不足以放下内部元素时可以延伸到框的外部,即使 content 设置的height为0,然而默认溢出是当内容过多时溢流的内容被显示在框外边。

示例1:先看溢出框的情况

结果1:

发现img溢出到父容器之外

示例2:溢出框被删减的情况

发现设置完overflow之后img超出父容器的部分被删减了。

为什么height设置为0?

因为容器如果去掉这一行的话,img下面会出现一个img大小的空白区域,这个区域是设置 padding-bottom 导致的,所以设置height=0是为了让父元素没有高度。

http://blog.csdn.net/huitoukest/article/details/51375345

核心原理;

height:100%这个概念是子节点相对于父容器而言;所以要让此属性生效,必要的一点就是:父容器必须具有具体的高度信息;

直接在的子节点(如div中)写height:100%是不会生效的,因为此时的高度是不确定的,默认是auto;

方法一

给从根的父容器到子容器的所有容器都设置好百分比高度信息

比如:

[html] view plain copy

132

这样从根的Html开始,到字的div结束,全部都具有百分比高度,这样,就都能够获取到高度信息;

方法二

给父容器设置具体的高度信息;

比如直接写死在样式中,或者用javascript来设置;

示例,用js使得到高度,从而使其中的div全屏:

[html] view plain copy

132

varscreenHeight=document.documentElement.clientHeight

varscreenWidth=document.documentElement.clientWidth

varbody=document.getElementById('body')

body.style.width=screenWidth+"px"

body.style.height=screenHeight+"px"

方法三

给父容器设置位置信息,让其得到高度信息;

示例,用css使body得到高度,从而使其中的div全屏:

[html] view plain copy

132

解决这个问题的方法如下:

1、先在html里添加一个img图片标签。

2、运行页面后,这是完整显示图片大小的。图片大概是400x260左右的大小。

3、要进入图片缩放,可以在css样式里设置图片的宽度和高度,但不要宽和高都设置了,比如这里都设置为100px。

4、设置后,看下页面可以看到图片现在变形了。

5、正确的方法应该是只设置其中一个,比如设置宽度为100px,高度设置为自动就行了。

6、这里设置后的效果,图片并没有变形。

7、同样,如果是限定高度的大小,就设置宽度为自动,图片同样不会变形,这样问题就解决了。