b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

calc()函数功能实现上面的效果来得更简单

电脑杂谈  发布时间:2021-02-16 10:01:47  来源:网络整理

Calc()可能对每个人都不熟悉,很难相信calc()是CSS的一部分。因为它看起来像一个函数,所以如果它是一个函数,为什么它会出现在CSS中?这也让我感到困惑。今天,一位同事告诉我,CSS3中有一个属性可以实现自适应布局。让我想到的第一件事是框大小调整,但是可以计算出来。我必须考虑calc()。因为我在较早的官方网站和一些博客上看到过相关的介绍,但是我没有深入,也没有自己测试过。今天我花了一个下午彻底学习calc()。所以我有这个博客,希望对大家有帮助。

通常在制作页面时,某些元素总是100%宽。众所周知,如果元素宽度为100%,则无需其他框模型属性设置也可以。如果还有其他物品,将导致盒子破裂。例如,如果有边框,或者有边距和填充,这些将使您的装箱中断。换句话说,如果您的元素宽度为100%,则只要您向元素添加border,padding,margin的任何值,元素框就会被破坏(在标准模式下,IE怪异模式除外)。这将很麻烦。当我们遇到这种现象时,我们通常会非常谨慎,有时甚至无法解决,只能通过更改结构来实现。即使您通过繁琐的方法来实现它,由于浏览器的兼容性,最终效果也是不一致的。尽管上面介绍的CSS3属性中的框大小在一定程度上解决了这个问题,但实际上,今天的calc()函数功能更容易实现上述效果。

什么是calc()?

在学习calc()之前,有必要让我们知道calc()是什么?只知道他是什么?在实际应用中更好地利用他。

Calc()从字面上我们可以将其理解为函数。实际上,calc是英文单词calc的缩写,它是css3的新功能,用于指定元素的长度。例如,您可以使用calc()为元素的border,margin,padding,font-size和width属性设置动态值。为什么是动态值?因为我们使用表达式来获取值。但是calc()的最大优点是它用于流体布局,并且元素的宽度可以通过calc()来计算。

calc()可以做什么?

calc()允许您对元素进行计算。您可以使用百分比,em,px和rem单位值来计算div元素的宽度或高度。例如,“ width:calc(50%+ 2em))”,因此您不必考虑元素DIV的宽度,而将这个烦人的任务留给浏览器进行计算。

calc()语法

calc()的语法非常简单,就像我们年轻时学会加(+),减(-),乘(*)和除(/)一样,我们使用数学表达式来表达:

.elm {
  width: calc(expression);
}

其中“ expression”是一个表达式,用于计算长度。

calc()的计算规则

calc()使用一般的数学规则,但也提供了更智能的功能:

使用四个算术运算符“ +”,“-”,“ *”和“ /”;可以使用百分比,px,em,rem等单位;可以混合使用各种单位进行计算;表达式中有一个“ +”,“-”和“-”前后必须有空格。例如,“ widht:calc(12%+ 5em)”是一种不带空格的错误书写方式;当表达式中有“ *”和“ /”时,前后不能有空格,但建议使用空格。浏览器兼容性

移动端pc端页面兼容_calc 移动端兼容_calc()对移动浏览器兼容问题

浏览器与calc()的兼容性非常好。在IE9 +,FF 4. 0 +,Chrome19 +和Safari6 +中得到很好的支持。它还需要在其前面添加每个浏览器制造商的标识符。但是,遗憾的是,“ firefox for android 1 4. 0”不仅支持移动浏览器,而且其余的浏览器已被完全清除。

实际使用时,还需要添加浏览器前缀

 .elm {
	/*Firefox*/
	-moz-calc(expression);
	/*chrome safari*/
	-webkit-calc(expression);
	/*Standard */
	calc();
 }

通过以上了解,您对calc()并不陌生,但是您可能对实际应用程序并不了解。然后每个人都会从我开始,并通过示例认识他。首先,让我们看一个最常用的例子:

<div class="demo">
	 <div class="box">div>
div>	

上面的结构非常简单,即div.demo元素包含div.box元素。接下来,我们将逐步查看更改。

