首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
netty
runtime
heatmap
hash
schema
string
window
python2
solr
post
datetime
substring
dagger
spring
jar
join
less
hashset
io
timezone
eval
client
testing
frameworks
web3
match
go
heap
integer
c语言
jsp
ascii
javascript
email
sum
iostream
select
settings
default
vba
php8
stream
usb
audio
split
format
shell
const
grid
cPlusPlus
java
erlang
python3
md5
lua
command
range
bytecode
rsa
replace
header
flutter
char
typescript
node.js
httpclient
keyword
text
instance
golang
vbscript
bash
metadata
callback
dll
case
process
foreach
uml
当前位置:
开发笔记
>
编程语言
> 正文
深入理解网易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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
go
深入分析十大PHP开发框架
随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ...
[详细]
蜡笔小新 2024-12-17 11:15:55
go
利用决策树预测NBA比赛胜负的Python数据挖掘实践
本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ...
[详细]
蜡笔小新 2024-12-23 09:07:40
go
技术分享:从动态网站提取站点密钥的解决方案
本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ...
[详细]
蜡笔小新 2024-12-28 04:11:47
io
Python 中使用 Pyecharts 绘制雷达图详解
本文将详细介绍如何在 Python 环境中利用 Pyecharts 库来创建美观且功能丰富的雷达图。适合需要图形化展示多维度数据的开发者和研究人员。 ...
[详细]
蜡笔小新 2024-12-15 14:59:36
go
开发笔记:Python:GUI之tkinter学习笔记1控件的介绍及使用
开发笔记:Python:GUI之tkinter学习笔记1控件的介绍及使用 ...
[详细]
蜡笔小新 2024-12-13 08:51:29
go
golang常用库:配置文件解析库/管理工具viper使用
golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ...
[详细]
蜡笔小新 2024-12-28 13:47:52
heap
优化ListView性能
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
io
高效解决应用崩溃问题!友盟新版错误分析工具全面升级
友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ...
[详细]
蜡笔小新 2024-12-26 14:11:47
go
基因组浏览器中的Wig格式解析
本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ...
[详细]
蜡笔小新 2024-12-26 11:21:09
go
Python文本处理与可视化:分词及词云生成
本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ...
[详细]
蜡笔小新 2024-12-26 08:37:18
go
如何在Kendo UI for jQuery中将行标题显示为可点击链接
本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ...
[详细]
蜡笔小新 2024-12-21 17:07:41
go
Django 使用slug field时遇到的问题
Django 使用slug field时遇到的问题 ...
[详细]
蜡笔小新 2024-12-20 16:18:11
io
PHPCMS 中 str_cut 函数的详细解析与应用
本文深入探讨 PHPCMS 平台中的字符串截取函数 str_cut 的使用方法,该函数常用于控制输出的标题或内容摘要长度,有效避免因过长的文本导致的页面布局问题。通过本文,读者将掌握如何灵活运用此函数,包括处理 HTML 标签等高级技巧。 ...
[详细]
蜡笔小新 2024-12-17 15:48:52
io
DataGridView多列排序实现方法
本文介绍如何在Windows Forms应用程序中使用C#实现DataGridView的多列排序功能,包括升序和降序排序。 ...
[详细]
蜡笔小新 2024-12-17 15:41:42
c语言
400string(99) php,PHP: 字符串Manual
addcslashes—以C语言风格使用反斜线转义字符串中的字符addslashes—使用反斜线引用字符串bin2hex—函数把包含数据的二进制字符串转换为十六进制值chop—rt ...
[详细]
蜡笔小新 2024-12-15 12:31:43
aixiangsui2011
这个家伙很懒,什么也没留下!
Tags | 热门标签
netty
runtime
heatmap
hash
schema
string
window
python2
solr
post
datetime
substring
dagger
spring
jar
join
less
hashset
io
timezone
eval
client
testing
frameworks
web3
match
go
heap
integer
c语言
RankList | 热门文章
1
实现上拉加载更多的自定义 SwipeRefreshLoadLayout
2
如何在夜神模拟器中使用按键精灵
3
优化DataSnap Tcp长连接数限制的两种策略
4
路由器串行接口互联地址可以不在同一个网段
5
一个JS正则的问题 求解答
6
python并发打开网页_python并发_线程
7
基于MATLAB的TDOA定位:Chan算法与Taylor算法对比仿真
8
深入解析Linux中的slabtop命令
9
教你从写一个迷你koarouter到阅读koarouter源码
10
英特尔推出第三代至强可扩展处理器及傲腾持久内存,AI性能显著提升
11
什么是球形网络摄像机
12
WPF MVVM: 动态添加控件与数据绑定的最佳实践
13
SAP安装与功能探索
14
天玑云客:如何应对微信公众号缺少留言评论功能的问题
15
HDOJ 1083 课程安排【匈牙利算法与二分图匹配】
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有