css基本样式
复合属性按复合顺序排列 all-direction表示所有方位(顺序为top、right、bottom、left) 如非必要,忽略inherit、initial、unset
- 盒子样式
属性 | 复合属性 | 效果 |
---|---|---|
width | 元素内容宽度 | |
height | 元素内容高度 | |
padding | all-direction | 对应方位元素内边距 |
border | width | 元素边框 |
style | 线条样式 | |
color | 边框颜色 | |
margin | all-direction | 元素外边距左 |
overflow | x | 水平方向溢出处理 |
y | 垂直方向溢出处理 | |
box-sizing | 限制盒子的大小 | |
box-shadow | h-shadow | 阴影水平偏移位置 |
v-shadow | 阴影垂直偏移位置 | |
blur | 模糊半径 | |
spread | 阴影向外传播大小 | |
color | 阴影颜色 | |
inset | 阴影内置 |
笔记:
- 盒子属性中,border还有分开写的属性:
border | 二级属性 | 复合属性1 | 复合属性2 | 效果 |
---|---|---|---|---|
all-direction | all-direction-width | 对应方位边框样式 | ||
radius | all-direction | 边框圆角半径 | ||
image | source | 图像url | ||
slice | all-direction | 图像切片 | ||
width | all-direction | 图像边界宽度 | ||
offset | all-direction | 边框图像和边框的距离 | ||
repeat | 重复方式 |
- box-sizing有两个属性值:border-box和content-box,分别表示border限定的盒子大小不变(自动改变元素内容盒子大小来适应)和表示元素内容盒子大小不变。
- 设置box-shadow,要明白默认阴影大小和元素大小一致;模糊半径和border-radius很像,把阴影圆角模糊;spread是在默认阴影下叠加阴影;inset是将阴影反转,改为内嵌。
- 文本样式
属性 | 复合属性 | 效果 |
---|---|---|
color | 字体颜色 | |
line-height | 行高 | |
font | style | 字体样式 |
variant | 字体异体 | |
weight | 字体粗细 | |
size/line-height | 字体大小/行高 | |
family | 字体系列 | |
direction | 文本书写方向 | |
letter-spacing | 字符间距 | |
word-spacing | 单词间距 | |
white-space | 空白处理 | |
text-overflow | 溢出文本处理 | |
text-align | 水平对齐方式 | |
text-justify | 两端对齐处理方式 | |
text-indent | 首行缩进 | |
text-transform | 大小写和首字母大写 | |
text-shadow | h-shadow | 文本水平阴影偏移 |
v-shadow | 文本垂直阴影偏移 | |
blur | 模糊半径 | |
color | 阴影颜色 | |
word-break | 非CJK单词断行方式 | |
word-wrap | 长单词(如url)换行方式 |
笔记:
- letter-spacing和word-spacing用于处理间距
- text-align有justify属性值,表示两端对齐,这时,可以用text-justify来设置两端对齐的处理方式
- text-shadow和box-shadow是相似的,区别仅仅在于text-shadow没有spread和inset属性值
- 一行显示不完文本,末尾添加省略号显示的方法:
.ellipsis{
white-space: nowrap; /*不换行*/
overflow: hidden; /*溢出隐藏*/
text-overflow: ellipsis; /*溢出文本显示省略号*/
}
- 表格样式
属性 | 复合属性 | 效果 |
---|---|---|
border-collapse | 是否合并边框 | |
border-spacing | h | 相邻单元格之间的水平距离 |
v | 相邻单元格之间的垂直距离 | |
caption-side | 表格标题位置 | |
empty-cells | 空白单元格样式处理 | |
table-layout | 列宽的决定方式 |
笔记:
- 表格标题可以放置在上下两个位置
- border-collapse的属性值是collapse和separate,分别表示合并和分离
- 表单样式
属性 | 复合属性 | 效果 |
---|---|---|
appearance | 外观 | |
outline | color | 轮廓颜色 |
style | 轮廓类型 | |
width | 轮廓宽度 |
笔记:
- appearance是用户外观样式,它可以选择让标签看起来像按钮、图标等,有兼容性问题,需要加前缀,而且一般用在移动端。
- outline一般指input输入框聚焦时显示的轮廓,设置和border类型,仅仅是复合顺序不同。
- 列表样式
属性 | 复合属性 | 效果 |
---|---|---|
list-style | type | 列表项标记方式 |
position | 列表项位置 | |
image | 自定义列表图标标记 |
笔记:
- 一般会使用list-style:none让list的标记消失。
- list-style-position有两个属性值,分别是inside和outside(默认),inside的话,列表会被填充更多的右padding-start,让其整体右移,像缩进去一样。
- 背景样式
属性 | 复合属性 | 效果 |
---|---|---|
background | color | 背景颜色 |
image | 背景图片 | |
position/size | 图片位置/图片大小 | |
repeat | 重复图片的方式 | |
origin | 图片定位参照点 | |
clip | 图片裁剪 | |
attachment | 背景是否固定 |
笔记
- background的position和size都有二个值,水平值和垂直值。当第一个值(水平值确定)而垂直值不定时,垂直值为auto。
- background的size还可以设置单值,属性值为cover和contain。
- background的position有x和y是复合属性,而size不是。
- background的origin和clip的属性值都是content-box、padding-box和border-box
- background-attachment的属性值是scroll和fixed
- background可以设置多个背景图像及背景图片相关属性(ie8及以下不兼容):
等价于:
.muti-bg-img{ background-image: url(./bg1.jpg), url(./bg2.jpg); background-position: left top, center center; background-repeat: repeat-x, no-repeat; background-attachment: fixed, scroll; }
.muti-bg-img{ background: url(./bg1.jpg) left top repeat-x fixed, url(./bg2.jpg) center center no-repeat scroll; }
- 布局样式
1.浮动
属性 | 效果 |
---|---|
float | 浮动 |
clear | 清浮动 |
overflow | 溢出隐藏 |
笔记:
- 浮动脱离文档流,不会撑开容器高度,不过可以使用清浮动解决。
- 清浮动样式:
/* 使用伪子类clear清浮动 */
.clearfix::after{
content: "",
display: block;
clear: both;
}
/* 生成BFC清浮动 */
.overfw-bfc{
overflow: hidden;
}
2.定位
属性 | 属性值 | 效果 |
---|---|---|
position | relative | 相对定位 |
absolute | 绝对定位 | |
fixed | 固定定位 | |
static | 默认值不使用定位 | |
left | 长度或者% | 相对参照物左边距离 |
right | 长度或者% | 相对参照物右边距离 |
top | 长度或者% | 相对参照物上面距离 |
bottom | 长度或者% | 相对参照物下面距离 |
z-index | 数值 | 定位堆叠的层级号 |
笔记:
- relative相对自身定位,不脱离文档流,占据原来的空间
- absolute相对最近的非static定位的父元素定位,脱离文档流。与浮动不同的是,没有类似清浮动的方法可以使容器高度自适应。
- fixed相对浏览器可视窗口定位
- z-index表示层号,数值大的覆盖数值小的。
- 元素类型和显示
属性 | 属性值 | 效果 |
---|---|---|
display | block | 块级元素 |
inline-block | 行内块元素 | |
inline | 行内元素 | |
none | 不显示 | |
table-cell | 类表格单元格元素 | |
visibility | visible | 元素可见 |
hidden | 元素不可见 | |
collapse | 隐藏表格中的行,非< tr > 表现为hidden |
笔记:
- display:none和visibility:hidden的区别是前者脱离页面dom树,而后者没有,而且占据空间,影响布局。
- visibilty的hidden和collapse的区别是前者占据空间影响布局,后者会被中下一行元素覆盖,不影响布局
- 弹性盒子
容器:
属性 | 效果 |
---|---|
flex-direction | 主轴方向 |
flex-wrap | 项目换行处理方式 |
flex-flow | flex-direction flex-wrap的复合简写 |
justify-content | 主轴上项目的对齐方式 |
align-items | 交叉轴上单行项目的对齐方式 |
align-content | 交叉轴上多行项目的对齐方式 |
项目:
属性 | 复合属性 | 效果 |
---|---|---|
flex | grow | 项目扩大比例 |
shrink | 项目缩小比例 | |
basic | 项目原来占有的空间 | |
order | 项目排列顺序 | |
align-self | 单个项目在交叉轴的对齐方式 |
笔记:
- 空间是否剩余和是否不足,由容器大小和项目的basis决定
- grow是剩余空间的划分比例,shrink是空间不足时项目的缩小比例
- 除了空间不足换行,align-seif导致项目与其它项目的交叉轴对齐方式不同,也会出现多行样式
- align-items和align-content的区别在于单行控制和多行控制 demo
- 参考http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html