前言

在现在的互联网业务中,前端开发人员往往需要支持比较多的项目数量。很多公司只有 1-2 名前端开发人员,这其中还不乏规模比较大的公司。这时前端同学就需要独挡一面支持整个公司上下的前端业务,项目如流水一般从手里流过,此时更需要前端开发人员将工作工程化、流水线化。

本博文在发布之后有些争议,有人认为如此书写 css 并不规范。这点我认同,但不少框架也采用了这种方式,提升的开发效率也是明显的。希望大家对这种思想去其糟粕,取其精华,过度使用必然导致可维护性下降,但绝对使用单一类名也不现实。最后祝大家工作顺利。

一个栗子

现在需要编写页面中的一个按钮,结构与样式如下:

<div class='button'>开始</div>

有人说,这有什么难的,不到1分钟就能写好了:

.button {
width: 100px;
height: 40px;
font-size: 16px;
text-align: center;
line-height: 40px;
color: #fff;
background-color: #337ab7;
border-radius: 6px;
cursor: pointer;
}

但如果这个项目中有50个大小不一的这样按钮怎么办?有人会说,那把 button 抽象成公共类名的不就好喽,就像下面这样:

<div class="button btn-begin"></div> 
.button {
font-size: 16px;
text-align: center;
line-height: 40px;
color: #fff;
background-color: #337ab7;
border-radius: 6px;
cursor: pointer;
} .btn-begin {
width: 100px;
height: 40px;
}

没错,这种确实是比较普遍的方法。但问题是,下一个项目风格改变,我们用不到 button 的公共样式了。所以这种方式不适合流水线作业,也不在本篇的讨论范畴中。

现在我们编写了一个 base.css,它也就是标题所说的我们寄几的基础 css 库,也是真正意义上的公共样式。假设 base.css 中已经定义好了以下几个样式类:

.f-16 {
font-size: 16px;
} .c-white {
color: #fff;
} .text-center {
text-align: center;
} .radius-6 {
border-radius: 6px;
} .cursor {
cursor: pointer;
}

更改结构:

<div class="f-16 c-white text-center radius-6 cursor button">开始</div>

这样我们只需写少许 css 就能完成 button 的样式。

.button {
width: 100px;
height: 40px;
line-height: 40px;
background-color: #337ab7;
}

· 如上,当公共的样式定义的足够多时,可以极大的增加我们的开发效率,尤其是官网以及 CMS 这样较大的项目,效果更加明显。甚至某些结构只需要通过已有的样式类名进行组合就能完整实现,而不需要另外起名并单独编写 css。

· 在实际生产中,你还可以动态扩展 base.css,比如项目的设计刚到手上时,发现使用 #c9c9c9 颜色的字体比较多,就可以在 base.css 中加入 .c-c9 { color: #c9c9c9 }。

· 市面上的 css 库数都数不清,为什么还要大家寄几编写呢。主要有以下几点:1. 有人可能会这样想:“我 CSS 基础这么好,让我用别人写的?闹呢!”;2. 别人的库可能有很多冗余的、自己用不到的样式,白白增加项目体积;3. 别人的库需要学习成本,自己写的不仅符合自己的 css 书写习惯,起的类名也是自己最好记的。

抛砖引玉

上面说了那么多,下面列举下我个人在平常用的比较多的公共样式,先付上源码

内外边距初始化

html, body, div, h1, h2, h3, h4, h5, h6, p, span, img, input, textarea, ul, ol, li, hr {
margin:;
padding:;
}

用 * 的同学回炉重造哈,:)

去除 list 默认样式

ul, ol {
list-style-type: none;
}

去除 a 标签默认样式

a {
text-decoration: none;
}

左右浮动

.l {
float: left;
} .r {
float: right;
}

两种常用背景图展示

.bg-img {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
} .ic-img {
background-position: center;
background-repeat: no-repeat;
background-size: contain;
}

不同字号字体(实时扩展)

.f-13 {
font-size: 13px;
} .f-14 {
font-size: 14px;
} .f-16 {
font-size: 16px;
} .f-18 {
font-size: 18px;
} .f-20 {
font-size: 20px;
}

字体粗细

.f-bold {
font-weight: bold;
} .f-bolder {
font-weight: bolder;
}

字体颜色(实时扩展)

.c-white {
color: #fff;
} .c-black {
color: #000;
}

行高(实时扩展)

.lh-100 {
line-height: 100%;
} .lh-130 {
line-height: 130%;
} .lh-150 {
line-height: 150%;
} .lh-170 {
line-height: 170%;
} .lh-200 {
line-height: 200%;
}

元素类型

.inline {
display: inline;
} .block {
display: block;
} .inline-block {
display: inline-block;
}

box-sizing

.border-box {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}

清除浮动

.clear {
clear: both;
}

超出隐藏

.overflow {
overflow: hidden;
}

字符居左/中/右

.text-left {
text-align: left;
} .text-center {
text-align: center;
} .text-right {
text-align: right;
}

字体超出隐藏,以省略号代替

