[关闭]
@hx 2018-04-14T23:21:27.000000Z 字数 3832 阅读 1112

CSS笔记

前端


样式选择器

  1. a:link{color: gray;} //未访问
  2. a:visited{color: red;} //已访问
  3. a:hover{color: green;} //鼠标悬停
  4. a:active{color: orange;} //选中激活时
  1. p{color:red;} /*权值为1*/
  2. p span{color:green;} /*权值为1+1=2*/
  3. .warning{color:white;} /*权值为10*/
  4. p span.warning{color:purple;} /*权值为1+1+10=12*/
  5. #footer .note p{color:yellow;} /*权值为100+10+1=111*/

注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

格式化排版

元素分类

常用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<li>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>

将块状元素转换为内联元素:{display:inline;}
将内联元素转换为块状元素:{display:block;}
转换为inline-block元素:{display:inline-block;}

盒模型

边框(border)

属性:粗细,样式,颜色。
border-width:2px;(thin细 | medium中 | thick粗(但不是很常用),最常还是用像素(px))
border-style:solid;(dashed虚线,dotted点线,solid实线)
border-color:red;(十六进制颜色,#888)

单独设置边框

  1. div{
  2. border-bottom 底:1px solid red;
  3. border-top 上:1px solid red;
  4. border-right 右:1px solid red;
  5. border-left 左:1px solid red;
  6. }

填充(padding)

元素内容与边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。

边界(margin)

元素与其它元素之间的距离可以使用边界来设置。边界也是可分为上、右、下、左。
padding在边框里,margin在边框外。

布局模型

流动模型(flow)

默认的网页布局模型
1、块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。
2、在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)

浮动模型(float)

默认宽度为内容宽度,半脱离文档流(对元素,脱离文档流;对内容,在文档流)

  1. .clearfix:after{ //清除float元素,clear属性指定段落的左侧或右侧不允许浮动的元素。
  2. content: 0;
  3. display: block;
  4. clear: both;
  5. height: 0px;
  6. overflow: hidden;
  7. visibility: hidden;
  8. }
  9. // 或者
  10. 语法:
  11. clear : none | left | right | both
  12. 取值:
  13. none : 默认值。允许两边都可以有浮动对象
  14. left : 不允许左边有浮动对象
  15. right : 不允许右边有浮动对象
  16. both : 不允许有浮动对象

层模型(layer)

CSS定义了一组定位(positioning)属性来支持层布局模型。

  1. 相对定位(position: relative)
    仍在文档流,相对于其原来的位置。

  2. 绝对定位(position: absolute)
    绝对于其父元素(或)位置,默认宽度为内容宽度,脱离文档流,参照物为第一个定位祖先或者根元素(html)。

  3. 固定定位(position: fixed)
    参照物为视窗。

弹性布局(flex)

flex item在文档流中的直接子元素。

方向

属性 描述 图片
flex-direction 指定了弹性容器中子元素的排列方式
flex-wrap 设置弹性盒子的子元素超出父容器时是否换行。
flex-flow flex-direction 和 flex-wrap 的简写
order 设置弹性盒子的子元素排列顺序。

弹性

属性 描述 图片
flex-grow 一个数字,规定项目将相对于其他灵活的项目进行扩展的量。
flex-shrink 一个数字,规定项目将相对于其他灵活的项目进行收缩的量。
flex-basis 项目的长度。合法值:"auto"、"inherit" 或一个后跟 "%"、"px"、"em" 或任何其他长度单位的数字。
flex 设置弹性盒子的子元素如何分配空间。

对齐

属性 描述 图片
justify-content 设置弹性盒子元素在主轴(横轴)方向上的对齐方式。
align-items 设置弹性盒子元素在侧轴(纵轴)方向上的对齐方式。
align-self 在弹性子元素上使用。覆盖容器的 align-items 属性。
align-content 修改 flex-wrap 属性的行为,类似align-items,但不是设置子元素对齐,而是设置行对齐

CSS Reset

清除默认样式
全局样式定义

<link rel="stylesheet" herf="reset.css">一定要放在第一个。

或者用"normalize.css"要更中庸些。

布局解决方案

居中布局

水平居中

  1. table + margin

  2. absolute + transform

  3. flex + justify-content

垂直居中

  1. table-cell + vertical-align

  2. absolute + transform

  3. flex + align-items

水平垂直居中

  1. absolute + transform

  2. flex + justify-content + align-items

多列布局

定宽和自适应

  1. float + margin

  2. float + overflow

  3. table

  4. flex(性能较差)

  5. 多列定宽 + 一列自适应

不定宽与自适应

  1. float + overflow

  2. table

  3. flex

等分

  1. table

  2. flex

全屏布局

  1. position

  2. flex

响应式

  1. <meta name="viewport"
  2. content="width=device-width, initial-scale=1.0, user-scalable=no"/>

页面优化

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注