面向对象的CSS

  • OO CSS的概念解读
  • OO CSS的作用和注意事项
  • OO CSS代码实战

众多开发者忽视了CSS的表现(认为他太过简单,是一种机械的工作),而且更多关注在JavaScript的性能上或者其他方面。

OO CSS将页面可重用元素抽象成一个类,用Class加以描述,而与其对应的HTML即可看成是此类的一个实例。

OO CSS 的作用和注意事项——作用

  1. 加强代码复用以方便维护
  2. 减小CSS体积
  3. 提升渲染效率(逐层渲染)
  4. 组件库思想(和美工对接)、栅格布局可共用、减少选择器、方便扩展

OO CSS 的作用和注意事项——注意事项

不要直接定义子节点,应把共性声明放到父类

.inner{}  // 不是很建议的声明
.mod .inner{} //.mod下面的inner

1、结构与皮肤相分离

<div class="container simpleExt"></div>  //html结构 (不建议这样)
.container{} //控制结构的class
.simpleExt{} // 控制皮肤的class

2、容器和内容相分离

<div class="container"><ul><li>排行</li></ul></div>
.container ul{}  //ul依赖了容器
<div class="container"><ul class="rankList"><li>排行</li></ul></div>
.rankListul li{}  //解除与容器的依赖,可以从一个容器转移到其他容器

4.抽象出可重用的元素,建好组件库,在组件库内寻找可用的元素组装页面(只要把最外层的class引进来,然后去组件库找类,组装页面)

5、往你想要扩展的对象本身添加class而不是他的父节点

6、对象应保持独立性

<div class="container"><div class="mod"></div></div>  //htlm结构
.container{}    .container .mod{}  //控制结构的class
<div class="container mod"></div>

7、避免使用ID选择器,权重太高,无法重用

8、避免位置相关的样式

#header .container{},#footer .container{}
.container{}  //上面的直接提出来就行,肯定有共性的。
#header h1{},#footer h1{}//如果是有不同的,可以像下面这样
h1 .h1{}  h2 .h2{}      <h1><div class="h6"></div></h1>

9、保证选择器相同的权重(不要去嵌套太多,不然状态改变很麻烦)

10、类名 剪短 清晰 语义化 OOCSS的名字并不影响HTML语义化

常用CSS库

对于OO CSS来说,这些库就相当于父类,父类做了本不该你做的事情

Reset CSS

杀伤力也较大,会把我们想要的不想要的都给设置一个初始样式
做了一个统一回归
之后有了normalize.css,做了一个改进

normalize.css

它只给body设置了padding:0;margin:0;
它做的是保证每个浏览器显示效果统一,相当于一种补充,但是有些默认的还没置掉,支队body做了重置

Neat.css

它是基于normalize和reset结合的
解决低级浏览器Bug(这是normalize的优点)
统一效果,但不盲目重置为0
向后兼容
考虑响应式
考虑移动设备
还有一些特色等可以到官网查看,在我们项目中也可以直接下载使用

