vivo 为什么宽度vivox7plus不支持扩展calc宽度计算

CSS3中width属性的calc()使用
平时在制作页面的时候,总会碰到有的元素是100%的宽度。众所周知,如果元 素宽度为100%时,其自身不带其他盒模型属性设置还好,要是有别的,那将导致盒子撑破。比如说,有一个边框,或者说有margin和padding,这 些都会让你的盒子撑破。我们换句话来说,如果你的元素宽度是100%时,只要你在元素中添加了border,padding,margin任何一值,都将 会把元素盒子撑破(标准模式下,除IE怪异模式)。这样一来就会相当的麻烦,平时我们碰到这样的现象时,也是相当的谨慎,有时甚至无法解决,只能通过改变 结构来实现。就算你通过繁琐的方法实现了,但有于浏览器的兼容性而导致最终效果不一致。虽然前面介绍的CSS3属性中的box-sizing在一定程度上 解决这样的问题,其实今天的calc()函数功能实现上面的效果来得更简单。
什么是calc()?
学习calc()之前,我们有必要先知道calc()是什么?只有知道了他是个什么东东?在实际运用中更好的使用他。
calc() 从字面我们可以把他理解为一个函数function。其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元 素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说 是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。
calc()能做什么?
calc()能让你给元素的做计算,你可以给一个div元素,使用百分比、em、px和rem单位值计算出其宽度或者高度,比如说“width:calc(50% + 2em)”,这样一来你就不用考虑元素DIV的宽度值到底是多少,而把这个烦人的任务交由浏览器去计算。
calc()语法
calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示:
width: calc(expression);
其中&expression&是一个表达式,用来计算长度的表达式。
calc()的运算规则
calc()使用通用的数学运算规则,但是也提供更智能的功能:
使用“+”、“-”、“*” 和 “/”四则运算;
可以使用百分比、px、em、rem等单位;
可以混合使用各种单位进行计算;
表达式中有“+”和“-”时,其前后必须要有空格,如&widht: calc(12%+5em)&这种没有空格的写法是错误的;
表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。
浏览器的兼容性
浏 览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各浏览器厂 商的识别符,不过可惜的是,移动端的浏览器还没仅有“firefox for android 14.0”支持,其他的全军覆没。
大家在实际使用时,同样需要添加浏览器的前缀
/*Firefox*/
-moz-calc(expression);
/*chrome safari*/
-webkit-calc(expression);
/*Standard */
通过上面的了解,大家对calc()不在那么陌生,但对于实际的运用可能还是不太了解,那么大家就接下来跟我一起动手,通过实例来了解他吧。首先我们来看一个最常用的实例:
&div class=&demo&&
&div class=&box&&&/div&
上面的结构很简单,就是一个div.demo的元素中包含了一个div.box的元素,接下来我们一步一步来看其中的变化。
第一步:添加普通样式:
width: 300
background: #60f;
width: 100%;
background: #f60;
height: 50
此时的效果很简单,就是div.box完全遮盖了div.demo,如下图所示:
第二步,在div.box上添加border和padding
这一步很棘手的事情来了,在div.box上添加10px的内距padding,同时添加5px的border:
width: 300
background: #60f;
width: 100%;
background: #f60;
height: 50
padding: 10
为了更好的说明问题,我在div.demo上添加了一个padding:3px 0;
width: 300
background: #60f;
padding: 3px 0;
width: 100%;
background: #f60;
height: 50
padding: 10
这个时候大家不知道能否想到问题会发生在哪?其实很简单,这个时候div.box的宽度大于了其容器div.demo的总宽度,从而撑破容器伸出来了,如图所示:
第三步,calc()的运用
为 了解决撑破容器的问题,以前我们只能去计算div.box的宽度,用容器宽度减去padding和border的值,但有时候,我们苦于不知道元素的总宽 度,比如说是自适应的布局,只知道一个百分值,但其他的值又是px之类的值,这就是难点,死卡住了。随着CSS3的出现,其中利用box-sizing来 改变元素的盒模型类型实使实现效果,但今天我们学习的calc()方法更是方便。
知道总宽度是100%,在这个基础上减去boder的宽度 (5px * 2 = 10px),在减去padding的宽度(10px * 2 = 20px),即&100% - (10px + 5px) * 2 = 30px& ,最终得到的值就是div.box的width值:
width: 300
background: #60f;
padding: 3px 0;
background: #f60;
height: 50
padding: 10
width: 90%;/*写给不支持calc()的浏览器*/
width:-moz-calc(100% - (10px + 5px) * 2);
width:-webkit-calc(100% - (10px + 5px) * 2);
width: calc(100% - (10px + 5px) * 2);
这样一来,通过calc()计算后,div.box不在会超出其容器div.demo的宽度,如图所示:
上面是一个简单的实例,接下来我们一起来看一个自适应布局的例子:
上面的demo是一个非常简单而常见的布局效果,在这个布局中,我采用了自适应布局。整个布局包含了“头部”、“主内容”、“边栏”和“脚部”,并且“主内容”居左,“边栏”靠右,具体结构请看DEMO中的html部分。
接下来,我们主要看看css部分:
1、在body中设置一个内距,并附上一些基本的样式,大家可以根据自己需要进行不同的设置,此例代码如下:
background: #E8EADD;
color: #3C323A;
padding: 20
2、设置主容器“wrapper”的样式
主容器的宽度是“100% - 20px * 2”,并且水平居中:
.wrapper {
width: 1024 /* Fallback for browsers that don't support the calc() function */
width: -moz-calc(100% - 40px);
width: -webkit-calc(100% - 40px);
width: calc(100% - 40px);
给不支持calc()的浏览器设置了一个固定宽度值“1024px”。
3、给header和footer设置样式
这个例子中的header和footer很简单,给他们添加了一个内距为20px,其他就是一些基本的样式设置,那么其对应的宽度应该是&100% - 20px * 2&:
background: #f60;
padding: 20
width: 984/*Fallback for browsers that don't support the calc() function*/
width: -moz-calc(100% - 40px);
width: -webkit-calc(100% - 40px);
width: calc(100% - 40px);
background: #000;
padding: 20
width: 984/* Fallback for browsers that don't support the calc() function */
width: -moz-calc(100% - 40px);
width: -webkit-calc(100% - 40px);
width: calc(100% - 40px);
4、给主内容设置样式
给主内容设置了一个8px的边框,20px的内距,并且向左浮动,同时设置了一个向右的外边距“20”px,关键之处,我们主内容占容器宽度的75%,这样一来,主内容的宽度应该是“75% - 8px * 2 - 20px * 2”:
border: 8px solid #B8C172;
margin-bottom: 20
margin-right: 20
padding: 20
width: 704 /* Fallback for browsers that don't support the calc() function */
width: -moz-calc(75% - 20px * 2 - 8px * 2);
width: -webkit-calc(75% - 20px * 2 - 8px * 2);
width: calc(75% - 20px * 2 - 8px * 2);
4、设置右边栏样式
给边栏设置了一个25%的宽度,其除了包含8px的边框,10px的内距外,还有主内容外距20px也要去掉,不然整个宽度与容器会相差20px,换句话说就会撑破容器掉下来。因此边栏的实际宽度应该是&25% - 10px * 2 - 8px * 2 -20px&:
#accessory {
border: 8px solid #B8C172;
padding: 10
width: 208 /* Fallback for browsers that don't support the calc() function */
width: -moz-calc(25% - 10px * 2 - 8px * 2 - 20px);
width: -webkit-calc(25% - 10px * 2 - 8px * 2 - 20px);
width: calc(25% - 10px * 2 - 8px * 2 - 20px);
这样一来,大家就看到了上面demo展现的布局效果。经过此例的学习,大家是不是会觉得使用calc()用于自适应布局是超爽的呀。此时有很多同学肯定会感吧,苦逼的IE6-8不支持,不敢使用。
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";
/*爱悠闲底部960*75*/
var cpro_id = "u1888128";天极传媒:天极网全国分站
您现在的位置: >&
全功能计算器EasyCalc详细教程
TOMPDA 11:50
  EasyCalc是为用户提供的图形,科学计算器。它不仅同内建计算器一样的能力、便捷,而且包括了三角函数,金融计算,复数以及图形功能。此外,您可以用10个字母的变量定义函数,并且支持10级嵌套。数值可以从1E-到1E250。
多屏幕便于分类 "ANS"按钮 可弹出历史计算 可弹出函数列表 图形缩放 同时计算多个函数 用户定义数轴 弧度、角度、百分度 十六进制、十进制、二进制、八进制运算模式 普通、科学、工程输出模式 用户可自定义15位以内精度 自动匹配括号 完全支持剪贴版 复数操作 显示图表操作可使用直角坐标,极坐标,参数定义 支持彩色palm 支持列表以及部分统计操作 将来版本会增加更多功能
  我收到很多邮件提到在EasyCalc中没有图形模式。大家应该发现EasyCalc的发放包里有很多个程序,它们都是可交换的,只是有不同的特性和语言版本。最大的像calc_en.prc(或calc_,calc_,calc_sp) (超过140K)包含所有功能(图形和特殊函数)。en、de等后缀指代不同地域(英国,西班牙,德国,捷克)。calc_small.prc文件没有特别的函数和图形功能。只安装它这样你可以省下40K的空间。所有这些程序在安装中总是由新的取代前次安装的。
  让我们从最简单的开始。第一次运行EasyCalc时你应该由你的机种不同看到类似如下显示。
输入 '+3' 执行 -&
  现在让我们计算一个简单的算式: 3+3=.用屏幕按钮或者'3+3'后按'EXE'或手写换行符。答案区会显示 '6'.现在再算一个复杂点的,计算3*sin(pi/)'.先点击右上角的'S'或者目录中选择来转到'科学计算'界面。
  现在您可以很容易的输入'3*sin(pi/2)'然后点击'Exe'.您不喜欢手写输入的话,可以转换屏幕。在截图中您可以发现EasyCalc不需要严格的括号匹配('sin(pi+1'就是指代'sin(pi+1)'),而且可以省略乘号。像是 '3pi'或'6e'。省略的乘号的优先权是很高的,因此3^6pi和3^(6*pi)相同。而明确写出的乘号则与一般运算中优先权一样。如果点击输入区右方的黑色箭头,你可以看到历史运算记录表。它可以记录前面15次运算。你也许会问ANS按钮是干什么的?它是记录最后一次计算结果的。它是根据您前面输入的算式点击执行按钮后自动变化的。试着输入sin(pi)后按Exe。现在再点+按钮,屏幕显示ans+。如果您再输入表达式(像是1)后按Exe,这是就很高效的计算了sin(pi)+1。如果你输入的是一个函数名,选择的文字会嵌入函数并且保持选中。注意这时的括号也是打开的,如果您忘了把表达式的部分放入括号,只要用笔选中再点击 '('按钮。
  现在来点屏幕上您看到的东西的介绍。'Rcl'是变量的快捷方式,'F'是函数的快捷方式(下文您会看到如何定义),'H'表示历史记录。
  基本计算有两种不同版式。你可以在参数选择中转换。第二种会比较拥挤,但有些人比较喜欢。
1(作者:gunboy 责任编辑:阿俊)
天极新媒体&最酷科技资讯扫码赢大奖
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
笔记本手机数码家电CSS3实例教程:详解calc()函数功能
当前位置: >
> CSS3实例教程:详解calc()函数功能CSS3实例教程:详解calc()函数功能更新:&&&&编辑:以南&&&&来源:呢小模板&&&&人气:加载中...&&&&字号:|标签:&&&&&&&&&&&&
呢小简介:就算你通过繁琐的法子实现了,但有于涉猎器的兼容性而导致最终效果不一致。虽然前面介绍的属性中的box-sizing在一定程度上这样的,其实今天的calc()实现上面的效果来得更简单。
calc()对大家来说,或许很陌生,不太会信任calc()是css中的部分。因为看其外表像个,既然是函数为何又出现在CSS中呢?这一点也让我百思不得其解,今天有一同事奉告我,说中有一个属性能实现自适应的布局,首先让我想到的是box-sizing,但跟我说还可以计算,这让我不得不想起calc()。因为早先在和一些blog上看到相关的介绍,但一直没有深入,也没有自己去过。今天花了一下午的光阴彻底学习了一下calc()。于是就有了这篇blog,愿望对大家有所赞助。
平时在页面的时候,总会碰到有的元素是100%的宽度。众所周知,如果元素宽度为100%时,其自身不带其他盒模型属性设置还好,要是有别的,那将导致盒子撑破。比如说,有一个边框,或者说有margin和padding,这些都会让你的盒子撑破。我们换句话来说,如果你的元素宽度是100%时,只要你在元素中添加了border,padding,margin任何一值,都将会把元素盒子撑破(标准模式下,除IE怪异模式)。这样一来就会相当的麻烦,平时我们碰到这样的现象时,也是相当的谨慎,有时甚至无法,只能通过改变结构来实现。就算你通过繁琐的法子实现了,但有于涉猎器的兼容性而导致最终效果不一致。虽然前面介绍的CSS3属性中的box-sizing在一定程度上解决这样的,其实今天的calc()函数实现上面的效果来得更简单。
什么是calc()?
学习calc()之前,我们有必要先calc()是什么?只有了他是个什么东东?在实际运用中更好的他。
calc()从字面我们可以把他理解为一个函数function。其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。比如说,你可以calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们应用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。
calc()能做什么?
calc()能让你给元素的做计算,你可以给一个div元素,应用百分比、em、px和rem单位值计算出其宽度或者高度,比如说&width:calc(50% + 2em)&,这样一来你就不用考虑元素DIV的宽度值到底是多少,而把这个烦人的任务交由涉猎器去计算。
calc()语法
calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,应用数学表达式来表示:
width: calc(expression);
其中&expression&是一个表达式,用来计算长度的表达式。
calc()的运算规则
calc()应用通用的数学运算规则,但是也供给更智能的功能:
涉猎器的兼容性
涉猎器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各涉猎器厂商的识别符,不过可惜的是,端的涉猎器还没仅有&firefox for android 14.0&支持,其他的全军覆没。
大家在实际应用时,同样需要添加涉猎器的前缀
/*Firefox*/
-moz-calc(expression);
/*chrome safari*/
-webkit-calc(expression);
/*Standard */
通过上面的领会,大家对calc()不在那么陌生,但对于实际的运用可能还是不太领会,那么大家就接下来跟我一起动手,通过来领会他吧。首先我们来看一个最常用的:
&div class=&demo&&
&div class=&box&&&/div&
上面的结构很简单,就是一个div.demo的元素中包孕了一个div.box的元素,接下来我们一步一步来看其中的变更。
第一步:添加普通样式:
width: 300
background: #60f;
width: 100%;
background: #f60;
height: 50
此时的效果很简单,就是div.box完全遮盖了div.demo,如下图所示:
第二步,在div.box上添加border和padding
这一步很棘手的事情来了,在div.box上添加10px的内距padding,同时添加5px的border:
width: 300
background: #60f;
width: 100%;
background: #f60;
height: 50
padding: 10
为了更好的说明问题,我在div.demo上添加了一个padding:3px 0;
width: 300
background: #60f;
padding: 3px 0;
width: 100%;
background: #f60;
height: 50
padding: 10
这个时候大家不知道能否想到问题会发生在哪?其实很简单,这个时候div.box的宽度大于了其容器div.demo的总宽度,从而撑破容器伸出来了,如图所示:
第三步,calc()的运用
为领会决撑破容器的问题,以前我们只能去计算div.box的宽度,用容器宽度减去padding和border的值,但有时候,我们苦于不知道元素的总宽度,比如说是自适应的布局,只知道一个百分值,但其他的值又是px之类的值,这就是难点,逝世卡住了。随着CSS3的出现,其中利用box-sizing来改变元素的盒模型类型实使实现效果,但今天我们学习的calc()法子更是方便。
知道总宽度是100%,在这个根基上减去boder的宽度(5px * 2 = 10px),在减去padding的宽度(10px * 2 = 20px),即&100% - (10px + 5px) * 2 = 30px& ,最终得到的值就是div.box的width值:
width: 300
background: #60f;
padding: 3px 0;
background: #f60;
height: 50
padding: 10
width: 90%;/*写给不支持calc()的涉猎器*/
width:-moz-calc(100% - (10px + 5px) * 2);
width:-webkit-calc(100% - (10px + 5px) * 2);
width: calc(100% - (10px + 5px) * 2);
这样一来,通过calc()计算后,div.box不在会越过其容器div.demo的宽度,如图所示:
上面是一个简单的实例,接下来我们一起来看一个自适应布局的例子:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
分类选择您可能在找这些帮设计师节省1,085,543,232小时

我要回帖

更多关于 css calc 计算高度 的文章

 

随机推荐