CSS 编码规范
书写规范
- tab 用两个空格表示;
- css 的 :后加个空格, {前加个空格;
- 每条声明后都加上分号;
- 换行,而不是放到一行;
- 颜色用小写,用缩写, #fff;
- 小数不用写前缀, 0.5s -> .5s;0不用加单位;
- 尽量缩写, margin: 5px 10px 5px 10px -> margin: 5px 10px。
例:
/* Not recommended */
.test {
display: block;
height: 100px
}
/* Recommended */
.test {
display: block;
height: 100px;
}
/* Not recommended */
h3 {
font-weight:bold;
}
/* Recommended */
h3 {
font-weight: bold;
}
/* Not recommended: missing space */
#video{
margin-top: 1em;
}
/* Not recommended: unnecessary line break */
#video
{
margin-top: 1em;
}
/* Recommended */
#video {
margin-top: 1em;
}
/* Not recommended */
a:focus, a:active {
position: relative; top: 1px;
}
/* Recommended */
h1,
h2,
h3 {
font-weight: normal;
line-height: 1.2;
}
/* Always put a blank line (two line breaks) between rules. */
html {
background: #fff;
}
body {
margin: auto;
width: 50%;
}
/* Not recommended */
@import url("//www.google.com/css/maia.css");
html {
font-family: "open sans", arial, sans-serif;
}
/* Recommended */
@import url(//www.google.com/css/maia.css);
html {
font-family: 'open sans', arial, sans-serif;
}
命名技巧
- 语义化
- 语义化标签优先;
- 基于功能命名、基于内容命名、基于表现命名;
- 简略、明了、无后患。
常见命名:
.wrap或.wrapper -- 用于外侧包裹
.container或 .ct -- 包裹容器
.header -- 用于头部
.body -- 页面 body
.footer -- 页面尾部
aside、sidebar -- 用于侧边栏
.content -- 和header footer 对应,用于主要内容
.navigation -- 导航元素
.pagination -- 分页
.tabs > .tab -- tab 切换
.breadcrumbs -- 导航列表、面包屑
.dropdown -- 下拉菜单
.article -- 文章
.main -- 用于主体
.thumbnail -- 头像,小图像
.media -- 媒体资源
.panel -- 面板
.tooltip -- 鼠标放置上去的提示
.popup -- 鼠标点击弹出的提示
.button、.btn -- 按钮
.ad -- 广告
.subnav -- 二级导航
.menu -- 菜单
.tag -- 标签
.message或者.notice -- 提示消息
.summary -- 摘要
.logo -- logo
.search -- 搜索框
.login -- 登录
.register -- 注册
.username -- 用户名
.password -- 密码
.banner -- 广告条
.copyright -- 版权
.modal或者 .dialog -- 弹窗
var 名字 = {
状态: [
'inverse',
'toggled',
'switched',
'original',
'initial',
'identified',
'disabled',
'loading',
'pending',
'syncing',
'default'
],
修饰: [
'dark',
'light',
'shaded',
'flat',
'ghost',
'maroon',
'pale',
'intense',
'twisted',
'narrow',
'wide',
'smooth',
'separate',
'clean',
'sharp',
'aligned'
],
元素: [
'pagination',
'modal',
'popup',
'article',
'story',
'flash',
'status',
'state',
'media',
'block',
'card',
'teaser',
'badge',
'label',
'sheet',
'poster',
'notice',
'record',
'entry',
'item',
'figure',
'square',
'module',
'bar',
'button',
'action',
'knob'
],
布局: [
'navigation',
'wrapper',
'inner',
'header',
'footer',
'aside',
'section',
'divider',
'content',
'container',
'panel',
'pane',
'construct',
'composition',
'spacing',
'frame'
]
}
垂直居中的实现方式
使用 vertical-align 属性:
.box {
width: 300px;
height: 200px;
border: 1px solid ;
text-align: center;
}
.box:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.box img {
vertical-align: middle;
background: blue;
}
或
.box {
width: 300px;
height: 200px;
border: 1px solid ;
display: table-cell;
vertical-align: middle;
text-align: center;
}
使用绝对定位
.dialog {
position: absolute;
left: 50%;
top: 50%;
margin-left: -200px;
margin-top: -150px;
width: 400px;
height: 300px;
}
使用伪元素实现如下效果:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>exp</title>
<style type=text/css>
div {
width: 150px;
height: 100px;
border: 1px solid #aaa;
margin: 50px;
}
div:nth-child(1):before {
content: "";
display: inline-block;
border-top: 5px solid #aaa;
border-left: 5px solid #aaa;
border-bottom: 5px solid transparent;
border-right: 5px solid transparent;
transform: rotateZ(45deg);
position: relative;
top: -13px;
left: 10px;
}
div:nth-child(2):before {
content: "";
display: inline-block;
border-top: 10px solid #f00;
border-left: 10px solid transparent;
border-bottom: 10px solid transparent;
border-right: 10px solid #f00;
position: relative;
top: -1px;
left: 131px;
}
div:nth-child(3):before {
content: "";
width: 10px;
height: 10px;
display: inline-block;
border-top: 1px solid #aaa;
border-left: 1px solid #aaa;
background: #fff;
transform: rotateZ(45deg);
position: relative;
top: -13px;
left: 10px;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
</body>
</html>
【注】版权归 Lucifer 所有,转载请联系作者。
网友评论