提高CSS开发能力的技巧集
1. 使用:not()给导航条添加间隔线
我们通常使用如下代码给导航条增加间隔线
/* add border */
.nav li {
border-right: 1px solid #666;
}
/* remove border */
.nav li:last-child {
border-right: none;
}
现在,我们可以使用:not()选择符简化操作,代码简洁易读,不错吧。
.nav li:not(:last-child) {
border-right: 1px solid #666;
}
或者,我们增加左边框。
.nav li:first-child ~ li {
border-left: 1px solid #666;
}
2. 给body元素增加Line-Height属性
我们不需要给每个p、h1元素设置line-height,只需要给body元素设置,其他文本元素会自动继承body的特性。
body {
line-height: 1;
}
3. 任意元素垂直居中
不是黑魔法,确实可以让任意元素垂直居中。
html, body {
height: 100%;
margin: 0;
}
body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
4. 逗号分隔的列表
让html列表貌似现实中逗号分隔的列表
ul > li:not(:last-child)::after {
content: ",";
}
5. 在nth-child中使用负数
在css的nth-child中使用负数选择1~n条记录。
li {
display: none;
}
/* select items 1 through 3 and display them */
li:nth-child(-n+3) {
display: block;
}
6. 使用svg图标
没有理由不使用svg图标,在大多数分辨率和浏览器里能够实现缩放,甚至兼容到IE9,所以不用再用.png、.gif等等。
.logo {
background: url("logo.svg");
}
7. 文本显示优化
一些字体不能再所有设备中最优展示,所以需要设置。
html {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
注意optimizeLegibility属性值的使用问题,同时IE/Edge不支持text-rendering。
8. 在Pure CSS Sliders中使用max-height
使用max-height实现隐藏、显示的动画。
.slider ul {
max-height: 0;
overlow: hidden;
}
.slider:hover ul {
max-height: 1000px;
transition: .3s ease;
}
参见本博《Auto值的CSS3 Transition解决方案》
9. 初始化box-sizing
从html中继承box-sizing属性,这样的话,后期维护比较方便。
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
10. 表格单元格等宽
.calendar {
table-layout: fixed;
}
11. 使用Flexbox摆脱各种Margin Hacks
在实现侧栏时,我们不再需要各种nth-、first-和last-child等设置margin,可以使用Flexbox轻松实现均匀分布。
.list {
display: flex;
justify-content: space-between;
}
.list .person {
flex-basis: 23%;
}
12. 给空连接使用属性选择符
对于那些拥有href属性但是内容为空的a,自动添加内容。
a[href^="http"]:empty::before {
content: attr(href);
}
非常方便,是吧。
来自:FedFun - CSDN博客 链接:http://blog.csdn.net/whqet/article/details/48997389
原文:https://github.com/AllThingsSmitty/css-protips
提高CSS开发能力的技巧集的更多相关文章
- 如何提高iOS开发能力
① 阅读技术博客 在现在这个年代,博客的风头早已被微博盖过.但是每天早上上班后的半小时,一定是打开博客,其中有讨论技术的,也有总结个人的相关经历,读完后肯定会有所收获.阅读博客,还有一个原因是技术博客 ...
- 提高你开发效率的十五个Visual Studio 2010使用技巧
提高你开发效率的十五个Visual Studio 2010使用技巧 相信做开发的没有不重视效率的.开发C#,VB的都知道,我们很依赖VS,或者说,我们很感谢VS.能够对一个IDE产生依赖,说明这个ID ...
- 极大提高Web开发效率的8个工具和建议(含教程)
面对复杂的 Web 应用的开发,良好的流程和工具支持是必不可少的,它们可以让日常的开发工作更加顺畅.更加高效.本文介绍了6个Web开发利器以及相关的教程,帮助你在开发.调试.集成和发布过程极大地提高效 ...
- 提高PHP开发质量的36个方法(精品)
提高PHP开发质量的36个方法 林涛 发表于:2016-3-25 0:00 分类:26点 标签: 62次 1.不要使用相对路径 常常会看到: require_once('../../lib/some_ ...
- 25条提高iOS App性能的技巧和诀窍
25条提高iOS App性能的技巧和诀窍 当我们开发iOS应用时,好的性能对我们的App来说是很重要的.你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢也会伤害到你的审核. 然而,由于IO ...
- Delphi开发的一些技巧
[Delphi]Delphi开发的一些技巧 一.提高查询效率先进行准备查询操作: CustomerQuery.Close; if not (CustomerQuery.Prepared) then - ...
- Windows SharePoint Services 3.0编码开发工具和技巧(Part 1 of 2)
转:http://blog.csdn.net/mattwin/article/details/2074984 WSSv3 Technical Articles_Windows SharePoint S ...
- 自动化高效css开发,畅谈less的灵活变化
css是一种让html与样式分离解析而出现的代码,它的出现大大提高了程序员的工作效率,和后期进行维护的效率.但是发展至今,由于起死板单调的写法,越来越不能满足程序员们灵活的思维,很多时候是种恨铁不成钢 ...
- 高效CSS开发核心要点摘录
做网站的,我们都知道尽量减少请求数,压缩CSS代码量,使用高效CSS选择符等方式可以来提高网站的载入速度和访问速度,也就是优化网站的性能. 下面分析了一些CSS的书写方式,很多都是我们知道并且正在使用 ...
随机推荐
- photoshop:css3插件
CSS3PS是Photoshop 插件,用来将 PhotoShop 的图层如内阴影.内发光.阴影.外发光.图片圆角等效果转成用 CSS3 样式. 官方下载地址>> http://css3p ...
- jQuery:balloon气泡提示插件
插件下载地址:http://file.urin.take-uma.net/jquery.balloon.js-Demo.html <!DOCTYPE html PUBLIC "-//W ...
- ExtJs计算两个DateField所间隔的月份(天数) new Date(str) IE游览器提示NaN 处理
需求:两个DateField控件,分别为开始时间和结束时间.当选择完结束时间后,自动计算这两个时间段所间隔的月或天数. 需要解决的问题: 1.直接使用Ext.getCmp('endDate').get ...
- exploring the http Object
form.html <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset=&q ...
- Android InputMethodManager输入法简介
正文 一.结构 public final class InputMethodManager extends Object Java.lang.Object android.view.inputmeth ...
- Model Browser
http://www.entityframeworktutorial.net/model-browser-in-entity-framework.aspx We have created our fi ...
- 【Todo】CSDN的《问底》系列-学习
看到CSDN的这个系列<问底>,看各篇文章的题目感觉不错.好好学习下: http://www.csdn.net/tag/%E9%97%AE%E5%BA%95/news
- memcached的LRU删除机制
1)memcached不会自动清空缓存的值如果add了一个值,但不去get它,那么这个值过期了,它也不会被清空.解释:memcached不自动检测和清空值,它只当你需要get这个值的时候,才检测这个值 ...
- linux shared lib 使用与编译
一. 动态链接库的原理及使用 Linux提供4个库函数.一个头文件dlfcn.h以及两个共享库(静态库libdl.a和动态库libdl.so)支持动态链接. Ø ...
- android linux shell 日期设置
/************************************************************************ android linux shell 日期设置 * ...