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.pswp.cn/news/258870.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258870.shtml
英文地址,請注明出處:http://en.pswp.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…

python中*args和**args的不同

上一段代碼&#xff0c;大家感受一下 def test_param(*args): print(args) def test_param2(**args): print(args) test_param(test1,test2) >>>(test1,test2) test_param2(p1test1,p2test2) >>>{p1:test1, p2:test2} python提供了兩種特別的方法來定義函數的…

halcon模板匹配學習(二) 準備模板

如下&#xff0c;我們將介紹匹配的第一個操作&#xff1a;準備模板 初始時刻&#xff0c;我們準備好參考圖像&#xff0c;并對其做一定的處理&#xff0c;然后我們需要從參考圖像中導出模板&#xff0c;也就是將參考圖像裁剪成所謂的模板圖像。獲取模板圖像可以通過設置ROI來完…

揭秘繼承技術之虛函數

虛函數 調用虛函數時函數行為將根據對象所屬類的不同而變化。 父類指針或引用指向子類對象時&#xff0c;可訪問子類重寫方法&#xff08; virtual函數&#xff09;但無法訪問在父類中沒有定義的子類方法和數據成員。 #include <iostream>using namespace std;class Supe…

java中GET方式提交和POST方式提交

java中GET方式提交的示例&#xff1a; /*** 獲取關注列表;* return*/SuppressWarnings("unchecked")public static ArrayList<String> getUserList() {StringBuffer bufferRes new StringBuffer();ArrayList<String> users null;try {URL realUrl new…

基于HALCON的模板匹配方法總結

很早就想總結一下前段時間學習HALCON的心得&#xff0c;但由于其他的事情總是抽不出時間。去年有過一段時間的集中學習&#xff0c;做了許多的練習和實驗&#xff0c;并對基于HDevelop的形狀匹配算法的參數優化進行了研究&#xff0c;寫了一篇《基于HDevelop的形狀匹配算法參數…

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.…

很有用的cv牛人的網址和主要貢獻

CV人物1&#xff1a;Jianbo Shi史建波畢業于UC Berkeley&#xff0c;導師是Jitendra Malik。其最有影響力的研究成果&#xff1a;圖像分割。其于2000年在PAMI上多人合作發表"Noramlized cuts and image segmentation"。這是圖像分割領域內最經典的算法。主頁&#xf…

c++分治法求最大最小值實現_程序員:算法導論,分治法、歸并排序,偽代碼和Java實現...

分治法我們首先先介紹分治法。分治法的思想&#xff1a;將原問題分解為幾個規模較小但類似于原問題的子問題&#xff0c;遞歸地求解這些子問題&#xff0c;然后在合并這些子問題的解來解決原問題的解。還是拿撲克牌舉例子&#xff0c;假設桌上有兩堆牌面朝上的牌(牌面朝上&…

菜根譚#82

風來疏竹&#xff0c;風過而竹不留聲&#xff1b;雁度寒潭&#xff0c;雁去而潭不留影&#xff1b;故君子事來而心始現&#xff0c;事去而心隨空。 轉載于:https://www.cnblogs.com/star4knight/p/3604403.html

解讀ASP.NET 5 MVC6系列(9):日志框架

解讀ASP.NET 5 & MVC6系列&#xff08;9&#xff09;&#xff1a;日志框架 原文:解讀ASP.NET 5 & MVC6系列&#xff08;9&#xff09;&#xff1a;日志框架框架介紹 在之前的.NET中&#xff0c;微軟還沒有提供過像樣的日志框架&#xff0c;目前能用的一些框架比如Log4N…

2017第18周四

繼續加班中&#xff0c;很多事不如預期。時間花費很多但效果不成比例。越忙落下的事越多&#xff0c;有時候還需要讓自己靜下來想想&#xff0c;到底有什么是重要的。集中精力放在重要的哪些事&#xff0c;盡自己最大努力即可&#xff0c;盡最大努力即使沒有達到也可以沒有遺憾…

halcon相關的鏈接

論壇、培訓 halcon學習網&#xff1a;http://www.ihalcon.com/鳥叔機器視覺&#xff1a;http://bbs.szvbt.com/forum.php 博客 韓兆新的博客園majunfuLife and Codingzhaojun的博客風韻無聲騎螞蟻上高速的博客小馬_xiaoLV2小新識圖程序園-程序員的世界章柯淵的博客 注&…

[轉]Java8-本地緩存

這里我將會給大家演示用ConcurrentHashMap類和lambda表達式實現一個本地緩存。因為Map有一個新的方法可以在key為Null的時候自動計算一個新的value值。非常完美的實現cache。來看下代碼&#xff1a; public static void main(String[] args) {for (int i 0; i < 10; i)Syst…

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) 函數功能&…