第一步:添加通用样式:

.demo {
	width: 300px;
	background: #60f;
}
.box {
  width: 100%;
	background: #f60;
	height: 50px;
}

此时的效果非常简单,即div.box完全覆盖了div.demo,如下所示:

calc-step1

第二步是在div.box中添加边框和填充

此步骤非常棘手。在div.box上同时添加10px的内部填充和5px的边框:

.demo {
	width: 300px;
	background: #60f;
}
.box {
  width: 100%;
  background: #f60;
  height: 50px;
  padding: 10px;
  border: 5px solid green;
}

calc 移动端兼容_移动端pc端页面兼容_calc()对移动浏览器兼容问题

为了更好地说明问题,我在div.demo中添加了填充:3px 0;

.demo {
	width: 300px;
	background: #60f;
padding: 3px 0;	
}
.box {
  width: 100%;
  background: #f60;
  height: 50px;
  padding: 10px;
  border: 5px solid green;
}

这时,您不知道是否可以想到问题会发生在哪里?实际上,这很简单。此时,div.box的宽度大于其容器div.demo的总宽度,以便将容器拉出,如图所示:

calc-step2

第三步,使用calc()

为了解决打破容器的问题,我们只能通过从容器宽度中减去padding和border值来计算div.box的宽度,但有时我们不知道容器的总宽度例如,自适应布局只知道一个百分比值,但其他值是像px这样的值。这是困难,并且被卡住了。随着CSS3的出现,使用box-sizing来更改元素的box模型类型确实很有效,但是我们今天学习的calc()方法更加方便。

知道总宽度为100%,在此基础上减去boder的宽度(5px * 2 = 10px),然后减去填充的宽度(10px * 2 = 20px),即“ 100%- (10px + 5px))* 2 = 30px“,最终值为div.box的宽度值:

.demo {
	width: 300px;
	background: #60f;
	padding: 3px 0;
}
.box {
	background: #f60;
	height: 50px;
	padding: 10px;
	border: 5px solid green;
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的宽度,如图所示:

calc-step3

上面的演示是一个非常简单且常见的布局效果。在此布局中,我使用了自适应布局。整个布局包括“头”,“主要内容”,“侧边栏”和“脚”,“主要内容”在左侧,“侧边栏”在右侧。有关具体结构,请参见DEMO的html部分。

接下来,我们主要看一下css部分:

1、在正文中设置内部页边距并附加一些基本样式。您可以根据需要设置不同的设置。此示例的代码如下:

body {
    background: #E8EADD;
    color: #3C323A;
    padding: 20px; 
}

2、设置主容器“包装器”的样式

主容器的宽度为“ 100%-20px * 2”,并且水平居中:

	.wrapper {
    width: 1024px; /* Fallback for browsers that don't support the calc() function */
    width: -moz-calc(100% - 40px);
    width: -webkit-calc(100% - 40px);
    width: calc(100% - 40px);
    margin: auto; 
}

为不支持calc()的浏览器设置了固定宽度值“ 1024px”。

3、设置页眉和页脚的样式

此示例中的页眉和页脚非常简单,为它们添加了20px的内部边距,其他页眉和页脚是一些基本样式设置,因此相应的宽度应为“ 100%-20px * 2”:

#header {
    background: #f60;
    padding: 20px;
    width: 984px;/*Fallback for browsers that don't support the calc() function*/
    width: -moz-calc(100% - 40px);
    width: -webkit-calc(100% - 40px);
    width: calc(100% - 40px);
}
#footer {
    clear:both;
    background: #000;
    padding: 20px;
    color: #fff;
    width: 984px;/* 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”:

#main {
    border: 8px solid #B8C172;
    float: left;
    margin-bottom: 20px;
    margin-right: 20px;
    padding: 20px;
    width: 704px; /* 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;
    float: right;
    padding: 10px;
    width: 208px; /* 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);
}

这样,每个人都可以看到上面演示中显示的布局效果。研究完此示例后,您认为使用calc()进行自适应布局超酷吗?这时候,许多学生肯定会感觉到,苦苦挣扎的IE6-8不支持也不敢使用它。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-357753-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...