`
smoke
  • 浏览: 9859 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类
最新评论

分享一个去年鼓捣的前端开发框架,望能抛砖引玉

阅读更多

当初弄这个是发现即使再好的命名规范,因为思想和水平不同,页面结构五花八门,样式命名虽然按规范,但冲突再所难免,结果还是相当混乱。当初就想要是有个 大的框架可套用再配合样式定义规范,让前端人员套下框架,然后就只要关注自己负责的模块结构和样式,这样就能消除大部分问题。不废话了,直接看内容:

页面分为两层:一层布局层、一层部件层。

先看布局层:

布局层由行(.row)和列(.col)两个基本元素组成,一个页面可以有多个行,一个行可以包含多个列。.col-wrap是可选的,放便习惯使用负边距布局的同学。
下面先来看布局示例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>四方CSS框架</title>
<style type="text/css">
.row:after, .col:after{content:'\20'; display:block; height:0; clear:both;}
.row, .col{*zoom:1;}
.col-wrap{ float:left; width:100%;}

.row{ border:2px dashed #aaa; min-height:60px; margin-top:20px;}
.col-wrap .col{background:#f9eba8;}
.col{ min-height:60px; background:#ececec;}

/* 2列 */
.C2LH .col{ float:left; width:50%;}
.C2LH .c2{ width:49%; margin-left:1%;}

.C2LNMH .c1{ margin-right:50%;}
.C2LNMH .c2{ float:left; margin-left:-49%; width:49%;}

/* 3列 */
.C3LNMH .c1{ margin-right:46%;}
.C3LNMH .c2{ float:left; margin-left:-45%; width:22%;}
.C3LNMH .c3{ float:left; margin-left:-22%; width:22%;}


/* 2排-第2列两行 */
.C3LNM1-2_1_1 .c1{margin-right:20%;}
.C3LNM1-2_1_1 .c2{ float:right; width:19%; margin-left:-19%;}
.C3LNM1-2_1_1 .c3{ clear:right; float:right; width:19%; margin-left:-19%; margin-top:10px;}

/* 4列 */
.C4LNMH .c1{ margin-right:60%;}
.C4LNMH .c2{ float:left; margin-left:-59%; width:19%;}
.C4LNMH .c3{ float:left; margin-left:-39%; width:19%;}
.C4LNMH .c4{ float:left; margin-left:-19%; width:19%;}

/* 2排-第2排第2行2列 */
.C4LNM1-3_1_2 .c1{margin:80px 20% 0 20%;}
.C4LNM1-3_1_2 .c2{ float:left; margin-left:-19%; width:19%; margin-top:80px;}
.C4LNM1-3_1_2 .c3{float:left; margin-left:-100%; width:19%;}
.C4LNM1-3_1_2 .c4{float:left; margin-left:-80%; width:80%;}
</style>
</head>

<body>

<div class="row C2LH">
    <div class="col c1"></div>
    <div class="col c2"></div>
</div>

<div class="row C2LNMH">
    <div class="col-wrap">
        <div class="col c1"></div>
    </div>
    <div class="col c2"></div>
</div>

<div class="row C3LNMH">
    <div class="col-wrap">
    	<div class="col c1"></div>
    </div>
    <div class="col c2"></div>
    <div class="col c3"></div>
</div>

<div class="row C3LNM1-2_1_1">
    <div class="col-wrap">
    	<div class="col c1"></div>
    </div>
    <div class="col c2"></div>
    <div class="col c3"></div>
</div>

<div class="row C4LNMH">
    <div class="col-wrap">
    	<div class="col c1"></div>
    </div>
    <div class="col c2"></div>
    <div class="col c3"></div>
    <div class="col c4"></div>
</div>

<div class="row C4LNM1-3_1_2">
    <div class="col-wrap">
    <div class="col c1"></div>
    </div>
    <div class="col c2"></div>
    <div class="col c3"></div>
    <div class="col c4"></div>
</div>



</body>
</html>

 

示例中C2LH,C3LH等是用来描述该行的布局样式,L前面的C2表示总列数是2列,L后面的H表示横向排列,默认就是2列并排。C3LH就是总列数3列,横向3列并排。列中的c1、c2、c3等表示该列的编号,用来区分索引各列,方便为各列单独定义样式。


C4LNM1-3_1_2这个类名有些抽象。L前面的C4不变还是表示总列数4列。L后面的NM表示负边距布局,1-3表示显示成2排,第1排1列,第2排3列。_1_2表示第2排分2层,第一层1列,第二层2列。有点绕,类名中的“-”表示并排,“_”表示分层,数字是指列数,命名方式就是:
C*L*-(并排)*_(分层)*_(分层)*。(*表示列数)

 

接下来看部件层

1.部件层命名规范
所有跟布局无关的内容我们都归为部件层,部件层类名的命名都是以.wgt-开头,后面可接有代表意义的缩写或单词,如.wgt-img,.wgt-text等。
   
2.部件层样式定义规范
部件层的所有样式定义都是从自身层级的类名开始,例如:
图片1.png

同一个部件差异化样式可以以自身的ID或所在列、行的ID来定义,不能使用布局层的类名来进行差异化定义。这样做的好处是显而易见的,每个部件都是一个独立的整体,层级也一样,部件内部的类名即使一样,也不会互相影响。

不知道有没有表述清楚,希望有人能看懂

分享到:
评论

相关推荐

    保卫星球(前端代码)game

    《保卫星球》是一款基于前端技术开发的游戏,其主要涵盖了前端界面设计、游戏逻辑实现以及交互体验优化等多个方面的知识。这款游戏的源代码包含了以下几个关键部分: 1. **HTML(index.html)**:HTML(HyperText ...

    shiro 新手鼓捣了一天终于搞好了。。还差个分布式session

    通过以上内容,你可以对 Shiro 有一个全面的理解,并能开始构建一个基本的 Shiro + SpringMVC 的安全框架。然而,要实现分布式会话管理,还需要进一步学习和配置相关的中间件,确保在集群环境下用户的会话能够正常...

    windows XP下驱动开发环境设置

    呵呵,昨天鼓捣了半晚上,一直没弄好,本来以为和Windows 2000下的设置是一样的,但是,按照网上的方法,总是不行,郁闷了半晚上。今天上午又重新看了看setenv.bat的内容,发现了XP与2000下的setenv内容还是不同的,...

    spark本地开发模式配置

    5.把附件中的架包解压后添加到scala项目的library中,因为受上传权限的限制,就不上传最大的一个spark jar包了,这个jar包只要到官网下载spark项目就能获得,我用的版本是:spark-assembly-1.3.0-cdh5.4.5-hadoop...

    最近在鼓捣AB的plc上位机c#开发,一些别人的例程,未整理,自己用的,勿下载

    乱七八糟的资料

    HTML外部引用CSS文件不生效原因分析及解决办法

    作为一个前端小白,鼓捣了几天前端。。今天突然发现我深信不疑的东西,竟然出现了问题。。就比如我在css目录下面写了一个css样式文档:style.css。这时里面只有一句话: XML/HTML Code复制内容到剪贴板 body {  ...

    react项目前端 小白、初学者 入门必看

    react项目前端增删查改,模态框等。初步使用了redux以及redux-saga。代码并不复杂,也是本人学习的时候鼓捣出来的,觉得我这次所使用的redux以及saga技术初学者也可以看的懂。 下载之后请配置好环境哦

    freegolf:也是2013年6月份鼓捣的东西

    Canvas是一个可编程的画布,允许通过JavaScript动态绘制2D和3D图形,是构建游戏场景的基础。 2. Box2D或类似物理引擎:为了实现真实感的物理效果,如球的滚动、碰撞等,游戏可能采用了Box2D或者其他JavaScript物理...

    node-koa2-blog:node+koa2 博客项目

    之所以会有这个项目,是因为刚学完node koa2框架以后正好工作不太忙,如果不做点什么的话,觉得很对不起这么多天的学习,也算是对所学知识的一个总结。于是琢磨这自己搞点东西出来,人活着嘛就是为了折腾,于是就...

    GoodBuy:鼓捣买电商比价网

    GoodBuy电商比价网是一个在线平台,旨在帮助消费者在各大电商平台之间比较商品价格,以找到最优惠的购物选择。这个项目可能由一个前端开发者使用HTML、CSS和JavaScript等技术构建而成。下面将详细讨论HTML在构建此类...

    Spire.XLS8.0 去除水印版

    没办法,第二天看到一个贴子(谢谢老大https://blog.csdn.net/wang_j90/article/details/80137546),开始照着做,结果基础太弱,鼓捣一上午,放弃了。 下午继续弄时,结果发现上午的破解成功了,特发上来与大家分享...

    proteus仿真12864坐标轴显示,并实时刷新数

    好久没有接触51单片机了,尤其是仿真这块,做个 小活再次回归到51上 ,实现12864屏幕显示坐标轴,并实时更新...鼓捣一下午成功实现了坐标轴和点的仿真,放个视频,暂时先不开源,毕竟也是给别人做的,不能直接公开呀。

    基于鬼魂的微信小程序版博客

    四月份的空余时间都在折腾自己的微信小程序版博客,作为后端开发的我鼓捣起前端的技术还是稍微有点吃力的,有些语法确实不太熟悉。 但总的来说还好,静下心来看看文档,熟悉下语法,实现一些功能的时候还是挺有成就

    网页小制作,网页版简易示波器设计资料分享-电路方案

    就不能闲着,闲着就想鼓捣,分享很久之前没事无聊做的一个示波器,主要实现了可以设置x和y轴刻度调节例如 5v/DIV 20ms/DIV ,还加了一个滚动条并且实现了滚动条滚动时波形图控件的网格数目保质不变,然后就是触发了,...

    J3DReconstruction:Windows下基于openMVG+openMVS的三维重建应用程序(with Qt GUI)

    去鼓捣了一下多目三维重建这个东西,然后其实发现国外开源的框架和库不少,但是由于这个领域比较小众,导致国内的相关文献和实际易于操作的项目确实有点少,我索性就照着openMVG和openMVS两个开源库做了一个二次开发...

    Discuz_X2外观“听雨轩”风格

    论坛的首页:一个网站最重要的便是内容,论坛首页仅仅列出所有的版块的确是一个很傻的 举动,但这不怪DZ,主要是大家都这样,已成为了习惯,所以我想改变一下。 帖子的楼层分页:此分页应该是针对回帖的分页,所以...

    声卡开发 ASIO SDK 说明文档

    ASIO SDK说明文档,最近在鼓捣羚羊的 Orion 32+ GEN4 声卡,好多地方这文档都收费,但实际都是官方免费的,我是官方的搬运工,有需要的小伙伴拿走不谢

    ClickOnce添加外部文件

    关键字:ClickOnce,添加外部文件,Visual Studio 2008 SP1,.NET Framework 3.5,SmartClient 环境:XP SP3,Visual Studio 2008 SP1,.NET Framework ...废话不多说,为了让能用到的大虾少走弯路,成果分享给大家。

    【.NET源码】开源网校点播直播题库考试在线教育平台.zip_在线教育平台

    最近疫情原因线下教学全部停了,就在家鼓捣起了网校,下载了很多开源的源码,大部分都无法正常运行,经过一个星期的对比测试,发现了这个学习系统,不仅安装简单,功能也是比较全面的,点播,直播,题库,考试,支付...

Global site tag (gtag.js) - Google Analytics