首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
post
actionscrip
plugins
timezone
loops
triggers
golang
node.js
python3
random
text
window
md5
metadata
byte
heap
bash
heatmap
solr
tags
cmd
dagger
hook
c语言
format
main
fetch
httprequest
express
typescript
chat
yaml
header
controller
blob
frameworks
grid
io
version
java
flutter
split
jsp
sum
foreach
php7
cookie
dockerfile
email
select
spring
search
datetime
config
uri
keyword
hashset
subset
regex
get
instance
require
python2
settings
usb
hashcode
string
hashtable
go
bitmap
javascript
ip
integer
replace
perl
stream
eval
bit
less
当前位置:
开发笔记
>
编程语言
> 正文
深入理解网易NECCSS框架:规范、应用与学习心得
作者:aixiangsui2011 | 来源:互联网 | 2024-12-24 18:08
本文将介绍网易NECCSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。
### 前言
初次接触网易NEC是在三个月前,由一位拥有三年前端开发经验的大牛推荐。经过一段时间的研究和实践,我发现它在组织和优化CSS方面有着独特的优势,因此决定将其引入到公司的项目中,并逐渐喜欢上了这种风格。
最近,我再次阅读了新浪前端专家曹刘阳的《编写高质量代码——Web前端开发修炼之道》(2010年出版),这本书中关于CSS样式文件的分类、整理以及如何写出简洁、高效、可复用的CSS的观点,与NEC的很多理念不谋而合。
### 正文
#### CSS文件分类
根据NEC的建议,CSS文件可以分为三类:
1. **公共型样式**:包括标签重置、默认样式设置、通用布局、模块及扩展、元件及扩展、功能类样式和皮肤类样式。这部分主要用于确保网站的整体布局和基本控件的一致性。
2. **特殊型样式**:当某个页面或模块的样式与整体差异较大时,可以独立引用一个样式文件。这部分主要处理页面具体模块和业务相关的差异性CSS。
3. **皮肤型样式**:如果产品需要换肤功能,可以将颜色、背景等抽离出来,以便于更换网站风格。
这些分类与《编写高质量代码》一书中提到的base.css、common.css和page.css的划分非常相似。
#### CSS内容分类
NEC将CSS内容分为八类,并对各类型的命名给出了建议:
1. **重置(reset)和默认(base)(tags)**:消除浏览器默认样式差异,保证一致性。
2. **统一处理**:统一调用背景图、清除浮动等通用设置。
3. **布局(grid)(.g-)**:分割页面结构,如头部、主体、侧栏等。
4. **模块(module)(.m-)**:语义化的可复用大组件,如导航、登录、评论等。
5. **元件(unit)(.u-)**:不可再分的小控件,如按钮、输入框等。
6. **功能(function)(.f-)**:常用的定位、浮动、边距等样式。
7. **皮肤(skin)(.s-)**:文字色、背景色等,非换肤型网站通常只提取文字色。
8. **状态(.z-)**:表示选中、禁用、激活等状态。
#### CSS命名规范
1. **选择器使用**:建议使用类选择器,避免使用ID选择器以提高复用性。
2. **分类命名方法**:使用单个字母+“-”为前缀,如.g-、.m-、.u-等。
3. **后代选择器命名**:长度大于等于2的类选择器为后代选择器,如.m-list .item、.m-list .text。
4. **简约而不失语义**:相同语义的不同类可以通过加数字或字母区分,如.m-list、.m-list2等。
5. **模块和元件的扩展类**:基类和扩展类的命名方式,如.m-list、.m-list-1等。
6. **防止污染和被污染**:慎用标签选择器,采用类选择器并注意命名方式,如.m-layer.layerxxx、.m-list2 .list2xxx。
### 结语
总的来说,网易NEC的CSS规范非常合理且实用,能够帮助我们组织整站的CSS,写出简洁、规范、高度复用且易于维护的代码。目前,我们的项目中已经全面采用这一写法,并引入了LESS来进一步提升开发效率。
android
asp.net
php
jsp
数据库
css
windows
html
js
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
main
ASP.NET Core 3.1 中的Startup类
Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ...
[详细]
蜡笔小新 2024-12-25 02:13:25
text
深入解析 Django ORM:Model 和 Field 类型
本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ...
[详细]
蜡笔小新 2024-12-24 15:25:10
text
TechStride 网站
TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ...
[详细]
蜡笔小新 2024-12-24 20:04:54
text
深入探索Android系统的内部结构
本文将带领读者深入了解Android系统源码在手机中的实际表现,通过详细的步骤和专业的解释,帮助你更好地理解Android系统的底层运作机制。 ...
[详细]
蜡笔小新 2024-12-24 19:36:38
text
通过Web界面管理Linux日志的解决方案
本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ...
[详细]
蜡笔小新 2024-12-24 17:11:38
express
创建项目:Visual Studio Online 入门指南
本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ...
[详细]
蜡笔小新 2024-12-24 14:27:35
text
深入理解HTML基础语法
本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ...
[详细]
蜡笔小新 2024-12-24 08:21:49
main
解决Selenium浏览器实例化位置导致的闪退问题
本文探讨了在使用Selenium进行自动化测试时,由于webdriver对象实例化位置不同而导致浏览器闪退的问题,并提供了详细的代码示例和解决方案。 ...
[详细]
蜡笔小新 2024-12-23 16:09:49
main
Qt中QSpinBox与QSlider的联动实现
本文介绍如何在Qt框架下将QSpinBox和QSlider组件进行联动,使用户在拖动滑块或修改文本框中的数值时,两个组件能同步更新,从而提供更加直观和便捷的用户体验。 ...
[详细]
蜡笔小新 2024-12-24 19:33:45
main
实现两个线程交替打印数字和字母的同步机制
本文介绍了如何使用Java中的同步方法和同步代码块来实现两个线程的交替打印。一个线程负责打印1到52的数字,另一个线程负责打印A到Z的字母,确保输出顺序为12A34B...5152Z。 ...
[详细]
蜡笔小新 2024-12-24 18:25:02
window
JavaScript 实战与基础案例解析
本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ...
[详细]
蜡笔小新 2024-12-24 16:36:52
window
BZOJ 3196: Tyvj 1730 平衡树问题
探讨了在有序数列中实现多种查询和修改操作的高效数据结构设计,主要使用线段树与平衡树(Treap)结合的方法。 ...
[详细]
蜡笔小新 2024-12-24 15:12:26
window
深入理解T-SQL中的NULL与三值逻辑
本文探讨了SQL Server中的三值逻辑,解释了谓词计算结果为TRUE、FALSE和UNKNOWN的规则。通过具体示例,详细说明了如何正确处理NULL值,并探讨了在不同约束条件下的行为。 ...
[详细]
蜡笔小新 2024-12-24 15:07:57
window
Redis Hash 数据结构详解
本文详细介绍了 Redis 中的 Hash 数据类型及其常用命令。Hash 类型用于存储键值对集合,支持多种操作如插入、查询、更新和删除字段值。此外,文章还探讨了 Hash 类型在实际业务场景中的应用,并提供了优化建议。 ...
[详细]
蜡笔小新 2024-12-24 13:33:33
window
解决U盘安装系统后无法重启的问题
本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ...
[详细]
蜡笔小新 2024-12-24 13:06:59
aixiangsui2011
这个家伙很懒,什么也没留下!
Tags | 热门标签
post
actionscrip
plugins
timezone
loops
triggers
golang
node.js
python3
random
text
window
md5
metadata
byte
heap
bash
heatmap
solr
tags
cmd
dagger
hook
c语言
format
main
fetch
httprequest
express
typescript
RankList | 热门文章
1
表格中一厘米为多少像?
2
整数查找的编程总结
3
计算机关机重启后黑屏,电脑关机后重启屏幕黑屏怎么办
4
synchronized锁升级就是这么的简单
5
注意Java中 new BigDecimal(double val) 的使用_java
6
mysql客户端怎么退出,退出mysql命令行客户端的方法是
7
Improve IE support by not using `for...of`
8
系统维护宝典 Windows系统故障修复技巧
9
按属性给数组分类,reduce
10
word2010 输入的脱机服务器位置,Microsoft Office Servers 2010 常见问题/自述文件
11
《X86汇编从实模式到保护模式》14. 任务和特权级保护
12
hbase伪集群搭建
13
win10远程桌面连接需要网络级别身份验证的完美解决方法!
14
asp.net web 如何调试?
15
人类传说中的吸血鬼种族的由来与发展
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有