CSS技巧(一)

最实用的CSS技巧

能够避免工作中大部分的困扰

1. 使用 :not()

通常我们在给列表元素添加分割线的时候是这样做的:

ul li {
    border-top: 1px solid #DDD;
}

ul li:first-child {
    border-top: none;
}

如果你对兄弟选择器理解不错的话你可能会这么做:

ul li:first-child ~ li {
    border-top: 1px solid #DDD;
}
然而你会发现
第一种方式阅读简单,但是代码繁多
第二种方式写起来简单 但是语义不是那么的简单直接

使用:not()之后

ul li:not(:first-child) {
    border-top: 1px solid #DDD;
} 

是不是发现代码变得整洁了、易读了、语义更直接了?

2. 给body添加line-height

当你限定一个文本容器元素(display: block || inline-block)的高度时,往往会为它设置一个等高的line-height,而往往这种元素在页面中是很多的。

line-height属性值的百分比值的参照为该元素的font-size(自己的理解,认为不对的同学欢迎指出)。

现在,你不需要为每个文本容器元素添加line-height,只需要添加到body即可,它们 可以很容易的从body中继承

body {
    line-height: 1;
}

3. 使内容垂直居中(包含却不限于文字)

以往我在做垂直居中的时候有三种做法:

// 方法一
.table-cell {
    display: table-cell;
    vertical-align: center; 
}

// 方法二
.inline-block {
    display: inline-block;
    vertival-align: center;
}

// 方法三
.wrap {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
.container {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

以上三种方法虽然可以实现,但是太蛋疼……

现在,简单的方法出现了,只需要为父容器设置如下属性即可

.wrap {
    -webkit-align-items: center;
    -ms-align-items: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;

    height: 500px;
}

是不是很简单啊

有人说道在IE11中得小心使用,但是我并没有发现什么不妥的地方,如果哪位同学发现了IE11中的bug请分享出来,在此谢过。

4. 选择前几项

大家都知道选择奇数项和偶数项用:nth-child(2n+1):nth-child(2n),但是如果要求选择前几项往往有人就无从下手了。

li:nth-child(-n+4) {
    color: red;
}

看上面的例子,:nth-child(-n+*)表示选择前*个项目。So easy!

:nth-child() 和 :nth-of-type()的区别这里不做详细描述了,不是很清楚的话可以去查查

5. 制作等宽的表格

大家在制作表格的时候肯定会发现:这货会自动调节!!! 一般的时候我们其实也需要自动调节,这样使得表格看起来往往是那么的比较美观。但是,总有那么些个特殊需求,吐槽吐槽ing……记住下面的属性可以帮你不少忙的。

.calendar {
    table-layout: fixed;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值