《精通CSS:高级Web标准解决方案》学习笔记(上)
鉴于国产CSS书籍基本都是辣鸡的现状,我在半年前动用某工作室的购书资金采购了一些技术书籍,这本广受好评的《精通CSS》也在其中。但是在阅读过后我深深的感觉到,如果说CSS本来已经是一种很琐碎的布局知识集合的话,那这本书只能说是更加琐碎了,因为这只是一本纯纯的经验分享。而且随着前端技术的快速发展,明显能感觉到,这本书里的很多内容已经过时了。所以,虽然我写了笔记,但是仍然强烈不推荐把这本书当作是CSS圣经,而应该作为一本床头读物(不过我相信你不会的,因为它太无聊了)。
看完以后我最大的感慨是——果然还是MDN靠谱
至于我为什么克服了拖延症来写写读书笔记,因为我退出了工作室,要还书了【doge】
此篇笔记根据《精通CSS:高级Web标准解决方案》1~3章内容整理。
——————————————————————————————————
1、命名id和class时,一定要名称与表现方式无关。尽可能与功能或内容相关(语义化思想)
2、id和class名区分大小写
3、div是有语义的,代表部分(division),所以并不需要任何结构都是用div,例如:
<div class="nav">
<ul>
<li><a href="/home">home</a></li>
<li><a href="/about">about</a></li>
<li><a href="/contact">contact</a></li>
<li></li>
</ul>
</div>
完全可以写成:
<ul class="nav">
<li><a href="/home">home</a></li>
<li><a href="/about">about</a></li>
<li><a href="/contact">contact</a></li>
<li></li>
</ul>
4、后代选择器选择一个元素所有后代,子选择器(>)只选择元素的直接后代
5、相邻同胞选择器(+)用于定位同一个父元素下某元素之后的元素
6、导入样式表
@import url("/css/layout.css")
速度慢于链接样式表
<link href="/css/layout.css" rel="stylesheet" type="text/css" />
7、浏览器同时只能从一个域下载有限数量的文件,老式浏览器2个,现代浏览器4-8个(所以这正是我们使用CDN的原因之一)。所以结构良好的单一CSS文件可以显著提高下载速度。
8、改进型的注释。
/* @group news styles
-------------------------------------------------------*/
方便你找到它。
9、盒模型分为两种。W3C标准盒模型和IE奇葩型。
两者的主要区别在于,IE盒模型中的padding是在height和width所划定的区域内的,而W3C标准盒模型中padding是在height和width之外的。
另:background可以影响的部分包括height和width区域,也包括padding
10、盒模型外边距叠加原则:
①外边距高度为两者中较大者
②元素的顶外边距和其父元素顶外边距也会叠加
③无内容的盒子,外边距也会叠加,形成一个矩形
④外边距叠加只发生在普通文档流的块级元素的垂直外边距上,行内元素、浮动元素、绝对定位元素不存在外边距叠加
11、块级元素有p、h1、div、ul等,其余为行内元素
12、行内元素可以由水平padding、border、margin调整水平间距,然而垂直padding、border、margin不影响行内元素高度。行内元素高度总是足以容纳它包含的所有行内元素。修改行内元素高度的唯一方法是修改行高(line-height)
另:单行文字时,可以使用line-height进行垂直居中
13、当display属性为inline-block时,元素会像行内元素一样水平依次排列,然而仍然使用块级元素的盒模型
14、相对定位(元素仍位于普通文档流)
#news{
position:relative;
left:20px; //远离左边20px
top:20px; //远离上方20px
}
元素仍会占据原来的空间,移动后可能会对其他元素产生覆盖。相对移动的起始位置为原位置。
15、绝对定位(元素与普通文档流无关)
#news{
position:absolute;
left:20px;
top:20px;
z-index:;
}
因为绝对定位与普通文档流无关,所以不占据空间。普通文档流中的其他元素布局就像绝对定位元素不存在一样。
绝对定位起始位置由距离它最近的已定位的父元素决定。
z-index值越大,元素在栈中位置越高
16、固定定位
position:fixed;
是绝对定位的一种,差异在于其参照物不是document,而是screen
17、浮动
浮动元素不在普通文档流中,所以普通文档流中的其他元素布局就像浮动元素不存在一样。
普通文档流中的文字内容会受浮动元素影响,产生文字围绕浮动元素效果。
18、浮动元素的清理方法
①clear:left/right/both;
②浮动所有元素
③overflow:auto/hidden; 但是某些情况下会产生滚动条或截断。
④使用:after伪类(p52)
.clear:after{
content:".";
height:;
visibility:hidden;
display:block;
clear:both;
}
将类名clear添加到要清楚的元素类名中去
《精通CSS:高级Web标准解决方案》学习笔记(上)的更多相关文章
- 精通css 高级web标准解决方案——可视化格式模型-盒模型
1-盒模型的两种标准: IE :width 和 height属性 是包括padding和border在内的. w3c:width 和 height 属性,就是单纯的内容的宽高,padding 是内容之 ...
- 精通CSS高级Web标准解决方案(1-1选择器)
设计代码的结构 使用有意义的标记 css可以控制页面的外观并将表现与内容分隔开. 在分配ID与类名时尽量保证有意义且与表现无关. div可以对块级元素进行分组,而span可以对行内元素进行分组或标识. ...
- 精通CSS高级Web标准解决方案(2-1 可视化格式模型之框模型)
浮动.定位.框模型这些控制在页面上安排和显示元素的方式,形成CSS布局. 盒子模型 页面上的每个元素都被看成一个矩形框. 盒子模型有两种,分别是 IE 盒子模型和标准 W3C 盒子模型.他们对盒子模型 ...
- 精通CSS高级Web标准解决方案(1-3 规划、组织与维护样式表)
对文档应用样式 对代码进行注释/*......*/ 结构性注释 自我提示 删除注释.优化样式表 样式指南:解释代码与站点的视觉设计是如何组织在一起的 站点结构.文件结构.命名规则 编码标准:(X)ht ...
- 精通css 高级web标准解决方案——可视化格式模型-定位模型
CSS 中有三种定位机制:普通流.浮动.绝对定位.(默认为普通流) 改变文档流:display: inline-block; (支持到ie8及以上) 1-匿名块框: <div> 你好! & ...
- 精通CSS高级Web标准解决方案(4、对链接应用样式)
4.1 简单的链接样式 锚可以作为内部引用,也可以作为外部链接,应该区分对待. 伪类选择器: :link 用来寻找没有访问过的链接 :visited 用来寻找已经访问过的链接 a:link{color ...
- 精通CSS高级Web标准解决方案(2-2 可视化格式模型之定位概述)
视觉格式化模型 块级元素(块框).行内元素(行内框),可以使用display改变生成的框的类型,display:block让行内元素(比如<a>)表现的跟块级元素一样,display:no ...
- web前端好书推荐 CSS权威指南《第3版,Bootstrap实战,精通CSS 高级Web标准解决方案 第2版 中文
在我的新博客中==> http://www.suanliutudousi.com/2017/08/24/web%E5%89%8D%E7%AB%AF%E5%A5%BD%E4%B9%A6%E6%8E ...
- 精通CSS高级Web标准解决方案(1-2 层叠与特殊性)
层叠与特殊性 选择器的特殊性分成四个等级,a.b.c . d 如果样式是行内样式,那么a=1 b=ID选择器的总数 c=类.伪类.属性选择器的总数 d=标签选择器与伪元素选择器数量 例如:style ...
- 精通CSS高级Web标准解决方案(7、布局)
7.1 让设计居中 7.1.1 使用自动空白边让设计居中 <body> <div id="wrapper"> </div> </body& ...
随机推荐
- 表达式:使用API创建表达式树(4)DynamicExpression
DynamicExpression:表示动态操作.这个网上可见的资料少得可怜,但想到MVC和第三方的动态语言能在NET运行.好奇的倒腾了下 先声明两个类(有相同的方法和字段,但不是继承于同一接口的类) ...
- ab安装和使用
apache bench(专门用于 HTTP Server .单url).win8: 下载地址:http://httpd.apache.org/download.cgi#apache24 安装apac ...
- 用JS实现AJAX
用JS实现AJAX 准备工作:新建网站,建立两个页面,index.aspx和backstage.aspx, 在工程目录下新建一个文件夹命名和image,在这里添加一个loading.gif,模拟提 ...
- 那些年,我们一起学WCF--(8)Single实例行为
Single实例行为,类似于单件设计模式,所有可以客户端共享一个服务实例,这个服务实例是一个全局变量,该实例第一次被调用的时候初始化,到服务器关闭的时候停止. 设置服务为Single实例行为,只要设置 ...
- 关于@property()的那些属性及ARC简介【nonatomic,atomic,assign,retain,strong,weak,copy。】
@property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的gette ...
- 由App的启动说起(转)
The two most important days in your life are the day you are born and the day you find out why. -- M ...
- SGU 125.Shtirlits
时间限制:0.25s 空间限制:4M 题意: 有N*N的矩阵(n<=3),对所有i,j<=n有G[i][j]<=9,定义f[i][j]为G[i][j]四周大于它的数的个数(F[i][ ...
- Bootstrap_Javascript_选项卡
选项卡Tabs是Web中一种非常常用的功能.用户点击或悬浮对应的菜单项,能切换出对应的内容. 一 . 结构分析 Bootstrap框架中的选项卡主要有两部分内容组成: 选项卡组件(也就是菜单组件),对 ...
- CSS3学习--dispaly:inline和float:left两者区别
1.display:inline: 任何不是块级元素的可见元素都是内联元素.其表现的特性是“行布局”形式!(行布局:其表现形式始终以行进行显示) 2.float:left:指定元素脱离普通的文档流 ...
- PHP面向对象(OOP):克隆对象__clone()方法
有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象, ...