css权威指南--笔记
第1章 css和文档
1,元素:替换元素(img input),非替换元素(大多数span)。
2,link:rel(代表关系:stylesheet,候选样式表:alternate stylesheet);type(text/css);media:(all(所有表现媒体, screen,print),title(配合候选使用)。
3,@import url(sheet1.css) 需在style内使用,放在其他css规则之前。
4,向后可访问性:<style><!-- 样式 --></style>,这样较老浏览器会将style忽略,能理解css的浏览器能正常读取样式表。
5,css注释:/* */。
第2章 选择器
1,对声明分组时,一定要在各个声明的最后使用分号。
2,p.warming.help {background:red;} 只匹配class包含warming和help的p元素,如果p包含warming和其他的则不能匹配。
3,实际上,浏览器并不检查html中id的唯一性,但这会导致编写dom更困难。
4,属性选择器:h1[class] {...}
h1[class=''] {...}完全匹配
h1[class~=''] {...}部分匹配 [class^='']以什么开头 [class$='']以什么结尾 [class*='']包含什么的所有元素
*[lang|='en']特定属性选择器,会选择lang属性等于en或以en-开头的所有元素。
5,选择子元素:h1>strong;选择相邻兄弟元素h1+p(h1和p有共同父元素,最终选择p)。
6,链接伪类:未访问链接:link,访问过链接:visited(它们都是静态的),等同于<body link='' vlink=''>。
动态伪类:焦点:focus,鼠标停留:hover,激活:active。(动态伪类可以用于任何元素)
建议伪类顺序:link-visited-focus-hover-active。
选择第一个子元素(:first-child),很容易误解,是所有第一个子元素(在下面例子中,作为第一个子元素的元素包括第一个p,第一个li和strong及em)。
<div>
<p>helooo</p>
<ul>
<li>111</li>
<li><strong>222</strong></li>
</ul>
<p>
<em>333</em>
</p>
</div>
根据语言选择(:lang()),如*:lang(fr){color:red;} 这是将所有法语元素变成红色。
伪元素选择器:首字母:first-letter,用户代理动态构成假象元素<p:first-letter>;
第一行:first-line;
之前和之后:before :after。
第3章 结构和层叠
1,实际上,所有样式冲突的解决都是由层叠来处理。
选择器的特殊性:id选择器(0,1,0,0);类 属性 伪类(0,0,1,0);各个元素和伪元素(0,0,0,1);通配选择器(0,0,0,0);内联样式(1,0,0,0)。
重要性:!important放在声明的结束分号之前。
2,例外:应用到body元素的背景样式可以传递到html元素(html是文档的根元素),相应的可以定义其画布。
大多数框模型属性都不能继承(包括外边距 内边距 背景 边框),继承的值没有特殊性,0特殊性比无特殊性要强。
3,声明权重由大到小:读者的重要声明>创作人员的重要声明>创作人员的正常声明>读者的正常声明>用户代理声明。
通过将伪类链接在一起,可以缓解特殊性和顺序带来的问题。
第4章 值和单位
1,函数式rgb颜色:rgb(color),color用一个百分数(0%-100%)或者整数三元组(0-255)表示。
十六进制rgb颜色:将三个介于00-FF的十六进制数连起来,就可以设置一种颜色。
web安全颜色:在256色计算机系统上总能避免抖动的颜色。rgb值20%和51的倍数,0% 0也是,十六进制值00,33,66,99,cc,ff。
2,绝对长度单位:in cm mm pt pc。
相对长度单位:1个em定义为一种给定字体的font-size值(这个值随元素的不同而不同),ex指所用字体中小写x的高度,px非常适合用于度量图像大小(一小网格就是1像素)。
3,a{color:inherit}可以让链接使用继承的color值而非用户代理的默认样式。
4,角度值:度(deg),梯度(grad),弧度(rad),都允许度数。
时间值:ms,s,不允许负值。
频率值:Hz,MHz,不允许负值。
第5章 字体
1,serif字体:这些字体成比例,而且有上下短线;sans-serif:这些字体是成比例的,而且没有上下短线;cursive:模仿人的手写体。
2,建议在所有的font-family规则中都提供一个通用字体,这样当用户代理无法提供特定字体时,就可以选择一个候选字体,如:font-family:Times,TimesNR,...,serif,当字体名包含# ¥ 空格之类的符号时就要加上引号。
3,font-weight:normal和bold分别对应400和700,font-weight是可以继承的,让字体更粗bolder,让字体更细lighter。
4,font-size:larger和smaller缩放因子1.2(通常),百分值是根据从父元素继承的大小,与相对大小关键字一样百分号可以积累。
p{font-size:12px;}
em{font-size:120%;} /* 12px*120% */
strong{font-size:135%;} /* 12px*120%*135% */
<p><em><strong></strong></em></p>
5,font-style:默认值normal,斜体italic,倾斜oblique。
6,font-variant(字体变形):默认normal,小型大写字母文本small-caps。
7,font-stretch(字体拉伸):wider...不过现在浏览器都还不支持%>_<%。
8,font-size-adjust(调整字体大小):目前测试只有firefox支持,x的高度除以font-size的结果称为方面值。
9,font:(font-style font-variant font-weight)(font-size font-family)前三个顺序随意,后面两个固定且必须,line-height可以加在font-size后面且用'/'隔开。
10,@font-face{font-family:'';src:url();}会延迟文档显示。
第6章 文本属性
1,text-indent应用于块级(可以是数值 百分数 inherit),可以继承。
2,text-align用于块级(left(默认) right center justify(两端对齐) inherit),可继承。
3,line-height:em ex和百分数都是相对于元素的font-size值计算的。行间距=(line-height)-(font-size),然后行间距除以2分别加在内容区的顶部和底部就是行内框。
4,vertical-align:用于行内及替换元素,无继承性,默认baseline。sub使元素变为下标,super将元素的基线相对于父元素的基线升高。
5,word-spacing:字间隔,值可为正值 负值 0(narmal);letter-spacing:字母间隔,值可为正值 负值 0(narmal)。
6,text-transform:uppercase,lowercase,capitalize(首字母大写),none(默认)。
7,text-decoration:underline,overline(上划线),line-through(贯穿),blink(文本闪烁),不能继承(为了使装饰匹配,必须显式的声明其装饰)。
8,text-shadow:水平阴影位置 垂直阴影位置(负值就是左上方) 模糊半径 颜色。
9,white-space:normal(忽略空格换行),pre(空白符不会忽略),nowrap(不换行),pre-wrap(保留空白符换行),pre-line(合并空白符保留换行符)。
10,direction(文本方向):ltr,rtl;行内元素只有当unicode-bidi设置为embed或bidi-override时才会应用direction。
11,word-wrap:normal(只在允许的断字点换行),break-word(在长单词或url内部进行换行);如果这一行放不下这个单词会做到下一行。
12,word-break:break-all(允许单词内换行),keep-all(只能在半角空格或连字符处换行);如果这一行放不下会继,,续放。
第7章 基本视觉格式化(略看的)
1,内边距不能为负值,外边距可以,边框宽度据对不能为负值,border-color如果没设则取元素内容的前景色。
第8章 内边距、边框和外边距
1,margin(padding)可设置百分数值,是相对于父元素的width计算的;margin外边距会合并,padding内边距不会。
2,对于行内非替换元素:外边距通过改变元素内容在行中的起点来影响换行,margin不影响上下只影响左右;对于替换元素:margin会影响行高。
3,边框默认为none,边框宽度默认为medium(通常2px)。
4,border-style:dotted(点),dashed(虚线),double(双线),groove(3D 凹槽边框),ridge(3D 垄状边框),inset,outset(凸起)。
5,border-width:thin,medium(默认),thick,length。
6,border-color:color,transparent(透明边框)。
7,padding:对于有背景色和内边距的行内非替换元素,背景可以向元素上面和下面延伸。
8,无论替换元素是块级还是行内元素,内边距都会围绕其内容,背景色将填入该内边距(例如图片底部与文字对齐,input与文字居中对齐,而不会覆盖)。
第9章 颜色和背景
1,color是可以继承的;background-color不能继承(默认transparent),如果一个元素没有指定的颜色,那么背景应当是透明的,这样其祖先元素的背景才能可见。
2,所有的背景属性都不能继承。只要有背景图像就应该同时包含一个背景颜色。
3,background-repeat:repeat(默认),repeat-x,repeat-y,no-repeat。
4,background-position:0% 0%(默认),left,center,right,top,bottom,length。如果只出现一个关键字,则认为另外一个关键字是center。如果有两个值必须一起出现,水平值在前垂直值在后。
5,background-attachment:scroll,fixed。
第10章 浮动和定位
1,浮动元素周围的外边距不会合并,如果要浮动一个非替换元素则必须声明width。
2,浮动元素的包含块是其最接近的块级祖先元素,此外,浮动元素会生成一个块级框。
3,浮动规则:①浮动元素的左(或右)外边界不能超过其包含块的左(或右)内边界;
②浮动元素的左(或右)外边界必须是源文档中之前出现的左浮动(或右浮动)元素的右(左)外边界,除非出现浮动元素的顶端在先出现浮动元素的底端下面(这样就不会重叠)。
③左浮动元素的右外边界不会在其右边右浮动元素的左外边界的右边(不会重叠)。
④浮动元素的顶端不能比之前所有浮动元素或块级元素的顶端更高。
4,负外边距可能导致浮动元素移到父元素的外面。
5,行内框与一个浮动元素重叠时,其边框背景和内容都在该浮动元素之上显示;块框与一个浮动元素重叠时,其边框和背景在该浮动元素之下显示,内容在之上。
6,clear工作原理:它会增加元素的上外边距,使之最后落在浮动元素的下面,这实际上会忽略为清除元素(设置clear的元素)顶端设置的外边距宽度。
清除区域:在元素上外边距之上增加的额外间隔,不允许任何浮动元素进入这个范围内。这意味着元素设置clear时,它的外边距并不改变。之所以向下移是因为清除区域造成的。
7,position:static(默认),元素框正常生成;
relative,元素框偏离某个距离;
absolute,元素框从文档流完全删除,相对于其包含块定位,元素定位后生成一个块级框;
fixed,元素框表现类似于absolute,不过其包含块是视窗本身。
元素可以定位到其包含块的外部。
8, 偏移属性:top,bottom(百分数相对于包含块的高度),left,right(相对于包含块的宽度)。默认值是auto。
9,min-width max-width使元素不至于太宽或太高,而且可以相对安全地混合使用不同的单位。
10,overflow:visible(默认),hidden,scroll,auto。用于块级和替换元素。
11,clip:rect(top,right,bottom,left),auto。所有偏移都是距左上角的偏移(不允许百分数可以是负值),用于绝对定位元素。
12,visibility:visible(默认),hidden(不可见但还会影响文档布局),collapse(同于hidden)。
13,绝对定位元素的包含块是最接近的position值不为static的祖先元素;如果值过度受限,用户代理会忽略right(bottom)的值(从左向右读)。
14,z-index:auto(默认),integer。
15,固定定位:元素会完全从文档流中去除。
16,相对定位:移动走了之后,原位置空白,可以覆盖其他内容;若过度受限,一个值会重置为另一个值的相反数。
第11章 表布局
1,display:inline(默认),none,blcok,list-item,table等等。
2,border-collapse:collapse(合并边框),separate(默认分隔边框),应用于display值为table或inline-table的元素。
3,border-spacing(边框间隔):默认为0,length(除非为separate,否则忽略该属性)。
4,empty-cells(空单元格):show(默认),hide。
5,table-layout:auto(默认),fixed。
第12章 列表与生成内容
1,列表类型(list-style-type):disc(默认),circle等等。
2,列表项图像(list-style-image):none(默认),url()。
3,列表标志位置(list-style-position):outside(默认),inside。
以上均用于display值为list-item的元素。
4,使用外边距和内边距实现缩进:ul{margin-left:0;padding-left:1em}或ul{margin-left:1em;padding-left:0}。
5,指定内容(content):normal(默认),attr(href)。
6,生成引号(quotes):' " ' ' " '。
7,counter-reset(设置计数器起点),counter-increment(递增一定的量),还需结合content属性和一个与计数器有关的值。
第13章 用户界面样式
1,系统字体:caption,icon,menu,message-box,small-caption,status-bar这些值只能用于font属性。
2,系统颜色:不建议使用,css3已废除。
3,光标(cursor):auto(默认,用户代理确定最适合的)与default(系统默认的)不同,pointer(手),text(文本图标),crosshair(十字),move,url()等等。
4,轮廓样式(outline-style):none,dotted,dashed,solid等等,轮廓与边框不同在于只能指定一个关键字,可以画在边框外面。
5,轮廓宽度(outline-width):thin,medium(默认),thick,length。
6,轮廓颜色(outline-color):color,invert(默认)。(outline:color style width)。
第14章 非屏幕媒体
1,media:screen,print,all等等(用于link标签中)。
css权威指南--笔记的更多相关文章
- css 权威指南笔记(一)
零零散散接触css将近5年,俨然已经成为一个熟练工.如果不是换份工作,我不知道自己差的那么远:在qunar的转正review中我这种“知其然而不知其所以然” 的状况被标明,我才意识到我已停步不前近两年 ...
- css 权威指南笔记( 五)结构和层叠之三种样式来源
CSS中的样式一共有三种来源:创作人员.读者和用户代理,来源的不同会影响到样式的层叠方式 首先,创作人员(author's+style)样式应该是我们最熟悉的,如果你是一个前端开发者,那么你写的那些样 ...
- css 权威指南笔记( 六)-基本视觉格式化
块级元素 百分数:边框的宽度不能是百分数,只能是长度.基本原则是只使用百分数将无法创建完全灵活的元素布局(即所有属性都可设置). 合并垂直外边距 相邻外边距会沿着竖轴合并.两个外边距中较小的一个会被较 ...
- css 权威指南笔记( 五)结构和层叠
特殊性 重要性 !important; 继承 向上传播例外,应用到body元素的背景样式可以传递到html元素,相应对的可以定义其画布. 大多数框模型属性(包括外边距.内边距.背景.边框)都不能继承 ...
- css 权威指南笔记(四)选择器
规则结构 每个规则都有两个基本部分组成:选择器和声明块.声明块由一个或多个声明组成,每个声明则是一个属性-值对. 元素选择器 声明和关键字 关键字一般由空格隔开:有一种情况例外 font属性中的 斜 ...
- css 权威指南笔记(三)结合css和XHTML
link rel stylesheet alternate stylesheet(候选样式表) title type media all screen print ..... 内联样式
- css 权威指南笔记(二)元素
替换元素 用来替换元素内容的部分并非有文档内容直接表示. img input 非替换元素 其内容由用户代理(通常是一个浏览器)在元素本身生成的框中显示. 块级元素 块级元素生成一个 元素框,(默认)会 ...
- css 权威指南笔记
部分属性选择: 选择class 属性中包含warning的元素 [class~="warning"]{font-weight:bold} 子串匹配属性选择器: 在现代浏览器中得到支 ...
- CSS权威指南学习笔记系列(1)CSS和文档
题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...
随机推荐
- EQueue 2.3.2版本发布(支持高可用)
前言 前段时间针对EQueue的完善终于告一段落了,实在值得庆祝,自己的付出和坚持总算有了成果.这次新版本主要为EQueue实现了集群功能,基本实现了Broker的高可用.另外还增加了很多实用的功能, ...
- ABP(现代ASP.NET样板开发框架)系列之22、ABP展现层——导航栏设置
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之22.ABP展现层——导航栏设置 ABP是“ASP.NET Boilerplate Project (ASP.NE ...
- C++ std::forward_list
std::forward_list template < class T, class Alloc = allocator > class forward_list; Forward li ...
- Python3 登陆网页并保持cookie
网页登陆 网页登陆的原理都是,保持一个sessionid在cookie然后,根据sessionid在服务端找到cookie进行用户识别 python实现 由于python的简单以及丰富的类库是开发网络 ...
- 打印Lua的Table对象
小伙伴们再也不用为打印lua的Table对象而苦恼了, 本人曾也苦恼过,哈哈 不过今天刚完成了这个东西, 以前在网上搜过打印table的脚本,但是都感觉很不理想,于是,自己造轮子了~ 打印的效果,自己 ...
- 存储程序(2)——MYSQL
1.触发器 触发器是与特定数据表相关联的存储过程,当相应的数据表被INSERT.DELETE或UPDATE语句修改时,触发器将自动执行.触发器可以被设置成在这几种语句处理每个数据行之前或之后触发.触发 ...
- 从零开始编写自己的C#框架(21)——添加分类类型页面
页面权限与页面控件权限经过简单的调试后,终于启用起来了,以后大家添加新页面时,就必须按照本章介绍的方法,将你新增的页面注册到系统中,这样才能访问与进行相关操作. 下面讲讲如何创建一个分类类型的页面. ...
- 前端开发工具vue.js开发实践总结
最近有很长时间没有更新博客了,换了公司,全部的心思都放在项目上了.通过这次项目的上线,让我感受最深的是前后端分离后,前端页面的模块化管理,以及前端页面的数据邦定.在接触vue.js之前,我之前端要用到 ...
- 读书笔记--SQL必知必会07--创建计算字段
7.1 计算字段 字段(field),基本与列(column)含义相同. 利用计算字段可以直接从数据库中检索出转换.计算或格式化过的数据. 计算字段不实际存在于数据库表中,是运行时在SELECT语句内 ...
- 安卓Design包之AppBar和Toolbar的联用
前面讲了Design包的的CoordinatorLayout和SnackBar的混用,现在继续理解Design包的AppBar; AppBarLayout跟它的名字一样,把容器类的组件全部作为AppB ...