—————– CSS —————–
CSS规则
1、@charset 'utf-8' : 指定CSS的字符编码
2、@import 'test.css': 引用一个CSS文件
3、@media: media query使用的规则,对设备类型进行一些判断
4、@key-frames: 定义动画关键帧
@keyframes diagonal-slide {
from {
left: 0;
top: 0;
}
to {
left: 100px;
top: 100px;
}
}
5、@fontface: 定义一种字体
@font-face {
font-family: Gentium;
src: url(http://example.com/fonts/Gentium.woff);
}
p { font-family: Gentium, serif; }
布局
一、内联元素与块元素的区别
内联元素:
1、与其它内联元素都在并列同一行
2、不能设置宽、高
3、不能设置上下外边距、内边距 margin-top、margin-bottom 和 padding-top、padding-bottom ,设置内边距也不会撑起父级高度
块元素:
1、不指定宽度,会继承父元素的宽度,每个块元素都是独立一行
2、元素的宽高都可以设置,如果不设置宽度就为100%;
二、display属性:
1、inline: 内联元素 2、block: 块元素
3、inline-block: 具有block的宽高特性,又具有inline的同行元素特性
4、table-cell: 文字的垂直居中,类似表格的单元格
5、box: 弹性盒模型的过渡版本,现在用flex替换
6、flex: flex是一个弹性布局的最新版本,老版本使用的box
flex布局,子元素的float、clear、vertical-align属性将失效
主要属性有两大类: 容器属性和项目属性
三、visibility 隐藏时可以保留元素的空间, display不会保留
visible: 可视 hidden: 对象隐藏
四、overflow
overflow-x、overflow-y: 分别处理水平或垂直
1、hidden: 隐藏溢出的内容
2、scroll: 溢出的内容以滚动条显示
BFC浮动
BFC概念: Block Formatting context(块级格式化上下文) 页面中一块渲染区域,并且有一套渲染规则,决定子元素如何定位,以及他们之间的关系和相互作用
触发BFC - 只要元素满足下面任一条件即可触发 BFC 特性:
body 根元素
浮动元素:float 除 none 以外的值
绝对定位元素:position (absolute、fixed)
display 为 inline-block、table-cells、flex
overflow 除了 visible 以外的值 (hidden、auto、scroll)
如果子元素设置了浮动 float:left; 那么浮动的元素就会脱离普通文档流, 不会撑起父元素的高度, 容器只剩下2px的边距高度
<div style="border: 1px slid #000"> // 添加overflow: hidden
<div style="width: 100px; height: 100px; background: #eee; float: left"></div>
</div>
一、float 浮动
left、right 左右浮动 浮动问题: 会使父级的高度失效,使用清除浮动来解决
二、clear 清除浮动
both: 不允许有浮动对象 left: 不允许左边有浮动 right: 不允许有右边浮动
/* 万能清除浮动 */
.clear:after { content:''; display:block; clear:both; height:0; overflow:hidden; visibility:hidden; }
.clear { zoom:1; }
after伪类: 元素内部末尾添加内容;
:after{content"添加的内容";} IE6,7下不兼容
zoom 缩放
a、触发 IE下 haslayout,使元素根据自身内容计算宽高。
b、FF 不支持;
盒模型
一、padding: 内边距 padding不支持负值
二、margin: 外边距 支持负值
margin存在的问题:
1、适用于block元素,不起作用的absolute、fixed、inline、table-cell元素
2、margin-top和margin-bottom 兄弟之间的会重叠
解决方法:
1、给当前元素加浮动 float: left
2、给当前元素加
3、margin-top: 会影响到父元素(标准浏览器会影响,IE正常)
解决方法: 给父元素加一个padding、border或overflow:hidden 即上面代码里的注释部分
三、border: 边框线
position 定位
一、absolute: 绝对定位,查找父子以上的元素是否定义了position,如果没有就以window为定位基准
二、relative: 相对定位
三、fixed: 始终以window为定位,固定到屏幕的某个位置,浏览器滚动也跟随
四、static:
五、z-index: 层级堆叠顺序,值越高越在最上面,最小值为0,最大值为2147483647
background 背景
1、background-attachment: 背景图是随着滚动还是固定
fixed: 相对窗体固定
scroll: 背景图以元素固定,元素内容滚动时图像不会跟随滚动
2、transparent: 背景透明
background-color: 背景颜色
background-image: 背景图片
background-repeat: 背景重复
background-position: 背景位置
文本
1、word-spacing: 单词与单词之间的间隔
2、letter-spacing: 字母与字母之间的间隔
3、word-wrap: 属性允许长单词或 URL 地址换行到下一行 @ break-word 在需要换行时才换
如果不加些属于英文不会换行
4、word-break: 断字点进行换行
break-all: 让英文象中文一样可以在行内做任意字间换行
keep-all: 让中文向英文的换行方式接近,只在空格或英文标点符号才换行
5、white-space: 指定超出父级盒子宽度,文本进行换行(中、英文),white-space: nowrap;
6、text-overflow: 文本的溢出时隐藏,test-overflow: ellipsis; 溢出用省略号来修剪
p {width: 100px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
7、text-indent: 文本的首行缩进
8、vertical-align: 文本的对齐方式
* 只应用于inline水平以及table-cell元素 别把他放到div或p的块元素内
1、线类
baseline: 默认,元素的基线与父元素的基线对齐
top、bottom、middle: 居上、下、中
2、文本
text-top、text-bottom:
3、上标下标类
super: 上标 sub: 下标 不过位置都不太兼容,需要重写
4、数值百分比
vertical-align: 20px;
9、color: 文本颜色
10、text-align: 文本对齐 left right center justify
11、text-decoration: 文本装饰 overline 上划线 underline 下划线 line-through 从中间穿过的线
12、direction: 文字方向 rtl 从右向左 ltr 从左向右
13、line-height: 行高
表格
table: margin可以使用,除非设置 display: inline-table
1、border-collape: 表格或单元格边框合并到一起
separate: 边框独立 collapse: 相邻合并
2、border-spacing: 表格或单元格之间的距离
表格单线条:
.tab { border-spacing: 0; border-collapse: collapse;}
.tab td, .tab th { border-collapse: collapse; border: 1px #ccc solid; border-spacing: 0; padding: 10px 20px; }
长度
rem: 是相对于根元素(html)的font-size值为基准,em是相对父级元素变化,px是物理像素
vw/vh: 根据屏幕不同变化的
em: 相对长度,相对于父元素
语法与规则
1、!important 提升优先级
2、@import url("global.css"); 导入外部样式表
3、@charset 'uft-8' 编码
选择器
p{...} 元素选择器
.className{...} 类选择器
#idName{...} id选择器
.user[id='username']{...} 属性选择器
.claA .claB{...} 后代选择器
.clsA > .clsB {...} 子选择器
.clsA + .clsB {...} 相邻选择器
.clsA, .clsB{...} 选择器分组
伪类、伪元素
伪类 用于向某些选择器添加特殊效果
a:link: 未被访问过
a:visited: 已经被访问的链接
a:hover: 鼠标指针移动到的链接
a:active: 被点击的链接
:first-childe: 向元素的第一个子元素添加样式
伪类元素 用于向某些选择器添加特殊效果
:first-letter: 设置第一个字符的样式属性 ::first-letter
:first-line: 设置第一行的样式 ::first-line
:before 和 :after: 用于在元素前和元素后配置content属性添加内容 ::before ::after
.box::before { content: '这里是在box元素之前显示'}
.box::after { content: '这里是在box元素之后显示' }
css3规则伪类使用一个":", 伪元素使用两个"::"
: 用于css2的伪类,:: 用于css3的伪类
css基础属性
字体
font-size: 字体大小
font-family: 使用的字体
font-style: 字体风格 @ italic 斜体
font-weight: 字体重量
font: 简写
按顺序 也可以设置第六个值为line-hgith
font-style
font-variant
font-weight
font-size/line-height
font-family
链接
a:link: 未被访问过
a:visited: 已经被访问的链接
a:hover: 鼠标指针移动到的链接
a:active: 被点击的链接
列表
list-style-image: 将图像设置为列表标志
list-style-position: 标志的位置
list-style-type: 标志类型 @circle 圆 @square 方块
list-style: 简写属性
尺寸
width、height: 宽高
max-width、max-height: 最大宽高
min-width、min-height: 最小宽高
透明度
opacity: 0.4;
filter: alpha(opacity=40); /* 针对 IE8 以及更早的版本 */
技巧
1、body高度为100%,html继承了浏览器的高度,body继承了html的高度,这样body就为100%了
html{ height: 100%; }
body { height: 100%; margin: 0;}
.box { width: 100%; height: 100%; background-color: #ccc; }
2、浏览器hack
.box { width: 100px\9; }
浏览器(加粗表示支持) CSS hack
IE6 _background-color:#38DB24;
IE6、7 *background-color:#38DB24;
IE6、7 +background-color:#38DB24;
IE6、7 #background-color:#38DB24;
IE6、7 background-color:#38DB24 !ie;
IE6、7、8、9、10 background-color:#38DB24\9;
IE7、8、9、10&Firefox&Opera&Chrome&Safari html>body .ie78910-all-hack { background-color: #38DB24 }
IE8、9、10&Firefox&Opera&Chrome&Safari html>/**/body .ie8910-all-hack { background-color: #38DB24 }
IE8、9、10&Opera background-color:#38DB24\0;
IE9、10 :root .ie910-hack { background-color:#38DB24\9; }
IE9、10 background-color:#38DB24\9\0;
IE9、10&Firefox&Opera&Chrome&Safari body:nth-of-type(1) .ie910-all-hack {background-color:#38DB24 ;}
IE9、10&Firefox&Opera&Chrome&Safari @media all and (min-width: 0px) { .ie910-all-2-hack{ background-color:#38DB24 ;} }
IE9、10&Firefox&Opera&Chrome&Safari @media all and (min-width: 0px) { .ie910-all-3-hack{background-color:#38DB24 ;} }
IE9、10&Firefox&Opera&Chrome&Safari :root *> .ie910-all-4-hack { background-color:#38DB24 }
IE10 @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { .ie10-hack{background-color:#38DB24 ;} }
Firefox @-moz-document url-prefix() { .firefox-hack{background-color:#38DB24 ;} }
Chrome&Safari @media screen and (-webkit-min-device-pixel-ratio:0) {.chrome-safari-hack{background-color:#38DB24 ;} }
3、条件注释
lt : 就是Less than的简写,也就是小于的意思。
lte : 就是Less than or equal to的简写,也就是小于或等于的意思。
gt : 就是Greater than的简写,也就是大于的意思。
gte: 就是Greater than or equal to的简写,也就是大于或等于的意思。
!: 就是不等于的意思,跟javascript里的不等于判断符相同。
1、只有IE能识别
<!--[if IE]>
<link type="text/css" rel="stylesheet" href="my.css" />
<![endif]-->
2、指定版本
<!--[if IE 8]>
<link type="text/css" rel="stylesheet" href="my.css" />
<![endif]-->
3、低于指定版本才能识别
<!--[if lt IE 7]>
<link type="text/css" rel="stylesheet" href="my.css" />
<![endif]-->
4、layout: IE的私有概念
5、zoom: 用于处发layout
zoom: 1;
CSS Sprites
http://alloyteam.github.io/gopng
http://fis.baidu.com
http://gruntjs.com
—————– HTML —————–
文档
<!DOCTYPE html>
<!--[if IE 6]><html class="ie lt-ie8"><![endif]--> // 如果浏览器是IE6显示当前html标签
<!--[if IE 7]><html class="ie lt-ie8"><![endif]-->
<!--[if IE 8]><html class="ie ie8"><![endif]-->
<!--[if IE 9]><html class="ie ie9"><![endif]-->
<!--[if !IE]><!--> <html lang="zh-CN"> <!--<![endif]-->
<head>
<meta charset="UTF-8"> // 文档字符集
<title>京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!</title>
<meta name="description" content="京东JD.COM-专业的综合网上购物商城" /> // 描述
<meta name="Keywords" content="网上购物,网上商城,家电,手机,电脑,服装,居家,母婴,美妆,个护,食品,生鲜,京东" /> // 关键字
<!--[if lte IE 7]>
<script src="//misc.360buyimg.com/mtd/pc/index/home/ie6tip.min.js"></script>
<![endif]-->
<!--[if IE 8]>
<script src="//storage.360buyimg.com/fragments/polyfill.js"></script>
<![endif]-->
<link rel="dns-prefetch" href="//static.360buyimg.com" /> // DNS预解析
<link rel="icon" href="//www.jd.com/favicon.ico" mce_href="//www.jd.com/favicon.ico" type="image/x-icon" sizes="32x32" /> // 浏览器上显示图标和大小
<link rel="icon" href="//www.jd.com/favicon.ico" mce_href="//www.jd.com/favicon.ico" type="image/x-icon" sizes="16x16" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta name="google-site-verification" content="4vmYcfLX0KWi82fvht-HAux15inXSVGVQ0tnUZqsdqE" />
<base href="http://www.jd.com" target="_blank" /> // 定义页面全局链接的默认址地
</head>
<body>
...
</body>
</html>
可跨域的元素
<img>下的src
<script>的scr
<a>下的href
<iframe>下的src
HTML元素
1、<!DOCTYPE html> 声明文档解析类型,指定浏览器用哪个版本来解析页面
解析类型有两种模式:
1)怪异模式: 浏览器使用自己的怪异模式解析渲染页面(如果不声明doctype就是怪异模式)
2)标准模式: 使用严格模式,以W3C的标准解析渲染页面
HTML 4.01 规定了三种文档类型: Strict、Transitional 以及 Frameset
2、<html> 定义文档 <body> <head> 定义文档信息
3、<title>、<style>:
4、<meta>: 文档元信息
5、<link>: 加载文档与外部资源
6、<script>: 定义脚本
7、<div>:
8、<iframe>: 内联框架
9、<img>: 定义图像
10、<style>: 内联样式
11、<base>: 元素定义了基本的链接地址,该标签作为文档中所有链接的默认目标
文本元素
1、<p>: 段落, 有默认的上下外边距
2、<span>: 文档中的行内小块或区域
3、<a>: 定义锚,属性 href、title
4、<b>: 字体加粗
5、<i>: 斜体
6、<em>: 着重文字
7、<strong>: 加重语气
8、<u>: 下划线文字
9、<big>、<small> 大字体和小字体
<h2>标准属性<small>id, class, title, style, dir, lang</small></h2>
10、<sub>、<sup>: 上、下标文本
11、<br>: 换行
12、<del>: 被删除的文本
13、<ins>: 定义被插入文本
14、<hr>: 定义水平线
15、<bdo> 定义字体显示的方法 ltr、rtl
文字翻转显示 <bdo dir="rtl">Here is some text</bdo>
代码元素
1、<samp>: 计算机输出
2、<var>: 文本的变量部分
3、<code>: 代码文本
4、<pre>: 预格式化文本, 不需要浏览器对标签内的内容进行排版
<pre>
<samp>
<code>
GET /home.html HTTP/1.1
Host: www.example.org
</code>
</samp>
</pre>
标题元素
1、<h1>...<h6>
列表元素
1、<ul>: 无序列表
2、<ol>: 有序列表
<ol> <li>aaa</li> </ol>
3、<li>: 列表的项目
4、<dl>、<dt>、<dd>: 定义列表
表单元素
1、<form>
2、<fieldset>、<legend>: 定义围绕表单中元素的边框。
<fieldset>
<legend>健康信息</legend>
身高: <input type="text" />
</fieldset>
3、<input>
4、<label>: input元素的标注
5、<select>: 下拉菜单 <option>菜单内容
6、<button>: 按钮
7、<textarea>: 多行文本
表格元素
1、<table>
2、<tr>、<td>: 行、列
3、<caption>: 定义表格标题
4、<th>: 表格头单元
5、<thead>、<tbody>、<tfoot>: 表格页眉、主体、页脚
窗口框架
1、<frame>: 定义框架集窗口或框架
2、<frameset>: 定义框架集
3、<object>、<param>
| http://www.css88.com/book/css/
| http://www.w3cplus.com/
| https://www.nihaoshijie.com.cn/index.php/page/3
| http://jixianqianduan.com/page6/
| http://www.css88.com/archives/category/js-and-ria
| http://www.w3cplus.com/solution/index/index.html
| https://github.com/csswizardry/inuit.css/tree/master/base
| https://github.com/GumbyFramework/Gumby
| http://www.shejidaren.com/css-written-specifications.html
| https://zhuanlan.zhihu.com/p/25321647 BFC