2

Box-sizing

尽管box-sizing在CSS3中才被引入,其有一个值是border-box,让元素的高和宽包含了填充和边框。

.div {
     width: 150px;
     height: 100px;
     border: 1px solid #ccc;
     box-sizing: border-box;
}

Chrome 31+, IE8+, Firefox 31+, Safari 7+, Opera 27+, iOS Safari 7.1+ and Android Browser 4.1+等都支持该属性。

z-index和定位

如果元素没有定位属性,如static/absolute/relative/fixed,改属性将被忽略

position: relative;
z-index: 100;

禁用一个元素

可以使用pointer-event属性的一个none值来有效的禁用元素。不管是JQuery还是JavaScript,点击事件都不会被触发

.bricked {
     pointer-events: none;
}

Chrome 31+, IE11+, Firefox 31+, Safari 7+, Opera 27+, iOS Safari 7.1+ and Android Browser 4.1+支持该属性

长链接换行

阻止长链接溢出父元素

a {
     word-wrap: break-word;
}

ps:相关文章:CSS换行

用媒体查询检测Retina显示屏

可以用下面的媒体查询检测Retina显示屏

@media
     (min-device-pixel-ratio: 2), 
     (min-resolution: 192dpi) { 
          /* Retina CSS */
     }

过滤

除了IE,filter属性被广泛的支持,但可能会被Spartan支持。在接下来的几十年,它会是一个大事件。

.blur {
     filter: blur(30px);
}

Chrome 31+, Firefox 35+, Safari 7+, Opera 27+, iOS Safari 7.1+ and Android Browser 4.4+等支持该属性

用省略号缩短文本

可以在一个元素中用省略号来缩短长文本

.whatever {
     overflow: hidden;
     text-overflow: ellipsis; 
}

让一个空元素服从宽度

有时你需要一个空元素去遵循它的宽度属性,可以这样做:

.whatever {
     min-height: 1px;
}

@supports

@supports查询和@media查询类似,若浏览器支持,则给定的CSS将会显示。目前,IE和Safari不支持该属性,但不久后就会改变。Spartan承诺支持该属性,值得期待

@supports (display: flex) {
     /* flexbox CSS */  
}

@supports not (display: flex) {
     /* CSS for no flexbox */   
}

Chrome 31+, Firefox 31+, Opera 27+ and Android Browser 4.4+等支持该属性。

PS:
在知乎的一个专栏上介绍了三个奇淫技巧,很有用,补充在此文后面:
关于CSS[几乎]没人知道的3件事

英文原文:Some CSS you may not know
译文出处:一些你不知道的CSS属性


我是星礼
12.7k 声望1.1k 粉丝

Front-end Dev Handbook: 前端开发者手册