1.ID Rules
2.Class Rules
3. Tag Rules
4. General Rules
The common understanding of efficiency comes from "High-Performance Website Construction" published by Steve Souders in 2009 Starting with "Advanced Guide", although the book lists it in more detail, you can also view the complete reference list here, or you can view more details in Google's "Best Practices for Efficient CSS Selectors".
In this article I want to share some simple examples and guidelines that I use to write high-performance CSS. These are inspired by the guide to efficient CSS written by MDN and follow a similar format.
1. Avoid excessive restraint
As a general rule, don't add unnecessary constraints.
// Oops
ul#someid {. .}
.menu#otherid{..}
// OK
#someid {..}
#otherid {..}
2. The descendant selector is the worst
Not only is the performance low, but the code is also very fragile. The html code and the css code are severely coupled. When the html code structure changes, the CSS must also be modified. , how bad this is, especially in large companies, the people who write HTML and CSS are often not the same people.
// It sucks
html div tr td {..}
3. Avoid chain (intersection) selectors
This is similar to the over-constraint situation. A more sensible approach is to simply create a new CSS class selector.
// Oops
.menu.left. icon {..}
// OK
.menu-left-icon {..}
4. Adhere to the KISS principle
Imagine we have the following DOM:
The following are the corresponding rules...
/ / Bad
#navigator li a {..}
// Good
#navigator {..}
5. Use compound (compact) syntax
Use compound syntax as much as possible.
// Oops
.someclass {
padding-top: 20px;
padding-bottom: 20px;
padding-left: 10px;
padding-right: 10px;
background: #000;
background-image: url (../imgs/carrot.png);
background-position: bottom;
background-repeat: repeat-x;
}
// Okay
.someclass {
padding: 20px 10px 20px 10px;
background: #000 url(../imgs/carrot.png) repeat-x bottom;
}
6. Avoid unnecessary namespaces
// Bad
.someclass table tr.otherclass td.somerule {..}
//Good
.someclass .otherclass td.somerule { ..}
7. Avoid unnecessary repetition
Combine repeated rules as much as possible.
// Oops
.someclass {
color: red;
background: blue;
font-size: 15px;
}
.otherclass {
color: red;
background: blue ;
font-size: 15px;
}
// OK
.someclass, .otherclass {
color: red;
background: blue;
font-size: 15px;
}
8. Streamline the rules as much as possible
Based on the above rules, you can further merge Repeated rules in different categories.
// Oops
.someclass {
color: red;
background: blue;
height: 150px;
width : 150px;
font-size: 16px;
}
.otherclass {
color: red;
background: blue;
height: 150px;
width : 150px;
font-size: 8px;
}
// OK
.someclass, .otherclass {
color: red;
background: blue; height: 150px;
width: 150px;
}
.someclass {
font-size: 16px;
}
.otherclass {
font-size: 8px;
}
9. Avoid unclear naming conventions
It is best to use names that express semantics. A good CSS class name should describe what it is rather than what it looks like.
10. Avoid !importants
In fact, you should also be able to use other high-quality selectors.
11. Follow a standard declaration order
While there are some common ways to order CSS properties, below is a popular way that I follow.
.someclass {
/* Positioning */
/* Display & Box Model */
/* Background and typography styles */
/* Transitions */
/* Other */
}
12. Organized code format
The readability of the code is directly proportional to the ease of maintainability. Below is the formatting method I follow.
// Oops
.someclass-a, .someclass-b, .someclass-c, .someclass-d {
...
}
// Okay
.someclass-a,
.someclass-b ,
.someclass-c,
.someclass-d {
...
}
// Good practice
.someclass {
background-image :
linear-gradient(#000, #ccc),
linear-gradient(#ccc, #ddd); 1px 1px #ddd inset;
}
Obviously, these are just a few of the rules that I try to follow in my own CSS in order to be more efficient and maintainable. If you want to read more, I recommend reading MDN’s Guide to Writing Efficient CSS and Google’s Guide to Optimizing Browser Rendering.

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Atom editor mac version download
The most popular open source editor

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Dreamweaver Mac version
Visual web development tools