前端总结一下前端css样式规范

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端总结一下前端css样式规范相关的知识,希望对你有一定的参考价值。

(总结一下前端css样式规范)

前端样式CSS 规范

通用规范

// bad
padding-bottom: 0px;
margin: 0em;
// good
padding-bottom: 0;
margin: 0;

如果 CSS 可以做到,就不要使用 JS,建议并适当缩写值,提高可读性,特殊情况除外 “建议并适当”是因为缩写总是会包含一系列的值,而有时候我们并不希望设置某一值,反而造成了麻烦,那么这时候你可以不缩写,而是分开写。 当然,在一切可以缩写的情况下,请务必缩写,它最大的好处就是节省了字节,便于维护,并使阅读更加一目了然。

// bad
.box
border-top-style: none;
font-family: palatino, georgia, serif;
font-size: 100%;
line-height: 6;
padding-bottom: 2em;
padding-left: 1em;
padding-right: 1em;
padding-top: 0;

// good
.box
border-top: 0;
font: 100%/6 palatino, georgia, serif;
padding: 0 1em 2em;

声明应该按照下表的顺序:左到右,从上到下

display 	width	font
visibility	height	text-align
position	margin	text-decoration
float	padding	vertical-align
clear	border	white-space
list-style	overflow	color
top	min-width	background
// bad
.box 
	font-family: Arial, sans-serif;
	border: 3px solid #ddd;
	left: 30%;
	position: absolute;
	text-transform: uppercase;
	background-color: #eee;
	right: 30%;
	isplay: block;
	font-size: 5rem;
	overflow: hidden;
	padding: 1em;
	margin: 1em;


// good
.box 
	display: block;
	position: absolute;
	left: 30%;
	right: 30%;
	overflow: hidden;
	margin: 1em;
	padding: 1em;
	background-color: #eee;
	border: 3px solid #ddd;
	font-family: Arial, sans-serif;
	font-size: 5rem;
	text-transform: uppercase;

元素选择器应该避免在 scoped 中出现 官方文档说明[1]:在 scoped 样式中,类选择器比元素选择器更好,因为大量使用元素选择器是很慢的。

分类的命名方法

使用单个字母加上"-"为前缀

统一语义理解和命名

模块(.m-)、元件(.u-)

功能(.f-)

皮肤(.s-)

状态(.z-)

sass 规范

当使用 Sass 的嵌套功能的时候,重要的是有一个明确的嵌套顺序,以下内容是一个 SCSS 块应具有的顺序。

当前选择器的样式属性

父级选择器的伪类选择器 (:first-letter, :hover, :active etc) 伪类元素 (:before and :after) 父级选择器的声明样式 (.selected, .active, .enlarged etc.) 用 Sass 的上下文媒体查询 子选择器作为最后的部分

.product-teaser 
// 1. Style attributes
display: inline-block;
padding: 1rem;
background-color: whitesmoke;
color: grey;
// 2. Pseudo selectors with parent selector
&:hover 
color: black;

// 3. Pseudo elements with parent selector
&:before 
content: "";
display: block;
border-top: 1px solid grey;

&:after 
content: "";
display: block;
border-top: 1px solid grey;

// 4. State classes with parent selector
&.active 
background-color: pink;
color: red;
// 4.2. Pseuso selector in state class selector
&:hover 
color: darkred;


// 5. Contextual media queries
@media screen and (max-width: 640px) 
     display: block;
font-size: 2em;

// 6. Sub selectors
> .content > .title 
font-size: 2em;
// 6.5. Contextual media queries in sub selector
@media screen and (max-width: 640px) 
letter-spacing: 2em;
text-transform: uppercase;



特殊规范

对用页面级组件样式,应该是有作用域的 对于公用组件或者全局组件库,我们应该更倾向于选用基于 class 的 BEM 策略

<style lang=scss></style> // bad
<!-- 使用 scoped 作用域 -->
<style lang=scss scoped></style> // good
<!-- 使用 BEM 约定 -->
<style> // good
.c-Button 
border: none;
border-radius: 2px;

.c-Button--close 
background-color: red;

</style>

References [1] 官方文档说明: https://cn.vuejs.org/v2/style-guide/#scoped-中的元素选择器-谨慎使用 [2] 风格指南: https://cn.vuejs.org/v2/style-guide/ [3] 更好的css方案: http://nec.netease.com/ [4] 前端js规范文档: https://www.xuanfengge.com/fedoc/

以上是关于前端总结一下前端css样式规范的主要内容,如果未能解决你的问题,请参考以下文章

黑马程序员前端学习的总结HTML+CSS

黑马程序员前端专栏css入门总结

前端知识总结--性能优化

CSS总结前端三剑客之一(CSS基础)

CSS总结前端三剑客之一(CSS基础)

前端人员必看CSS命名规范