居中对齐
最近发现好多项目都用到居中对齐,我用的最多的就是rem设置宽度,然后就是margin值为0 auto。
基本上都能解决遇到的问题。无意间发现一个css的属性方法 calc(),真是个大招。
在介绍他之前先看一个技术痛点,然后在请出calc()。
1. 基于绝对定位方法实现
举例:(一般方法)
main {
position : absolute;
top : 50%;
left : 50%;
margin-top : -3em;
margin-left : -5em;
width : 10em;
height : 6em;
}
举例:基于calc()的实现如下
main{
position : absolute;
top : calc(50% - 3em);
left : calc(50% - 5em);
height : 6em;
width : 10em;
}
注意:calc函数中的运算符左右两边需要有空格,要不然浏览器不会生效。
可以看出代码量减少了,这一部工作就交给浏览器实现了。
实现等分自适应布局
前段时间看见企鹅用到一个方法,应用在类似等分布局里面,因此得到启发。
举例:基于calc
html:
<div class="main">
<a href="javascript:;" class="item"></a>
<a href="javascript:;" class="item"></a>
<a href="javascript:;" class="item"></a>
<a href="javascript:;" class="item"></a>
<a href="javascript:;" class="item"></a>
</div>
css:
.main
{
width : 50%;
height : 100px;
}
.item
{
display : inline-block;
border : 2em solid #fff;
width : calc(20% - 4em);
height : 100%;
}
这种方法类似于box-sizing:border-box。
实现页脚紧贴底部
举例: 假设如下布局,利用calc实现页脚紧贴底部。
html:
<header></header>
<main></main>
<footer></footer>
css:
header{
height:6em;
}
footer{
height:10em;
padding:1em 0;
}
main{
min-height:calc(100vh - 10em - 2em -6em);
}
综上:有时候当你计算元素宽高,或者其他值比较费劲时直接交给浏览器吧。省事省时,冬天来了,就是不爱动弹,交给浏览器算好了,吃个夜宵洗洗睡了。
写博不留种,大家懂得。。。。
参考:
1.calc
2.calc实践