首页>前端教程>CSS教程

CSS小技巧汇总(不断更新)

这篇文章主要记录学习CSS过程中遇到的很好的小技巧,不断更新……

1、平时设置字体的时候总喜欢分开写,比如这样:

font-family: Arial, Helvetica; 
font-weight: bold; 
font-style: italic; 
font-size: 1em; 
line-height: 1.5em;

其实可以这样写:

font: bold italic 1em/1.5em Arial, Helvetica;

2、背景分开写成这样:

background: url(example.gif); 
background-color: #eaeaea ; 
background-repeat: repeat-x; 
background-position: top left;

其实可以写成一行,比如:

background: #eaeaea url(example.gif) repeat-x top left;

3、边框,css面板产生的边框样式很恐怖,比如:

border-color: red; 
border-width: 1px; 
border-style: solid;

其实,写成一行更好:

border: 1px solid red;

4、margin和padding简写:

/* top=10px, right=5px, bottom=15px, left=20px */ 
margin: 10px 5px 15px 20px; 
/* top=10px, right=5px, bottom=10px, left=5px*/ 
margin: 10px 5px; 
/* top=10px, right=5px, bottom=15px, left=5px*/ 
margin: 10px 5px 15px;
/*四边都一样*/
margin:10px;

padding类似的写法。

5、值为0的时候可以省略单位,比如:

margin: 0px; 
padding: 0em;

可以简写成:

margin: 0; 
padding: 0;

6、十六进制的颜色,比如#ffffff,可以简写成#fff,就是说#RRGGBB这样的值,可以简写成#RGB,小于1的小数,比如0.5em,可以简写成 .5em,表示50%的0.5,可以简写成 .5。

7、图片设置了浮动后,段落文字会包裹该图片,如果需要图片浮动,但是又不需要文字包裹图片,则可以为该段落添加如下样式:

.no-wrap-text { 
    overflow: hidden;
 }

文字包裹浮动图片.png

8、清除在容器中图片下面有缝隙的办法

因为图片是inline对象,所以和文字一样,基于父元素的baseline对齐的,而baseline对齐的时候距离底部还有一点缝隙。就好像文字和文字的行之间是有缝隙一样。 所以只要设置vertical-align不为baseline就可以解决这个问题。 方法主要考虑两种:

1)、为父容器设置字体大小为0

div{
    font-size:0;}

2)、为图片定义垂直对齐方式

img{
    vertical-align:bottom;
}

当然,还有一种是把img设置为block,这样就改变了图片的默认类型。而且图片设置了block之后,不能继承p的首行缩进的样式。

9、clearfix清除浮动导致的高度不自适应的方法:

如果要兼容低版本的浏览器,代码如下:

.clearfix:after{   
    visibility: hidden;   
    display: block;   
    font-size: 0;   
    content: " ";   
    clear: both;   
    height: 0; 
    } 
* html .clearfix { zoom: 1; } /* IE6 */ 
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

或者用

.clearfix {zoom: 1;} /* IE < 8 */

代替:

* html .clearfix { zoom: 1; } /* IE6 */ 
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

如果不用考虑低版本浏览器,则可以使用最精简的方法:

.clearfix:after {     
    content:"";     
    display:block;     
    clear:both; 
    }

当然,也发现有这样的写法:

.clearfix:after {     
    content:" ";
    display:table;
    clear:both; }

如果用display:table而不是display:block,可能导致容器额外的边距。

10、为div设置100%的高度的时候,还需要为html、body设置100%的高度才有效果。

html,body{
    width:100%;
    height:100%;/*最根溯源,还是要html有高度,后面的后代元素才能继承高度。*/
}
div{
    width:180px;
    height:100%;
}

11、文章标题不换行的时候,溢出的部分用省略号代替。

li{
    white-space:nowrap;/*文本不换行*/
    overflow:hidden;/overflow为非visible的值才起作用。/
    text-overflow:ellipsis;/*如果文字溢出,可以用省略号代替*/
}

12、多个li并排的时候,有一方的外边距,ul没有内边距,两方对齐ul的边框,可以让ul设置一个外边距的负值。

ul{
margin-right:-20px;}
ul li{
width:280px;
height:310px;
float:left;
margin:0 20px 15px 0;
}

13、当容器的宽度不固定的时候,可以设置为表格显示方式实现水平居中对齐。

div{
display:table;
width:auto;
margin:0 auto;
}

14、当容器的高度固定的时候,容器内多行文本实现纵向居中对齐,因为vertical-align只对td、th有用。

div{
height:378px;
display:table-cell;
vertical-align:middle;}

15、当容器设置圆角半径的时候,如果是背景图片,则图片也直接圆角,如果是插入的普通图片,则需要设置溢出隐藏。

.girlszuopin li{
	text-align:left;
	border-radius:5px;
	overflow:hidden;}

16、取消超链接a被点击时候的虚线框

a:focus{ /*需要用到:focus伪类*/
outline:none;
}

17、margin的负值

margin左右的负值在增加block对象的宽度上有妙用。上下的负值产生位置的移动。

比如列表左右对齐的卡片布局。

#container{
width:1200px;
background: #eee;
margin-right:-20px;
overflow: hidden;
}
#container ul{
width:1220px;
}
#container li{
width:224px;
height: 300px;
background: #ddd;
float: left;
margin: 0 20px 20px 0;
}


点赞


4
保存到:

相关文章

发表评论:

◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。

Top