OO CSS(面向对象 CSS)相关推荐

  1. oocss_面向对象CSS(OOCSS)的基础

    前端开发Swift发展,并且每年都添加许多新技术. 对于开发人员来说,跟上所有事情可能是一场斗争. 在Sass和PostCSS之间,很容易迷失在开发工具的海洋中. 一种较新的技术是面向对象CSS,也简 ...

  2. CSS:CSS+DIV布局网页

    现代网页布局:CSS+DIV: 一般的网页都是顺序布局的,很难达到我们需要的网页布局格式,此时使用DIV进行分层布局,类似于盒子,对每一部分内容进行设计.这是现在主流的网页布局方式,使用DIV+CSS ...

  3. 解决vue-awesome-swiper中swiper/css/swiper.css无法导入问题

    0 文章太长懒得看 将语句:import 'swiper/css/swiper.css' 修改为:import 'swiper/swiper-bundle.css' 1 出错原因 报错提示为 * sw ...

  4. 代码:CSS——reset.css

    代码:CSS--reset.css http://www.cnblogs.com/qq21270/p/5577856.html 图片列表 A链接标签: /*链接样式.文字颜色*/a{color:#66 ...

  5. css expressionr,CSS自定义属性expression_r

    CSS的出现使网页制作者在对网页元素的控制方便许多,当然,有利必有弊,CSS只能对颜色.大小.距离等静态样式有效,对于要实现某些html元素的动态样式就显得有些力不从心.有了CSS的自定义属性expr ...

  6. html css精灵,谈谈CSS Sprites(css精灵)

    CSS Sprites在国内很多人叫css精灵,其实这个技术不新鲜,这个技术老到什么程度呢,我不敢确定,但是我看到最早的关于CSS Sprites是在Dave Shea的<CSS Sprites ...

  7. #CSS# 初识CSS

    CSS:Cascading Style Sheet (层叠样式表) CSS的内容可以分开写入CSS文件中,PHP文件中加入以下语句即可: <link herf="css/style.c ...

  8. html图片分开,webpack单独分离打包css,css里引用的图片路径错误,怎么解决?

    现在我的这个项目是将css和js单独打包出来,打包后的目录结构和打包前一致. 打包前: 从这张图可以看到,如果是css文件夹根目录下的css文件引用images文件夹下的图片应该使用../就可以了,如 ...

  9. html坐标轴背景色,CSS 背景(css background)

    CSS 背景-CSS background 一.Css background背景语法   -   TOP CSS背景基础知识CSS 背景这里指通过CSS对对象设置背景属性,如通过CSS设置背景各种样式 ...

  10. 奇妙的 CSS shapes(CSS图形)

    CSS 发展到今天已经越来越强大了.其语法的日新月异,让很多以前完成不了的事情,现在可以非常轻松的做到.今天就向大家介绍几个比较新的强大的 CSS 功能: clip-path shape-outsid ...

最新文章

  1. 数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全
  2. 深度丨2018年AI依然要面临解决的的技术难题
  3. slope one 推荐算法python 代码_java和python实现一个加权SlopeOne推荐算法
  4. typedef的用法总结
  5. 网络钓鱼者钓到威胁情报公司的身上 黑客惨遭溯源
  6. 深度学习(五十九)mxnet移植至android
  7. 7、Fiddler的HTTP统计视图
  8. SQL Server Integration Services(SSIS)中的脚本任务调试
  9. python:from skimage.measure import find_contours
  10. jQuery之筛选函数
  11. 非常强的用户体验的网站功能
  12. iocomp iPlot使用说明15 Adding Data添加数据
  13. SpringBoot 快速整合 QuartZ
  14. Charles的使用方法
  15. 经典字符串匹配算法——KMP算法
  16. cmmi实践访谈测试ppt_CMMI3_实践篇.ppt
  17. Power Query M语言全部list函数,快速分类掌握
  18. DFS和BFS算法框架
  19. Windows10安装韩语输入法详细教程(图文)
  20. 本地计算机无法启动dhcp服务,Windows10无法启用dhcp服务怎么办?

热门文章

  1. DL|CNN可视化研究综述(一)
  2. 2021-11-19迭代器的设计原则和iterator Traits的作用与设计
  3. MFC学习之 利用 Codejock XtremeToolkitPro 换肤
  4. 创业公司天使轮、A轮、融资时股权分配
  5. vue3 router.push 传参路由跳转错误提示 Argument type {xxx} is not assignable to parameter type RouteLocationRaw
  6. [GIS热点] 数字智慧工程-数字城市、数字中国、数字地球、智慧城市、智慧地球
  7. yshon对讲机如何调频率_【HAM基础】数字对讲机信号干扰类型概述
  8. linux 内核 权限,linux – 内核模块执行中的不同权限
  9. php 用户登陆检验,php实现的简单检验登陆类
  10. 如何在树莓派上运行雷神之锤III