.text-overflow {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

首行缩进2字符

.text-indent {
text-indent: 2em;
}

强制文字换行

.text-wrap {
word-wrap: break-word;
word-break: normal;
}

常用的3种定位方式

.absolute {
position: absolute;
} .relative {
position: relative;
} .fixed {
position: fixed;
}

浮动光标改变

.cusor {
cursor: pointer;
}

上面例举了一部分公共样式,希望能给大家一些启发。命名和抽象方式可以按照自己的喜好来,将平常工作中用到的样式慢慢积累,很快就会拥有自己专属的强大 css 基础库。祝大家都能做好自己业务的工程化,流水化,下一篇博文是跟大家分享寄几的公共 JS。

感谢你的浏览,希望能有所帮助

开始编写寄几的 CSS 基础库的更多相关文章

  1. 开源巨献:年度最佳 JavaScript 和 CSS 开源库推荐!

    作者:编辑部的故事   <  开源巨献:年度最佳 JavaScript 和 CSS 开源库推荐!   > 开源巨献:年度最佳 JavaScript 和 CSS 开源库推荐! Tutoria ...

  2. css基础总结一

    最近在弄一个简单管理系统的前端,所以打算将做项目的一些个人感想以及总结简单罗列下,当然,主要针对前端的基础部分以及一些常用的前端个人简单技巧总结.主要分为js部分和css部分,下面是css的基础部分总 ...

  3. CSS基础教程 -- 媒体查询屏幕适配

    响应式布局 Media Query 的使用方法 在上例中, 我们使用Media Queries来根据3种不同尺寸的窗口使用3种不同的样式.通过不同的媒体类型和条件定义样式表规则,媒体查询让CSS可以更 ...

  4. (转)第一天 XHTML CSS基础知识 文章出处:标准之路(http://www.aa25.cn/div_css/902.shtml)

    欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准. 学习本系列教程需有一定html和css基础,也 ...

  5. 〖前端开发〗HTML/CSS基础知识学习笔记

    经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> & ...

  6. CSS 基础知识点 样式 选择器 伪类

    CSS 基础知识点汇集 版权声明:这篇博客是别人写的,大神博客地址 : https://www.cnblogs.com/Mtime/p/5184685.html 1.CSS 简介 CSS 指层叠样式表 ...

  7. HTML3/CSS基础

    1. HTML 1.1 什么是HTML HTML是用来制作网页的标记语言 HTML是Hypertext Markup Language的英文缩写,即超文本标记语言 HTML语言是一种标记语言,不需要编 ...

  8. 一个有意思的CSS样式库--BUTTONS

    我最近发现了一个有意思的CSS样式库,和Bootstrap相似,但是它是专门的一个高度可定制的,免费的并且开源的按钮CSS样式库,这里附上它的网址:http://www.bootcss.com/p/b ...

  9. DIV+CSS专题:第一天 XHTML CSS基础知识

    欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准.   学习本系列教程需有一定html和css基础 ...

随机推荐

  1. 克隆 CentOS 后系统启动问题解析

    问题背景: 虚拟机:VMware Workstation. 操作系统:CentOS,是Linux发行版之一. 问题: 原因:虚拟机的服务没有开启(虚拟机开启一般比较占内存,所有多数人都设置成手动开启) ...

  2. git使用3

    如何使用/学习第三方框架? 优秀的第三方框架都在 github.com 1> 搜索 2> git clone 获得完整版本 $ git clone https://github.com/A ...

  3. js对手机软键盘的监听

    js还没有办法对手机软键盘直接进行监听的,但是可以有其他角度来判断软键盘是否弹起.比如输入框是否获取焦点等.focusin和focusout支持冒泡,对应focus和blur, 使用focusin和f ...

  4. 学习总结------Servlet的简单理解

    1.什么是Servlet Servlet是一个Java编写的程序,在服务器端运行的(如tomcat) Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览 ...

  5. ionic中点击图片看大图的实现

    在页面上显示了几张图片后,因为是手机端,图片会有点小的感觉,就想着怎么样才能让用户点击小图片看到大图呢,项目中ionic结合angularjs实现了这个功能 1.首先是三张小图上应添加一个函数,当点击 ...

  6. easyui框架--基础篇(一)-->数据表格datagrid(php与mysql交互)

      前  言  php  easyui框架--本篇学习主要是 easyui中的datagrid(数据表格)框架. 本篇学习主要通过讲解一段代码加GIF图片学习datagrid(数据表格)中的一些常用属 ...

  7. Java程序设计模式系列之适配器模式

    理解适配器设计模式需要从生活中的场景进行联系,在生活当中有那些东西能够称为适配器呢?从字面上理解,"适配"的意思就是让一个东西和另一个东西配对,能够让他们一起工作,比如大家用的笔记 ...

  8. PageSlider中CSS3动画在除首屏之外先加载页面后执行动画的问题

    PageSlider中CSS3动画在除首屏之外先加载页面后执行动画的问题,PageSlider中加入CSS3动画的话,默认只有首屏是从无到有执行动画,其他屏都是显示下页面再执行动画 这就造成其他屏的动 ...

  9. 简单总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  10. Java通过Axis2发布WebService

    参考文档: http://blog.csdn.net/ghsau/article/details/12714965 http://www.iteye.com/topic/1135747 http:// ...