css 横线_atom.css正式发布,从此跟CSS框架说拜拜。

d496fb3eaa5a8fccb94129b314f398c9.png

442e99f6941f637973e0edf16b42ff24.png

atom.css

大家好,我写了一个css库atom.css,蛮好用的,所以忍不住分享给大家。(https://github.com/MatrixAge/atom.css)

起因

HTML几年了,再到如今的JSX,最大的感受不是枯燥,而是眼花。写样式的时候,往往需要在HTML/JSX文件和CSS文件之间来回切换,眼球频繁转动,再加上大屏刺眼,很容易引起眼疲劳,如果个人有抽烟,喝酒或是玩手游的习惯,每天早上起床眼睛里都会有血丝,时间长了,就容易引起眼疾。

于是乎,经过一段时间的归纳,我做了一个写界面样式的新方案—atom.css。事实上从这个想法出来到我做开源项目这之间我还犹豫了很久,因为atom.css做的一些事情很平常,无非就是把CSS属性写成一个独立的class,在这之前很多UI框架基本上都是这么干的,所以我也有些怀疑这个开源项目的必要性,这之后,我开始思考atom.css能带给开发者什么?atom.css和那些UI框架有哪些不同?凭什么让其他开发者放弃框架来使用atom.css?直到我看了GitHub新版首页的源代码,GitHub的部分页面也使用了的atom-style CSS,这时我才肯定了我的想法,我是对的。

<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search"><span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">Search</span><span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">All GitHub</span><span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>

很多东西,推演使用到极致,它就有了不一样的意义。

我将atom.css定义为提供基础类的CSS库,一个class对应一个单独的CSS属性,与BootstrapAnt Design等UI框架提供的块状CSS不同的是,atom.css单一属性class将各种CSS块状属性解耦,开发者在书写模板时拥有了极大的自由,在布局时基本上不要去写单独的CSS,而这为后续开发和维护提供了足够的灵活性。atom.css更为强大的一点是,它极大地缩短了开发者书写模板的时间,也就是说让开发者有更多的时间去关注业务逻辑,让许多业务特别重的开发人员可以更快地完成工作任务,晚上有更多的时间用来陪家人和朋友。

来源

atom.css的灵感来源于有机化学。在有机化学中,元素作为最小单位,构成各种有机物,不同的元素经过排列组合可以形成不同的有机物,再由这些有机物构成物质。

atom.css将常用的CSS属性转换成单一的class,比如display:flex转化为.flex {display:flex},当我们在使用HTML写页面骨架的时候,你就可以一边写结构,一边写样式,省去了一部分在写完HTML结构之后再去写界面样式的时间。

.flex{display:flex;
}.justify_center{justify-content:center;
}.align_center{align-items:center;
}.left{float:left;
}.right{float:right;
}

atom.css符合当下流行的css in js的设计理念,当你熟悉它的“表达方式”之后,你再也不想用什么框架了,而且它还可以加深你对css的理解,最重要的是,它构建用户界面,超快!

内容

atom.css目前有100+个单元class,足以应对页面布局的大部分CSS,atom.css的更新频率是每个星期天更新,我会搜集同事以及个人还有其他开发者的需求,整理衡量之后进行更新,我的愿景是,让atom.css成为一种标准,甚至,在未来,HTML原生就支持atom.css,以下即为大部分class:

0d159d81801edf00899cc0ac245827f7.png

用法

Full example:

<div class="w_100vw h_100vh flex justify_center align_center bg_yellow color_333 font_bold font_64">Example
</div>

Output:

336d41e2b6308489fa7831442652840e.png

可能有人会觉得这样写看起来不怎么样,但是当时熟悉了在HTML/JSX中使用atom.cssCSS,那便-一发而不可收拾那!相信我,你绝对会爱上这种写法,这样写是会上瘾的!

最后

atom.css使用的是MIT协议,还是很自由的!我的初衷是,优化工程架构,减少重复性工作,让广大攻城狮同胞有多余的时间来享受一下生活。

欢迎star,欢迎pull requests,只有两点要求:一是要遵循下划线的命名规则,二是保持class的单一属性原则。

下划线命名规则与驼峰命名相比可辨识度高一些,易于语义化,不采用中横线是因为中横线会造成视觉障碍,对于语义化不是那么友好;class的单一属性原则是atom.css的核心,这是一定要遵守的,不过后续可能会增加私有变量和原子组件的class,希望大家继续关注atom.css,谢谢!

https://github.com/MatrixAge/atom.css​github.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

halcon模板匹配学习(一) Matching 初印象

什么是模板匹配呢&#xff1f;简单而言&#xff0c;就是在图像中寻找目标图像&#xff08;模板&#xff09;&#xff0c;或者说&#xff0c;就是在图像中寻找与模板图像相似部分的一种图像处理技术。依赖于选择的方法不同&#xff0c;模板匹配可以处理各种情形下的变换&#xf…

第五章 面向方面编程___AOP入门

上一篇讲了 AOP 和 OOP 的区别&#xff0c;这一次我们开始入门 AOP 。实现面向方面编程的技术&#xff0c;主要分为两大类&#xff1a; 一是 采用动态代理技术&#xff0c;利用截取消息的方式&#xff0c;对该消息进行装饰&#xff0c;以取代原有对象行为的执行&#xff1b; 二…

java将xml中的标签名称转为小写_深入学习Java Web(七): JSTL标签库

本文转自与博客园一杯凉茶的博客.在之前我们学过在JSP页面上为了不使用脚本&#xff0c;所以我们有了JSP内置的行为、行为只能提供一小部分的功能&#xff0c;大多数的时候还是会用java脚本&#xff0c;接着就使用了EL表达式&#xff0c;基本上EL表达式看似能满足我们的要求&am…

halcon模板匹配学习(二) 准备模板

如下&#xff0c;我们将介绍匹配的第一个操作&#xff1a;准备模板 初始时刻&#xff0c;我们准备好参考图像&#xff0c;并对其做一定的处理&#xff0c;然后我们需要从参考图像中导出模板&#xff0c;也就是将参考图像裁剪成所谓的模板图像。获取模板图像可以通过设置ROI来完…

揭秘继承技术之虚函数

虚函数 调用虚函数时函数行为将根据对象所属类的不同而变化。 父类指针或引用指向子类对象时&#xff0c;可访问子类重写方法&#xff08; virtual函数&#xff09;但无法访问在父类中没有定义的子类方法和数据成员。 #include <iostream>using namespace std;class Supe…

js 数组移除_2020前端面试--常见的js面试题

&#xff08;答案持续更新...&#xff09; 1.简述同步和异步的区别js是一门单线程语言&#xff0c;所谓"单线程"&#xff0c;就是指一次只能完成一件任务。如果有多个任务&#xff0c;就必须排队&#xff0c;前面一个任务完成&#xff0c;再执行后面一个任务&#xf…

spring-自动加载配置文件\使用属性文件注入

在上一篇jsf环境搭建的基础上 , 加入spring框架 , 先看下目录结构 src/main/resources 这个source folder 放置web项目所需的主要配置,打包时,会自动打包到WEB-INF下 首先看下pom.xml,需要引入一些依赖项: 1 <project xmlns"http://maven.apache.org/POM/4.0.0" x…

pygame碰撞检测

最近在学Pygame,花一段时间做了一个异常简陋版的"打砖块". 这次重点说一下困扰我比较长时间的碰撞检测(个人太菜..). 按照网上教程比较普遍的方法(也可能是我没看见别的),碰撞检测依次计算移动物体与被碰撞物体各个边之间坐标是否相交.例如下列代码,检测小球与窗口的…

2017-5-4 进程

进程&#xff1a;一个应用程序就是一个进程开启某个进程Process.Start("文件缩写名");通过绝对路径开启某个进程Process p new Process();p.StartInfo new ProcessStartInfo("要打开的程序绝对路径");p.Start(); 获取全部开启的进程&#xff1a;Process.…

c++分治法求最大最小值实现_程序员:算法导论,分治法、归并排序,伪代码和Java实现...

分治法我们首先先介绍分治法。分治法的思想&#xff1a;将原问题分解为几个规模较小但类似于原问题的子问题&#xff0c;递归地求解这些子问题&#xff0c;然后在合并这些子问题的解来解决原问题的解。还是拿扑克牌举例子&#xff0c;假设桌上有两堆牌面朝上的牌(牌面朝上&…

halcon相关的链接

论坛、培训 halcon学习网&#xff1a;http://www.ihalcon.com/鸟叔机器视觉&#xff1a;http://bbs.szvbt.com/forum.php 博客 韩兆新的博客园majunfuLife and Codingzhaojun的博客風韻無聲骑蚂蚁上高速的博客小马_xiaoLV2小新识图程序园-程序员的世界章柯渊的博客 注&…

python opencv图像处理程序_Python-OpenCV学习(四):基本图像处理

转载请注明出处&#xff1a;danscarlett的博客园 参考资料&#xff1a; 目录&#xff1a; 读取 imread 显示 imshow 存储 imwrite 缩放 resize 加边框 copyMakeBorder 裁剪 img[x_start:x_end,y_start:y_end] 1.图像读取&#xff1a; cv2.imread(fileName,flagsNone) 函数功能&…

分针网——怎么轻松学习JavaScript

js给初学者的印象总是那么的“杂而乱”&#xff0c;相信很多初学者都在找轻松学习js的途径。我试着总结自己学习多年js的经验&#xff0c;希望能给后来的学习者探索出一条“轻松学习js之路”。js给人那种感觉的原因多半是因为它如下的特点&#xff1a;A&#xff1a;本身知识很抽…

python时间序列分析航空旅人_用python做时间序列预测一:初识概念

利用时间序列预测方法&#xff0c;我们可以基于历史的情况来预测未来的情况。比如共享单车每日租车数&#xff0c;食堂每日就餐人数等等&#xff0c;都是基于各自历史的情况来预测的。 什么是时间序列&#xff1f; 时间序列&#xff0c;是指同一个变量在连续且固定的时间间隔上…

[Logstash-input-redis] 使用详解

2019独角兽企业重金招聘Python工程师标准>>> Redis插件参数配置详解 工作流程 logstash启动redis插件redis插件获取参数&#xff0c;进行校验工作判断监听模式(list,channel,pattern_channel等)&#xff0c;根据不同的监听模式创建监听任务创建redis实例&#xff0c…

雅可比旋转求解对称二维矩阵的特征值和特征向量

问题描述&#xff1a; 给定一个矩阵&#xff0c;如下&#xff1a; A[a11a21a12a22]A=\begin{bmatrix} a_{11}&a_{12}\\ a_{21}& a_{22} \end{bmatrix} 其中满足a12a21.也就是所谓的 对称矩阵。那么如何求解此矩阵的特征值以及特征向量呢&#xff1f;这里我们要用到 …

python画图数据的平均值怎么算的_Python气象数据处理与绘图(2):常用数据计算方法...

对于气象绘图来讲&#xff0c;第一步是对数据的处理&#xff0c;通过各类公式&#xff0c;或者统计方法将原始数据处理为目标数据。 按照气象统计课程的内容&#xff0c;我给出了一些常用到的统计方法的对应函数&#xff1a; import numpy as np 平均值 在计算气候态&#xff0…

Linux下nginx安装与配置

部分Linux发布版的默认安装已经集成了nginx&#xff0c;查看方法ls /usr/local&#xff0c;若已有nginx文件夹说明已集成。nginx依赖库pcre与zlib&#xff0c;且pcre依赖于gcc与gcc-c&#xff0c;因此安装步骤为&#xff1a;安装gcc与gcc-c库安装pcre库安装zlib库安装nginx详细…

几种字符串加密解密的方法

为什么80%的码农都做不了架构师&#xff1f;>>> 第一种&#xff1a;〔 Python 与 Bash Shell 的结合 〕 这个命令会让你输入一个字符串&#xff0c;然后会再输出一串加密了的数字。 加密代码[照直输入]: python -c print reduce(lambda a,b: a*256ord(b), raw_inpu…

java delegate怎么写_美团面试官:你说你们公司的Mybatis分页插件是你写的,给我说说它的设计原理?...

来源&#xff1a;http://my.oschina.net/zudajun大多数框架&#xff0c;都支持插件&#xff0c;用户可通过编写插件来自行扩展功能&#xff0c;Mybatis也不例外。我们从插件配置、插件编写、插件运行原理、插件注册与执行拦截的时机、初始化插件、分页插件的原理等六个方面展开…