首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
erlang
md5
php7
php5
object
audio
future
io
replace
command
const
cpython
hashtable
buffer
header
js
hash
flutter
email
node.js
blob
dockerfile
yaml
cPlusPlus
eval
get
expression
httpclient
function
process
go
emoji
python
join
match
chat
php8
hook
javascript
stream
ip
cmd
case
python2
datetime
bit
window
golang
httprequest
timezone
rsa
client
jsp
shell
metadata
plugins
usb
input
integer
subset
数组
triggers
ascii
spring
list
nodejs
uri
runtime
default
range
php
hashset
request
heap
version
vba
vbscript
substring
filter
当前位置:
开发笔记
>
编程语言
> 正文
深入理解网易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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
get
编写有趣的VBScript恶作剧脚本
本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ...
[详细]
蜡笔小新 2024-12-28 09:46:23
get
新浪笔试题
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
js
在Linux系统中配置并启动ActiveMQ
本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ...
[详细]
蜡笔小新 2024-12-27 14:38:54
js
使用Windows批处理脚本监控并重启Java应用程序
本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ...
[详细]
蜡笔小新 2024-12-27 10:44:39
js
QUIC协议:快速UDP互联网连接
QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ...
[详细]
蜡笔小新 2024-12-28 12:33:18
js
2023 ARM嵌入式系统全国技术巡讲
2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ...
[详细]
蜡笔小新 2024-12-28 11:58:48
get
技术分享:从动态网站提取站点密钥的解决方案
本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ...
[详细]
蜡笔小新 2024-12-28 04:11:47
js
Linux 系统启动故障排除指南:MBR 和 GRUB 问题
本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ...
[详细]
蜡笔小新 2024-12-27 20:40:29
get
深入理解Cookie与Session会话管理
本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ...
[详细]
蜡笔小新 2024-12-27 18:20:43
js
Xcode 中多行代码缩进技巧
本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ...
[详细]
蜡笔小新 2024-12-27 17:52:34
js
Linux 自动化安装脚本详解
本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ...
[详细]
蜡笔小新 2024-12-27 16:33:32
io
DNN Community 和 Professional 版本的主要差异
本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ...
[详细]
蜡笔小新 2024-12-27 13:14:08
js
如何在WPS Office for Mac中调整Word文档的文字排列方向
本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ...
[详细]
蜡笔小新 2024-12-27 12:34:14
js
几何画板展示电场线与等势面的交互关系
几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ...
[详细]
蜡笔小新 2024-12-27 10:46:07
js
MySQL中枚举类型的所有可能值获取方法
本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ...
[详细]
蜡笔小新 2024-12-27 10:36:44
aixiangsui2011
这个家伙很懒,什么也没留下!
Tags | 热门标签
erlang
md5
php7
php5
object
audio
future
io
replace
command
const
cpython
hashtable
buffer
header
js
hash
flutter
email
node.js
blob
dockerfile
yaml
cPlusPlus
eval
get
expression
httpclient
function
process
RankList | 热门文章
1
Python While 循环示例解析
2
自己写了个C++计时器类,可用作秒表和计时
3
MathProg语言入门指南及应用示例
4
androidthreadtest
5
jme-燃烧的火焰
6
Web安全入门:MySQL基础操作与SQL注入防范
7
如何在Excel 2013/2016/2019中转换mmddyy文本为标准日期格式
8
技术分享:从Oracle数据库中使用REGEXP_SUBSTR提取括号内容
9
Flutter入门指南:实现自动关闭的对话框与提示
10
天然气锅炉运行机制解析
11
解决IE9及以下浏览器图片上传预览问题
12
储光羲《荥阳马氏二子》解析与译文
13
使用ES6特性动态调整JavaScript对象属性名
14
Java JDK 中的快速排序实现及其过程解析
15
2023年最新指南:注册美国区Apple ID
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有