`
冰云
  • 浏览: 142876 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

OO的CSS尝试

阅读更多

OO的CSS尝试:面向对象的样式表实践

美工和程序员如何合作? 我的答案是就靠这种规则的CSS
因为结构比较规则,所以可以通过固定的Taglib来生成table
但美工和程序员之间需要一个熟悉CSS/Scritpt的web程序员

之前想到过用类似于面向对象的方法来做CSS,主要的设计思路如下

对于某种类型的Table,在系统中肯定会出现多次,
例如用于显示新闻的,显示公告的等等。
因此把这种Table总结为一个CSS,而这些不同的CSS又有一些共性。
代码:
sampleTable.css
.sampleTable {
}

sampleTable2.css
.sampleTable2 {
}


例如表头,数据行等等,很多元素都相同。
因此做一个CSS模版,通过CSS属性继承的技巧来实现。
代码:

.sampleTable1 {
}
.sampleTable1 tbody .text{
}

.sampleTable2 {
}
.sampleTable2 tbody .text {
}

为什么说是OO的CSS呢?

因为这个CSS借鉴了OO的部分思路,继承,抽象和多态

继承,就是CSS的class继承了父class的属性如.table tbody
抽象,就是按照实际功能抽象为一个可描述的名字,如.text

在应用的时候,上面的.table .label .menu等等,可以看作是接口
不同的css实现相同的接口。如.table1 .table2,都应该有.label .ment

一个<TABLE class="table1">,可以看作是.table1这个接口的一个对象,
是吧,这个对象也可能是table2的对象,
但他们都是实现了.table这个接口。

table对不同接口的实现,就是OO中的多态。

那么,这样做的好处是什么?
首先,你得到了一个干净的table,没有多余的颜色格式信息
第二,这个表格是规则的,你可以通过taglib等模版自动生成
第三,更换一个class很简单,只需要改动一处,不需要修改td等元素
第四,更好的组织css,将css按照颜色或功能分为多个文件

代码位于:http://icecloud.51.net

现在我只实现了一个table的0.12版本
有兴趣的朋友不妨一起来做这个OO-CSS项目 :>

    


版权声明:
本文由冰云完成,作者保留中文版权。
未经许可,不得使用于任何商业用途。
欢迎转载,但请保持文章及版权声明完整。
如需联络请发邮件:icecloud(AT)sina.com
Blog:http://icecloud.51.net
 



分享到:
评论

相关推荐

    bempress:专注于OOCSS的WordPress入门主题

    "Bempress"是一个专门针对OOCSS(Object-Oriented CSS)设计的WordPress入门主题,它旨在为开发者提供一个高效、可扩展且结构化的起点,以构建更符合现代Web标准的网站。OOCSS是一种编程思想,强调模块化和可重用性,...

    CSS基础学习胶片

    【CSS基础学习胶片】 CSS,全称Cascading Style Sheets,中文译为层叠样式表,是网页设计中用于控制网页布局和样式的...为了更好地掌握CSS,建议边学习边实践,尝试在HTML文件中应用所学知识,逐步提升你的前端技能。

    我也种棵OO树JXTree[js+css+xml]

    在JXTree的CSS样式设置中,`.text`类设置的`font-size`属性为16px,当尝试将其改为14px或更小时,会导致树形结构出现变形的情况。这可能是因为较小的字体大小会影响到树节点之间的间距计算,进而导致布局错乱。 ...

    holy-grail-markup:所有CSS方法论在一处比较了示例

    请记住: raw只是默认的旧的丑陋2000样式css标记的示例,没有任何方法(仅供比较),但是通过尝试以某种方式构造代码,我们在方法出现之前就做了。 在这里。 您可以通过URL地址...

    使用变量动态设置js的属性名

    如果你尝试访问 `obj.i`,由于 `i` 是循环变量,它在每次迭代后都会改变,所以最后 `obj.i` 只会反映出循环最后一次迭代的值,即 `oocss`。 总之,在JavaScript中,我们可以灵活地使用变量作为属性名来动态地构建...

    parcel-plugin-atomic

    Atomic CSS,也被称为原子化CSS或OOCSS(Object-Oriented CSS),是一种提倡将CSS规则分解为最小、不可再分的单位的编程范式。它的核心理念是将CSS类设计得具有单一责任,如同原子一样不可分割,从而提高代码复用性...

    2014-website:2014年个人网站

    使用BEM(Block Element Modifier)或OOCSS(Object-Oriented CSS)方法论可以帮助保持代码的整洁和可重用性。 这个压缩包中的"2014-website-gh-pages"文件名暗示可能是一个GitHub Pages项目,这意味着开发者可能...

    maraschino-v2-concept:Maraschino v2 概念

    与 JSX ReactFlux(没有框架,因为我想学习关键概念) 用 livereload 吞咽LESS(使用 OOCSS-ish 原则,因为我想探索这种方法) 浏览器化ECMAScript 6,使用 es6ify 转译为 ECMAScript 5 Flask(我想要一些简单的...

    UI_COMPONENT:https:abdullah-ohida.github.ioUI_COMPONENT

    优化CSS选择器的效率,利用CSS树形结构(BEM、OOCSS或SMACSS),以及使用代码分割和延迟加载技术,可以帮助减少页面加载时间。 8. **测试**:为了确保组件的稳定性和一致性,通常需要进行单元测试和集成测试。工具...

    【JavaScript源代码】解决vue使用vant轮播组件swipe + flex时文字抖动问题.docx

    在开发Vue应用时,我们经常会使用第三方UI库如Vant来加速前端界面的构建。然而,在实际使用过程中,有时会遇到一些意想不到的...在开发过程中,遇到类似的动画问题时,可以尝试通过开启硬件加速来优化性能和用户体验。

    【JavaScript源代码】vue导入.md文件的步骤(markdown转HTML).docx

    在尝试导入Markdown文件时,可能会遇到以下问题: 1. Markdown语法可能无法正确转换为HTML。 2. 代码块、表格等特殊元素显示不正常。 3. 缺乏合适的样式,使得展示效果不尽如人意。 **解决方案** 首先,我们需要...

    【JavaScript源代码】react 项目中引入图片的几种方式.docx

    如果图片加载有问题,检查`file-loader`的配置或尝试添加`.default`来获取正确的路径。 总的来说,React中引入图片的方式多样,可以根据项目的具体需求选择合适的方法。重要的是理解图片加载的本质——确保图片在...

    【JavaScript源代码】一篇文章教你实现VUE多个DIV,button绑定回车事件.docx

    首先,尝试直接在DIV或者button元素上使用Vue的事件修饰符`@keyup.enter`,但这种方法在某些情况下可能无效。例如: ```html 确定(Ent) ``` 虽然上述代码在点击按钮时可以触发`submit`方法,但直接在div上绑定`@...

    table表格内容上下移动的三种实现方法

    这种方法的优点是实现了即时的交互效果,但需要注意处理边界情况,如尝试上移第一行或下移最后一行。 方法二:CSS样式变换 第二种方法是利用CSS3的transform属性进行动画效果的实现。我们可以设置表格行的...

    ASP.NET学习全过程xingqiyi

    #### 二、面向对象编程(OO)基础 - 在学习 ASP.NET 之前,理解面向对象编程的概念非常重要。这包括类、对象、继承、封装等基本概念。 - 面向对象的思想贯穿于整个.NET Framework,因此掌握这一概念对于深入学习 ...

    krunalbad

    好吧,目前尝试以一些pkg进行了一些协作! 顺便说一句,请随时在LinkedIn上与我联系! :thinking_face: 我正在寻找有关...基于JavaScript的应用程序的帮助! :closed_mailbox_with_raised_flag: 如何联系我:...

    【JavaScript源代码】JavaScript实现表格动态变色.docx

    为了避免这种情况,我们选择在每个行的`onmouseout`事件中直接移除`.bg`类,而不是尝试去清除其他行的颜色。 综上所述,通过结合HTML、CSS和JavaScript,我们可以实现表格行的动态变色效果。这种效果提高了用户对...

    【JavaScript源代码】JavaScript canvas实现九宫格切图效果.docx

    `onload`事件监听器确保在图片完全加载后才执行`drawImage`函数,防止在图片未加载时尝试绘制导致的错误。 4. 绘制原始图片到主Canvas: ```javascript function drawImage() { cxt.drawImage(img, 0, 0, img....

    【JavaScript源代码】Vue 实例中使用$refs的注意事项.docx

    而 `v-show` 通过改变 CSS 的 `display` 属性控制元素的可见性,元素始终会被渲染,所以即使在初次渲染时,`$refs` 也能获取到元素。 4. **`ref` 的使用位置**:`ref` 可以添加在组件上,也可以添加在普通 HTML ...

Global site tag (gtag.js) - Google Analytics