在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u5B8B%u4F53" 就是\5B8B\4F53 font-family: 中文,英文,最好的是unicode编码 eg. font-family: "SimSun","SimHei",sans-serif; 字体名称 英文名称 Unicode 编码 宋体 SimSun \5B8B\4F53 新宋体 NSimSun \65B0\5B8B\4F53 黑体 SimHei \9ED1\4F53 微软雅黑 microsoft yahei \5FAE\8F6F\96C5\9ED1 楷体 _GB2312 KaiTi_GB2312 \6977\4F53_GB2312 隶书 LiSu \96B6\4E66 幼园 YouYuan \5E7C\5706 华文细黑 STXihei \534E\6587\7EC6\9ED1 细明体 MingLiU \7EC6\660E\4F53 新细明体 PMingLiU \65B0\7EC6\660E\4F53
CSS书写位置:css
1. 行内式:基本不用。代码可维护性极差,css代码和html结构没有实现分离,影响的范围只有当前标签 <p style="color:red">...</p> 2. 内嵌式:少用。代码可维护性较差,没有实现css代码与html结构的彻底分离,影响的范围只有当前页面 <head> <style type="text/css"> ... </style> </head> 3. 外联式:多用。代码可维护性高,css与html结构彻底分离,影响范围广,当前整个网页站点 <link rel="stylesheet" href="CSS/main.css"> 4. 导入式:和外联式同样都是导入某一个文件夹的CSS样式,不过写法不一样,而且@import必须写在全部CSS样式的前面(不推荐使用) @import url(CSS/main.css)
p { }
类选择器 .classname { }
html
1. 不能以纯数字或者以数字开头定义类名 2. 不推荐使用汉字定义类名 3. 不能以特殊符号或者以特殊符号开头("_"除外)定义类名 4. 不建议使用标签名或者属性名定义类名 5. 一个标签能够同时调用多个类样式,多个标签能够同时调用一个类样式 6. 不要去试图用一个类名,把某个标签的全部样式写完。这个标签要多携带几个类,共同形成这个标签的样式。 7. 每个类要尽量小,有“公共”的概念,可以让更多的标签使用。
id选择器 #idname { }
浏览器
1. id的命名要以字母开头,能够有数字、下划线,大小写严格区别 2. id名是惟一的,能够说id是js专用 3. 一个标签只能调用一个id样式
* { }
p.classname { }
p.classname { }
&p#idname { }
(通常写成 #idname { }
)div p { }
div, p { }
div>p
、下一个兄弟选择器h3+p
ul li:first-child
ul li:last-child
等CSS将标签分为块级元素、行内元素和行内块元素布局
1. 块级元素 `<div>`, `<p>`, `<li>`, `<h1>`... 1. 元素本身独占一行显示(默认有宽度); 2. 能够设置宽度和高度; 3. 当嵌套一个块级元素,子元素若是不设置宽度,那么该子元素的宽度为父元素的宽度。 2. 行内元素 `span`, `a`, `font`, `strong`... 1. 元素在一行上显示 2. 不能直接设置宽度和高度 3. 行内块元素 `image`, `input` 1. 元素在一行上显示 2. 能够设置宽度和高度
全部的文本级标签,都是行内元素,除了p是个文本级,可是是个块级元素。
全部的容器级标签都是块级元素。
学习
层叠性:层叠性是一种能力,就是处理冲突的能力。字体
1. 样式覆盖。与样式的**调用顺序**没关,与样式的**定义顺序**有关; 2. 层叠性发生的前提: 样式冲突。
继承性优化
1. 继承性发生的前提:标签之间属于嵌套关系; **与文字有关的属性均可以实现继承** 2. 文字颜色color能够实现继承 3. 文字font-xxx 能够实现继承 4. 行高line-hight 能够实现继承 5. text-indent, text-align 能够实现继承 6. 特殊: 1. `<a href="#"></a>` 不能继承父元素中的文字颜色(层叠掉了) 2. `<h1></h1>` 标题标签不能继承父元素中的文字大小
没有选择上,经过继承影响的,就近原则,谁描述的近听谁的。
若是描述的同样近,好比选择器权重,若是权重再同样重,谁写在后面听谁的。网站
!important > 行内式 > id > 类/伪类 > 元素名 > 认样式 先按做者、读者、浏览器的顺序排列,而后若是做者跟读者出现同分数的,最后出现的规则越优先
!important
使用注意事项
!important
提高的是一个属性,而不是一个选择器!important
没法提高继承的权重,该是0仍是0!important
不影响就近原则!importan
不能影响就近原则呢,应该按照“就近原则”来计算权重!important
作网站的时候,不容许使用。由于会让css写的很乱行高 = 文字大小 + 上间距 + 下间距
行高、字号,通常都是偶数
编码
表单优化写法:url
<!-- for里面写input的id --> <label for="username"></label> 用户名: <input type="text" class="username" id="username" /> 什么表单元素都有label
box-sizing: content-box
时)overflow:hidden;
,但会触发BFC(Block formatting contexts)a:link
、a:visited
都是能够省略的,a标签涵盖了link、visited的状态
标准流(文档流)
元素默认的显示方式就是标准流。
1. 空白折叠现象:好比,若是咱们想让img标签之间没有空隙,必须紧密链接 2. 高矮不齐,底边对齐 3. 自动换行,一行写不满,换行写
float:left/right;
特色: 脱标,贴边,字围,收缩
收缩:一个浮动的元素,若是没有设置width,那么将自动收缩为文字的宽度(这点很是像行内元素)
1. 设置了浮动的元素不占原来的位置(脱标) 2. 一旦浮动,全部标签就不区分行内元素、块级元素,将可以并排,而且可以设置宽高 3. 可让块级元素在一行上显示 4. 浮动能够行内元素转化为行内块元素 5. 设置了浮动的元素,影响其后面的元素 6. 模式转换的过程当中,能用display就用display
做用:
1. 浮动用来解决文字图片环绕问题 2. 制做导航栏 3. 网页布局
清除浮动
1. 清除浮动不是删除浮动,清除浮动指的是清除浮动的影响 2. 当子元素设置了浮动,父元素没有高度的时候,形成页面布局混乱。 这种状况下进行清除浮动。
height
overflow: hidden
(该盒子BFC了)clear: both;
<div>
并设置.clearfix { clear: both; }
div
,对网页结构很差。而且浮动元素的父盒子没高度,不能设置背景颜色跟背景图片等。<div>
并设置.clearfix { clear: both; }
div
,对网页结构很差。浮动元素的父盒子有高度,能够设置背景颜色跟背景图片等.clearfix { clear: both; }
属性使用伪元素清除浮动①
给父盒子添加 class="clearfix"
.clearfix:after{ content:""; display: block; height:0; line-height:0; clear: both; visibility: hidden; } .clearfix{ zoom: 1; /* 为了兼容IE浏览器 */ }
推荐:使用伪元素清除浮动②
.clearfix:before,.clearfix:after { content: ""; display: table; } .clearfix:after { clear: both; } .clearfix{ *zoom:1;/*IE/7/6*/ }
overflow
的使用overflow: visible/hidden/scroll/auto
绝对定位(absolute)
1. 当给一个单独的元素设置绝对定位,以浏览器左上角(body)为基准设置定位的。 2. 若是父盒子没有设置定位,子盒子设置定位以浏览器左上角为基准设置定位。 3. 若是父盒子设置定位,子盒子设置定位父盒子左上角为基准设置定位。 4. 给盒子设置了绝对定位,该盒子不占位置(脱标) 5. 行内元素转化为行内块元素 6. 绝对定位的儿子,无视参考的那个盒子的padding
相对定位(relative):微调元素。作绝对定位的参考,子绝父相
1. 元素设置了相对定位后占原来的位置(没有脱标) 2. 设置相对定位以本身的位置为参照设置位置 3. 相对定位不能进行元素的模式转换 4. 子绝父相(子元素设置绝对定位,父元素设置相对定位)(子绝父绝的其余状况也是能够的)
固定定位(fixed): 将元素定在浏览器窗口,屏幕滚动也不会移动
1. 固定定位不占位置(脱标) 2. 将行内元素转化为行内块元素 3. IE6不兼容。
IE6,不支持小于12px的盒子,任何小于12px的盒子,在IE6中看都大
解决办法:将盒子的字号,设置小(小于盒子的高),好比0px
height: 4px; _font-size: 0px;
IE6不支持用 overflow:hidden;
来清除浮动,但支持使用 overflow:hidden;
来将溢出盒子的border的东西隐藏
解决办法:在后面追加一条 _zoom:1;
,_zoom:1;可以触发IE6浏览器专有的hasLayout机制。
overflow: hidden; _zoom:1;
margin
的bug
当出现连续浮动的元素,margin和浮动方向相同时,队首的元素,会双倍marign
解决办法 1. 使浮动的方向和margin的方向相反 2. 使用hack(不必,不能惯着这个IE6) 单独给队首的元素,写一个一半的_margin
margin-right
踢了父盒子时, margin-right
会多出3pxmargin-right
踢父盒子margin: 0 auto;
定位的盒子居中显示(重要):
.father { position: relative; } .child { width: (xxx)px; height: 100px; position: absolute; left: 50%; margin-left: -(xxx)px; }
标签包含规范
1. div能够包含任何标准流下的元素 2. p标签中不能包含div 和 标题标签 及列表标签。 3. 标题标签能够包含其余标签。 4. 行内元素最好不要包含其余标签。
规避脱标流
1. 网页布局过程当中,能用标准流布局就用流布局。 2. 标准流不能解决用浮动 3. 浮动不能解决用定位 4. margin-left: auto; 子盒子会被挤到右边 margin-right: auto; 子盒子会被挤到左边 能够将盒子自动冲到另外一边。
vertical-align: baseline
<img>
属于行内元素,但在表现上更倾向于 inline-blockvertical-align: middle;
能够将图片与文字垂直对齐vertical-align
与 inline-block
更搭配overflow: hidden
将超出部分进行隐藏display: none;
将元素隐藏后不占位置visibility: hidden;
将元素隐藏后占原来的位置logo优化(内容移除文字)
1. <div> 文字 </div> 设置div样式 div { height: 0; width: 200px; padding-top: 100px; overflow: hidden; } 2. <a href="#">文字</a> a { display: inline-block; width: 200px; height: 200px; text-indent:-9999em; }
精灵图的使用
1. 使用fw必定要用打开的方式打开精灵图 2. 使用精灵图做为背景图片的时候,常与background-position配合使用
a
无所不能,里面什么均可以放filter: alpha(opacity=50);