输入CSS代码
粘贴需要格式化的CSS代码
0 字符
0 行
格式化选项
选择格式化方式
格式化结果
格式化后的CSS代码
原始大小:
0 字符
格式化后:
0 字符
压缩率:
0%
选择器提取
提取CSS中的所有选择器
代码示例
以下是在不同编程语言中格式化CSS的代码示例:
JavaScript CSS格式化
// CSS压缩
function minifyCSS(css) {
return css
.replace(/\/\*[\s\S]*?\*\//g, '') // 移除注释
.replace(/\s+/g, ' ') // 合并空白
.replace(/\s*([{}:;,])\s*/g, '$1') // 移除符号周围的空白
.replace(/;\}/g, '}') // 移除最后一个分号
.trim();
}
// CSS美化
function beautifyCSS(css, indent = ' ') {
let formatted = '';
let indentLevel = 0;
// 移除多余空白
css = css.replace(/\s+/g, ' ');
// 处理每个字符
for (let i = 0; i < css.length; i++) {
const char = css[i];
if (char === '{') {
formatted += ' {\n' + indent.repeat(indentLevel + 1);
indentLevel++;
} else if (char === '}') {
indentLevel--;
formatted += '\n' + indent.repeat(indentLevel) + '}';
} else if (char === ';') {
formatted += ';\n' + indent.repeat(indentLevel);
} else if (char === ',') {
formatted += ', ';
} else {
formatted += char;
}
}
return formatted.trim();
}
// 提取CSS选择器
function extractSelectors(css) {
const selectorRegex = /([^{]+){/g;
const selectors = [];
let match;
while ((match = selectorRegex.exec(css)) !== null) {
const selector = match[1].trim();
if (selector) {
selectors.push(selector);
}
}
return selectors;
}
// 提取CSS属性
function extractProperties(css) {
const propertyRegex = /([^{}:]+):\s*([^{};]+);/g;
const properties = [];
let match;
while ((match = propertyRegex.exec(css)) !== null) {
properties.push({
property: match[1].trim(),
value: match[2].trim()
});
}
return properties;
}
// 按字母排序属性
function sortCSSProperties(css) {
const blocks = css.split('}');
const sortedBlocks = blocks.map(block => {
const parts = block.split('{');
if (parts.length !== 2) return block;
const selector = parts[0].trim();
const properties = parts[1].split(';').filter(p => p.trim());
// 按字母排序属性
properties.sort((a, b) => {
const propA = a.split(':')[0].trim();
const propB = b.split(':')[0].trim();
return propA.localeCompare(propB);
});
return `${selector} {\n${properties.map(p => ` ${p.trim()}`).join(';\n')};\n}`;
});
return sortedBlocks.join('\n');
}
// 颜色格式转换 HEX → RGB
function hexToRGB(hex) {
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
function convertHexToRGBString(hex) {
const rgb = hexToRGB(hex);
return rgb ? `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})` : hex;
}
Python CSS处理
import re
# CSS压缩
def minify_css(css):
# 移除注释
css = re.sub(r'/\*[\s\S]*?\*/', '', css)
# 合并空白
css = re.sub(r'\s+', ' ', css)
# 移除符号周围的空白
css = re.sub(r'\s*([{}:;,])\s*', r'\1', css)
# 移除最后一个分号
css = css.replace(';}', '}')
return css.strip()
# CSS美化
def beautify_css(css, indent=' '):
formatted = ''
indent_level = 0
# 移除多余空白
css = re.sub(r'\s+', ' ', css)
i = 0
while i < len(css):
char = css[i]
if char == '{':
formatted += ' {\n' + indent * (indent_level + 1)
indent_level += 1
elif char == '}':
indent_level -= 1
formatted += '\n' + indent * indent_level + '}'
elif char == ';':
formatted += ';\n' + indent * indent_level
elif char == ',':
formatted += ', '
else:
formatted += char
i += 1
return formatted.strip()
# 提取CSS选择器
def extract_selectors(css):
pattern = r'([^{]+){'
selectors = re.findall(pattern, css)
return [s.strip() for s in selectors if s.strip()]
# 提取CSS属性
def extract_properties(css):
pattern = r'([^{}:]+):\s*([^{};]+);'
matches = re.findall(pattern, css)
return [{'property': m[0].strip(), 'value': m[1].strip()} for m in matches]
# 按字母排序属性
def sort_css_properties(css):
blocks = css.split('}')
sorted_blocks = []
for block in blocks:
parts = block.split('{')
if len(parts) != 2:
sorted_blocks.append(block)
continue
selector = parts[0].strip()
properties = parts[1].split(';')
properties = [p.strip() for p in properties if p.strip()]
# 按字母排序
properties.sort(key=lambda x: x.split(':')[0].strip())
formatted_props = '\n '.join([f'{p};' for p in properties])
sorted_blocks.append(f'{selector} {{\n {formatted_props}\n}}')
return '\n'.join(sorted_blocks)
# HEX 转 RGB
def hex_to_rgb(hex_color):
hex_color = hex_color.lstrip('#')
return tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4))
def hex_to_rgb_string(hex_color):
r, g, b = hex_to_rgb(hex_color)
return f'rgb({r}, {g}, {b})'
关于CSS格式化
为什么要格式化CSS?
CSS格式化是指将CSS代码按照一定的规范进行排版和缩进,使代码更易读、易维护。良好的代码格式可以提高团队协作效率,减少代码审查时间,便于后续维护。
CSS压缩 vs 美化
- CSS美化(展开格式):增加缩进、换行,使代码易于阅读和编辑。适合开发环境。
- CSS压缩(精简格式):移除所有不必要的空白、注释,减少文件大小。适合生产环境,可以加快页面加载速度。
CSS属性排序
按照一定规则对CSS属性进行排序,可以让样式表更加规范。常见的排序方式包括:
- 字母顺序:按属性名称的字母顺序排列
- 功能分组:按属性功能分组(定位、盒模型、排版、视觉效果等)
- IE浏览器顺序:按IE浏览器的渲染顺序排列
常见的CSS代码风格
多行格式(推荐用于开发):
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
}
单行格式(适合压缩):
.container{width:100%;max-width:1200px;margin:0 auto}
CSS最佳实践
- 使用有意义的类名和ID名
- 避免使用 !important
- 使用CSS变量(自定义属性)
- 保持选择器简洁
- 使用缩写属性(如 margin、padding)
- 考虑使用预处理器(Sass、Less)