css比较有用的属性

最近使用css的相关属性会出现这样那样的问题,这里简单的汇总一下,希望遇到同样问题的童鞋有所帮助~~

一、calc():计算css属性值

简介:calc()是css3的一个新增的功能,用来指定元素的长度。使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。

问题一:calc()计算不生效

解决方法:表达式中有“+”和“-”时,其前后必须要有空格,如”widht: calc(100% + 5px)”;

问题二:calc()在less文件中使用,”width : calc(100% - 30px)“会被解析成”width: calc(70%);

解决方法:正确的写法是:width : calc(~"100% - 30px");

二、CSS3 :nth-child() 选择器

定义以及用法:nth-child(n) 选择器匹配父元素中的第 n 个子元素,元素类型没有限制。n 可以是一个数字,一个关键字,或者一个公式。

注意:使用公式(an+ b)。

a代表一个循环的大小,N是一个计数器(从0开始),以及b是偏移量。 在这里,我们对所有索引是3的倍数的p元素指定了背景颜色:

1 p:nth-child(3n+0)
2 {
3     background:#ff0000;
4 }

三、css3 box-sizing属性

box-sizing属性可以为三个值之一:content-box(default),border-box,padding-box。

content-box,border和padding不计算入width之内;

padding-box,padding计算入width内;

border-box,border和padding计算入width之内;当为块级元素设置width和height属性后,如果使用的padding的值较大,会使内容溢出,而这个属性完美的解决了这个问题,即:cintent+padding+border=width;

四、CSS  :before 伪元素

":before" 伪元素可以在元素的内容前面插入新内容。

下面的例子在每个 <h1>元素前面插入一幅图片

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8"> 
 5 <title>W3Cschool教程(w3cschool.cn)</title> 
 6 <style>
 7 h1:after {content:url(http://www.w3cschool.cn/statics/images/course/smiley.gif);}
 8 </style>
 9 </head>
10 
11 <body>
12 <h1>这是一个标题</h1>
13 <p>在伪元素插入元素后的内容。</p>
14 <h1>这是一个标题</h1>
15 <p><b>注意:</b>仅当!DOCTYPE 已经声明 IE8支持这个内容属性。</p>
16 </body>
17 </html>

效果如下:

五、translate(-50%,-50%)

用 position 加 translate translate(-50%,-50%) 比较奇特,百分比计算不是以父元素为基准,而是以自己为基准。

示例:

 1 <style>
 2 #ex3_container{
 3 width:200px;
 4 height:200px;
 5 background-color:yellow;
 6 position:relative;
 7 }
 8 #ex3_content{
 9 left:50%; 
top
:50%; 10 transform:translate(-50%,-50%); 11 -webkit-transform:translate(-50%,-50%); 12 background-color:gray; 13 color:white; 14 position:absolute; 15 } 16 </style> 17 <div id="ex3_container"><div id="ex3_content">Hello World</div></div>

实现的效果如下:

 

posted @ 2019-01-13 16:26  c'estlavie  阅读(366)  评论(0编辑  收藏  举报