CSS 사용법 작성 사양
팀마다 고유한 사양이 있을 수도 있고, 많은 사람들이 여전히 많은 제약 없이 CSS를 작성할 때 생각나는 대로 작성하고 있을 수도 있습니다.
CSS 코드 표준은 여전히 필요하다고 생각합니다. 특히 팀 협력과 다자 공동 작업에서는 표준이 특히 중요합니다.
이 문서에 나열된 것은 실습에서 파생된 상대적으로 좋은 CSS 작성 사양 세트입니다. 대신에 이를 기반으로 자신에게 적합한 CSS 코딩 사양 세트를 개발할 수 있습니다. 자신의 팀의 요구 사항.
또한 더 많은 제안을 받고 함께 개선해 나가기를 바랍니다. 이 사양은 내 Github에서도 볼 수 있습니다. 메시지를 남기거나 PR을 제출하실 수 있습니다.
인코딩 설정
CSS 코드 헤더에 사용되는 UTF-8
인코딩 사용: UTF-8
编码,在 CSS 代码头部使用:
@charset "utf-8";
注意,必须要定义在 CSS 文件所有字符的前面(包括编码注释),
@charset
才会生效。
例如,下面的例子都会使得 @charset
失效:
/* 字符编码 */ @charset "utf-8"; html, body { height: 100%; } @charset "utf-8";
命名空间规范
布局:以 g 为命名空间,例如:.g-wrap 、.g-header、.g-content。
状态:以 s 为命名空间,表示动态的、具有交互性质的状态,例如:.s-current、s-selected。
工具:以 u 为命名空间,表示不耦合业务逻辑的、可复用的的工具,例如:u-clearfix、u-ellipsis。
组件:以 m 为命名空间,表示可复用、移植的组件模块,例如:m-slider、m-dropMenu。
钩子:以 j 为命名空间,表示特定给 JavaScript 调用的类名,例如:j-request、j-open。
命名空间思想
没有选择 BEM
这种命名过于严苛及样式名过长过丑的规则,采取了一种比较折中的方案。
不建议使用下划线 _ 进行连接
节省操作,输入的时候少按一个
shift
.g-header > .g-header-des, .g-content ~ .g-footer { }
로그인 후 복사CSS 파일 모든 문자(인코딩 주석 포함) 앞에
@charset
가 적용됩니다.
예를 들어 다음 예에서는 @charset
가 유효하지 않게 됩니다.
.g-footer, .g-header { position: relative; } .g-content { background: linear-gradient(135deg, deeppink 25%, transparent 25%) -50px 0, linear-gradient(225deg, deeppink 25%, transparent 25%) -50px 0, linear-gradient(315deg, deeppink 25%, transparent 25%), linear-gradient(45deg, deeppink 25%, transparent 25%); } .g-content::before { content: ''; }
네임스페이스 사양
🎜🎜상태: s를 네임스페이스로 사용하면 .s-current, s-selected와 같은 동적 및 대화형 상태를 나타냅니다. 🎜🎜🎜🎜🎜🎜도구: u를 네임스페이스로 사용하면 u-clearfix, u-ellipsis와 같은 비즈니스 논리를 결합하지 않는 재사용 가능한 도구를 나타냅니다. 🎜🎜🎜🎜🎜🎜Component: m은 m-slider, m-dropMenu와 같은 재사용 가능하고 이식 가능한 구성 요소 모듈을 나타내는 네임스페이스입니다. 🎜🎜🎜🎜🎜🎜Hook: j를 네임스페이스로 사용하면 j-request, j-open과 같은 JavaScript 호출과 관련된 클래스 이름을 나타냅니다. 🎜🎜🎜🎜
Layout: g는 네임스페이스입니다(예: .g-wrap, .g-header, .g-content).
네임스페이스 아이디어🎜
🎜🎜선택의 여지가 없습니다BEM
명명 규칙이 너무 엄격하고 스타일 이름이 너무 길고 보기 흉하기 때문에 더 타협적인 솔루션이 채택되었습니다. 🎜🎜🎜연결 시 밑줄_을 사용하는 것은 권장되지 않습니다. 🎜🎜
- 🎜🎜🎜저장 작업, 입력할 때 JavaScript 변수 이름을 구별하려면🎜🎜🎜🎜🎜🎜 키를 하나 덜 누르세요🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜selector🎜🎜🎜🎜🎜규칙에 여러 개가 포함된 경우 여러 선택기를 선택하면 각 선택기가 자체 줄을 차지합니다. 🎜🎜🎜🎜🎜, +, ~, > 선택기 양쪽에 공백을 남겨두세요. 🎜🎜🎜🎜
当规则声明块中有多个样式声明时,每条样式独占一行。
在规则声明块的左大括号 { 前加一个空格。
在样式属性的冒号 : 后面加上一个空格,前面不加空格。
在每条样式后面都以分号 ; 结尾。
规则声明块的右大括号 } 独占一行。
每个规则声明间用空行分隔。
所有最外层引号使用单引号 ' 。
当一个属性有多个属性值时,以逗号 , 分隔属性值,每个逗号后添加一个空格,当单个属性值过长时,每个属性值独占一行。
当属性值或颜色参数为 0 - 1 之间的数时,省略小数点前的 0 。
color: rgba(255, 255, 255, 0.5)
color: rgba(255, 255, 255, .5);
当长度值为 0 时省略单位。
margin: 0px auto
margin: 0 auto
十六进制的颜色属性值使用小写和尽量简写。
color: #ffcc00
color: #fc0
如果包含 content 属性,应放在最前面;
Positioning Model 布局方式、位置,相关属性包括:position / top / right / bottom / left / z-index / display / float / ...
Box Model 盒模型,相关属性包括:width / height / padding / margin / border / overflow / ...
Typographic 文本排版,相关属性包括:font / line-height / text-align / word-wrap / ...
Visual 视觉外观,相关属性包括:color / background / list-style / transform / animation / transition / ...
@description为文件或模块描述。
@update为可选项,建议每次改动都更新一下。
%placeholders
,只是一个占位符,只要不通过@extend
调用,编译后不会产生任何代码量使用
@extend
引用,则是因为每次调用相同的%placeholders
时,编译出来相同的 CSS 样式会进行合并(反之,如果使用@include
调用定义好的@mixin
,编译出来相同的 CSS 样式不会进行合并)这里的组件类特指那些不会动态改变的 CSS 样式,注意与那些可以通过传参生成不同数值样式的
@mixin
方法进行区分.g-content .g-content-list li { }
.g-content .g-content-list .item { }
body { font-family: 'Microsoft YaHei', '黑体-简', 'b8bf53'; }
规则声明块
完整示例如下:
.g-footer, .g-header { position: relative; } .g-content { background: linear-gradient(135deg, deeppink 25%, transparent 25%) -50px 0, linear-gradient(225deg, deeppink 25%, transparent 25%) -50px 0, linear-gradient(315deg, deeppink 25%, transparent 25%), linear-gradient(45deg, deeppink 25%, transparent 25%); } .g-content::before { content: ''; }
数值与单位
样式属性顺序
单个样式规则下的属性在书写时,应按功能进行分组,并以 Positioning Model > Box Model > Typographic > Visual 的顺序书写,提高代码的可读性。
Positioning 处在第一位,因为他可以使一个元素脱离正常文本流,并且覆盖盒模型相关的样式。盒模型紧跟其后,因为他决定了一个组件的大小和位置。其他属性只在组件内部起作用或者不会对前面两种情况的结果产生影响,所以他们排在后面。
合理使用使用引号
在某些样式中,会出现一些含有空格的关键字或者中文关键字。
font-family
内使用引号
当字体名字中间有空格,中文名字体及 Unicode 字符编码表示的中文字体,为了保证兼容性,都建议在字体两端添加单引号或者双引号:
body { font-family: 'Microsoft YaHei', '黑体-简', '\5b8b\4f53'; }
background-image
的 url 内使用引号
如果路径里面有空格,旧版 IE 是无法识别的,会导致路径失效,建议不管是否存在空格,都添加上单引号或者双引号:
div { background-image: url('...'); }
避免使用 !important
除去某些极特殊的情况,尽量不要不要使用 !important
。
!important
的存在会给后期维护以及多人协作带来噩梦般的影响。
当存在样式覆盖层叠时,如果你发现新定义的一个样式无法覆盖一个旧的样式,只有加上
!important
才能生效时,是因为你新定义的选择器的优先级不够旧样式选择器的优先级高。所以,合理的书写新样式选择器,是完全可以规避一些看似需要使用!important
的情况的。
代码注释
单行注释
星号与内容之间必须保留一个空格。
/* 表格隔行变色 */
多行注释
星号要一列对齐,星号与内容之间必须保留一个空格。
/** * Sometimes you need to include optional context for the entire component. Do that up here if it's important enough. */
规则声明块内注释
使用 // 注释,// 后面加上一个空格,注释独立一行。
.g-footer { border: 0; // .... }
文件注释
文件顶部必须包含文件注释,用 @name 标识文件说明。星号要一列对齐,星号与内容之间必须保留一个空格,标识符冒号与内容之间必须保留一个空格。
/** * @name: 文件名或模块名 * @description: 文件或模块描述 * @author: author-name(mail-name@domain.com) * author-name2(mail-name2@domain.com) * @update: 2015-04-29 00:02 */
当该业务项目主要由固定的一个或多个人负责时,需要添加@author标识,一方面是尊重劳动成果,另一方面方便在需要时快速定位责任人。
SASS 使用建议
嵌套层级规定
使用 SASS
、 LESS
等预处理器时,建议嵌套层级不超过 3 层。
组件/公用类的使用方法
组件/公用类使用 %placeholders
定义,使用 @extend
引用。如:
%clearfix { overflow: auto; zoom: 1; } .g-header { @extend %clearfix; }
组件类的思考
使用 SASS ,经常会预先定义好一些常用公用组件类,譬如清除浮动,水平垂直居中,文字 ellipsis。又或者多个元素具有同样的样式,我们希望能够少写这部分代码,公共部分抽离出来只写一次,达到复用。
但是复用的方式在 SASS 中有多种,那么是使用单独使用一个类定义,给需要的标签添加,还是使用 @include
或者 @extend
在定义的类中引入一个 @mixin
,或者一个 @function
呢?
基于让 CSS 更简洁以及代码的复用考虑,采用上面的使用 %placeholders
定义,使用 @extend
引用的方案。
尽量避免使用标签名
使用 SASS ,或者说在 CSS 里也有这种困惑。
假设我们有如下 html 结构:
<div class="g-content"> <ul class="g-content-list"> <li class="item"></li> <li class="item"></li> <li class="item"></li> <li class="item"></li> </ul> </div>
在给最里层的标签命名书写样式的时候,我们有两种选择:
.g-content { .g-content-list { li { ... } } }
或者是
.g-content { .g-content-list { .item { ... } } }
也就是,编译之后生成了下面这两个,到底使用哪个好呢?
基于 CSS 选择器的解析规则(从右向左),建议使用上述第二种 .g-content .g-content-list .item { }
,避免使用通用标签名作为选择器的一环可以提高 CSS 匹配性能。
浏览器的排版引擎解析 CSS 是基于从右向左(right-to-left)的规则,这么做是为了使样式规则能够更快地与渲染树上的节点匹配。
本规范也可以在我的 Github 上看到,欢迎留言或者提 PR。
到此本文结束,如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
위 내용은 CSS 사용법 작성 사양의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











부트 스트랩 분할 라인을 만드는 두 가지 방법이 있습니다 : 태그를 사용하여 수평 분할 라인이 생성됩니다. CSS 테두리 속성을 사용하여 사용자 정의 스타일 분할 라인을 만듭니다.

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

Bootstrap에 이미지를 삽입하는 방법에는 여러 가지가 있습니다. HTML IMG 태그를 사용하여 이미지를 직접 삽입하십시오. 부트 스트랩 이미지 구성 요소를 사용하면 반응 형 이미지와 더 많은 스타일을 제공 할 수 있습니다. 이미지 크기를 설정하고 IMG-Fluid 클래스를 사용하여 이미지를 적응할 수 있도록하십시오. IMG 통과 클래스를 사용하여 테두리를 설정하십시오. 둥근 모서리를 설정하고 IMG 라운드 클래스를 사용하십시오. 그림자를 설정하고 그림자 클래스를 사용하십시오. CSS 스타일을 사용하여 이미지를 조정하고 배치하십시오. 배경 이미지를 사용하여 배경 이미지 CSS 속성을 사용하십시오.

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

부트 스트랩 프레임 워크를 설정하려면 다음 단계를 따라야합니다. 1. CDN을 통해 부트 스트랩 파일 참조; 2. 자신의 서버에서 파일을 다운로드하여 호스팅하십시오. 3. HTML에 부트 스트랩 파일을 포함; 4. 필요에 따라 Sass/Less를 컴파일하십시오. 5. 사용자 정의 파일을 가져옵니다 (선택 사항). 설정이 완료되면 Bootstrap의 그리드 시스템, 구성 요소 및 스타일을 사용하여 반응 형 웹 사이트 및 응용 프로그램을 만들 수 있습니다.

부트 스트랩 버튼을 사용하는 방법? 부트 스트랩 CSS를 소개하여 버튼 요소를 만들고 부트 스트랩 버튼 클래스를 추가하여 버튼 텍스트를 추가하십시오.

답 : 부트 스트랩의 날짜 선택기 구성 요소를 사용하여 페이지에서 날짜를 볼 수 있습니다. 단계 : 부트 스트랩 프레임 워크를 소개하십시오. HTML에서 날짜 선택기 입력 상자를 만듭니다. 부트 스트랩은 선택기에 스타일을 자동으로 추가합니다. JavaScript를 사용하여 선택한 날짜를 얻으십시오.
