css: div边框border的浏览器兼容问题。

html-css020

css: div边框border的浏览器兼容问题。,第1张

现在浏览器对于边框的处理方式都是一样的,都是在原有宽度的基础上再加上边框的宽度。一般来说,比较好的作法是div在设定宽度的时候减去border的宽度。当然这样可能之前预设的整数宽度,例如200px,就会变成一个类似于198px的数值,在观感上让人略有不爽。所以对于IE8及以上版本的浏览器,可以使用box-sizing这个CSS3的样式,设置属性值为border-box,这样就可以让DIV的宽度等于内容+padding+border的宽度。具体的定义方法可以是下面这样:

.box {box-sizing:border-boxwidth:200pxborder:1px solid #ccc}

这样div的宽度就不会受到border、padding这些样式的影响了~~不过IE6和7是不支持这个属性的,使用的时候要留意~~

再补充一下,如果是希望宽度等于内容+padding+border的话,就可以这样定义:box-sizing:content-box

具体做法是这样的,给元素加上这个样式。

{

min-width:1204px/*这个属性对IE7以上有效*/

_width:1024px/*这个hack只对IE6有效*/

zoom:1/*这个是为了触发元素在IE6中的haslayout属性*/

}

原理是IE6中haslayout属性被触发的元素,如果子元素宽度超过父元素,则父元素会该改变宽度来适应子元素,即模拟了min-width属性。

vh: 相对于视窗的高度, 视窗被均分为100单位的vh

vw: 相对于视窗的宽度, 视窗被均分为100单位的vw

vmax: 相对于视窗的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax

vmin: 相对于视窗的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin

视区:所指为浏览器内部的可视区域大小,

即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。

calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。

calc是 css3提供的一个在css文件中计算值的函数:

用于动态计算长度值。

需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);

任何长度值都可以使用calc()函数进行计算;

calc()函数支持 “+”, “-“, “*”, “/” 运算;

calc()函数使用标准的数学运算优先级规则;

calc(100vh - 10px) 表示整个浏览器窗口高度减去10px的大小

calc(100vw - 10px) 表示整个浏览器窗口宽度减去10px的大小

一般用来设置流式布局宽高,当然,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值

calc()的兼容性需要注意