CSS:CSS 在工程中改变——面向对象的CSS (OO CSS)
一、OO CSS 的概念解读
(一)众多开发者忽视了CSS的表现,认为其太过简单,是一种机械的工作,而把更多关注在JS的性能或者其他方面。
(二)OO CSS 将页面可重用元素抽象成一个类,用class 加以描述,而与其对应的html 即可看成是此类的一个实例。
二、OO CSS 的作用
(一)加强代码复用以便方面维护。
(二)减少 CSS 体积(用父类的即可)。
(三)提升渲染效率。
(四)组件库思想、栅格布局可共同、减少选择器、方面扩展。
三、OO CSS 的注意事项(使用高效CSS时需要注意的问题)
(一)不要直接定义子节点,应把共性声明放到父类。
.mod .inner {...} // .mod 下面的 inner
.inner {...} // 不是很建议的声明
(二)结构与皮肤相分离。
<div class="container simpleExt"></div> //html 结构
.container {...} //控制结构的class
.simpleExt {...} //控制皮肤的class
(三)容器与内容相分离。
<div class="container"><ul><li>排行</li></ul></div> //html 结构
.container ul{...} //ul依赖了容器
<div class="container"><ul class="rankList"><li>排行</li></ul></div> //html 结构
.rankList ul{...} //解除与容器的依赖,可以从一个容器转移到其他容器
(四)抽象出可重用的元素,建好组件库,在组件库内寻找可用的元素组装页面。
(五)往你想要扩展的对象本身增加 class 而不是其父节点。
(六)对象应该保持独立性
<div class="container"><div class="mod"></div></div> //html 结构
.container {...}
.container .mod {...} //控制结构的class
//应该写成如下:
<div class="container mod"> </div> //html 结构
(七)避免使用ID选择器,权重太高,无法重用。
(八)避免位置相关的样式
#header .container {...}
#footer .container {...}
//可直接写成 .container {...}
#header h1 {...}
#footer h1 {...}
h1,.h1 { }
h2,.h2 { }
<h1 class="h6"></h1>
(九)保证选择器相同的权重
(八)类名应该剪短、清晰、语义化,OO CSS 的名字并不影响html 语义化
CSS:CSS 在工程中改变——面向对象的CSS (OO CSS)的更多相关文章
- CSS在工程中改变之面向对象的 CSS
oocss的概念 众多开发者忽视了css的表现(认为它) oocss将页面可重用的元素抽象成一个类,用class加以描述,而与其对应的HTML即可看成是此类的一个实例. oocss的作用 1.加强代码 ...
- vs2015web工程中的html引用压缩后css后无法智能提示的问题解决
环境:win10x64 vs2015企业版 项目:空白web项目(.net framework4) 问题:html页面加入压缩后的css(eg:bootstrap.min.css),编码的时候无法智能 ...
- css鼠标手型cursor中hand与pointer
css鼠标手型cursor中hand与pointer Example:CSS鼠标手型效果 <a href="#" style="cursor:hand"& ...
- 前端开发:面向对象与javascript中的面向对象实现(一)
前端开发:面向对象与javascript中的面向对象实现(一) 前言: 人生在世,这找不到对象是万万不行的.咱们生活中,找不到对象要挨骂,代码里也一样.朋友问我说:“嘿,在干嘛呢......”,我:“ ...
- 前端开发:javascript中的面向对象
前端开发:面向对象与javascript中的面向对象实现(一) 面向对象理解: 面向对象是一种对现实世界理解和抽象的方法,是一种先进的程序设计理念,是一种比较抽象的,多形态的设计模式.我们可以这么理解 ...
- Atitit.css 规范 bem 项目中 CSS 的组织和管理
Atitit.css 规范 bem 项目中 CSS 的组织和管理 1. 什么是BEM?1 1.1. 块(Block)2 1.2. 元素(Element)2 1.3. BEM树(和DOM树类似).3 ...
- iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ
iOS之在webView中引入本地html,image,js,css文件的方法 2014-12-08 20:00:16CSDN-sky_2016-点击数:10292 项目需求 最近开发的项 ...
- Web开发中20个很有用的CSS库
来源: 微信公众号文章 在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供了一系列功能和特性.每个月都有无数个围绕CSS的工具被开发者发布以简化WEB开发.像CSS库,框架,应用这 ...
- Web 开发中 20 个很有用的 CSS 库
转自:http://www.oschina.net/translate/css-libraries-for-developers 在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供 ...
随机推荐
- 详解Spring中的Profile
前言 由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息.ZooKeeper的信息.数据库连接.Redis服务器地址等),导致实际现网的配置参数与测试服务器参数 ...
- kafka存储机制
kafka存储机制 @(博客文章)[storm|大数据] kafka存储机制 一关键术语 二topic中partition存储分布 三 partiton中文件存储方式 四 partiton中segme ...
- JMS基本概念之一
The Java Message Service(JMS) API is a messaging standard that allows application components based o ...
- 使用ADB管理Andorid系统软件
# Usageadb shell pm list packages -fadb shell pm list packages -eadb shell pm list packages -dadb sh ...
- Objective-C-Category类别
Object-C开发的时候有的时候会用到Category类,类似于Java和C#中扩展类,就是如果你觉得如果你觉得常用的方法在String中没有,可以根据业务需求和个人喜好写一个扩展类,然后在其中补充 ...
- Jquery中parent()和parents()
一.parent()方法 此方法取得匹配元素集合中每个元素的紧邻父元素,也就是第一级父元素,而不是所有的祖先元素.所取得的父元素集合也可以使用表达式进行筛选. 二.parents()方法 此方法取得一 ...
- Logging with PSR-3 to Improve Reusability
可以用composer的autoload来,导入自己写的类库. composer dump-autoload -o ----------------> 改成 composer update ...
- Python批量处理CSV文件
#encoding: utf-8 __author__ = 'DELL' import csv import glob import datetime import sys import os rel ...
- ufldl学习笔记与编程作业:Softmax Regression(vectorization加速)
ufldl学习笔记与编程作业:Softmax Regression(vectorization加速) ufldl出了新教程,感觉比之前的好.从基础讲起.系统清晰,又有编程实践. 在deep learn ...
- C# 单元测试几个方法的用法
单元测试的基本方法是调用被测代码的函数,输入函数的参数值,获取返回结果,然后与预期测试结果进行比较,如果相等则认为测试通过,否则认为测试不通过. 1.Assert类的使用 Assert.Inconcl ...