width:-webkit-calc(100% - 150px);width:-moz-calc(100% - 150px); width:calc(100% - 150px);
Docume
/*实现了
宽度
为父容器
宽度
减去
固定的100
像素
*/
width:-webkit-calc(100% - 100px);
width:-moz-calc(100% - 100px);
width:calc(100% - 100px);
1.calc() 里面的公式可以加
减
乘除,而且支持rem,em算法
2.
减
号的两边必须都有至少一个空格
在编写
css
时,经常使用
百分比
响应适配,但是时常需要
减去
一部分达到目的,尤其是position:absolute时。所以需要在
百分比
的基础上
减去
px。
css
3已有支持的方法:
height: calc(100%-44px)
在继承父容器高度的同时
减去
44px的高度
当我们给块级元素设置响应式高度的时候,例如给div设置height=50%,往往没能看到效果。
原因是
百分比
的大小是相对其父级元素宽高的大小,如最外层元素设置的
百分比
是对应屏幕而言的。
需要了解的是对于
宽度
来说,其父级元素无须确定
宽度
就能设置
百分比
,例如我们可以利用这个特性给未知
宽度
的块级元素设置水平居中效果:
父元素
css
: position: relative/absolute; left: 50%;
子元素
css
: position: relative; left: -50%;
但高度则不同,若某元素的父元素没有确定高度,则无法有效使用height=XX%的样式,我们可以这样解
在
CSS
中使用
百分比
来设置元素的
宽度
是一种常用的方式,而根据内容自动调节元素
宽度
百分比
是一种更加智能化的设置方法。这可以通过
CSS
3中的Flexbox布局来实现。
Flexbox布局是一种可以自适应其容器尺寸的布局方式。在Flexbox布局中,可以使用flex-grow属性来设置元素的自动拉伸比例,让元素根据其内容的多少自动调节
宽度
。比如,当一个容器中有两个子元素时,可以在容器中设置display:flex属性,并设置子元素的flex-grow属性,让它们自动调节
宽度
。在这种情况下,如果第一个子元素的内容较少,而第二个子元素的内容较多,第二个子元素将会自动占据更多的空间。
另外,还可以使用
css
中的calc()函数来设置元素的
宽度
。比如,如果想让一个元素的
宽度
自适应其内容的多少,可以将元素的
宽度
设置为calc(100%/n),其中n为内容所占用的行数。这样,在元素中添加更多内容时,元素的
宽度
也会自动调节。
总之,根据内容自动调节元素
宽度
百分比
是一种很实用的设置方法,在开发中可以根据实际需求选择不同的方法来实现。