《CSS3秘籍》(第三版)-读书笔记(4)

第12章  CSS页面布局

网页布局的类型:

  • 固定宽度。不管浏览器窗口的宽度多大,网页内容的宽度始终保持不变。
  • 流式。流式设计采用百分比,它会根据浏览器的宽度(无论有多宽)自动进行调整。网页会随着访问者调整浏览器窗口的大小而变宽或变窄。
  • 响应式Web设计(Responsive Web Degin,RWD)。RWD不是只给所有设备设计一种布局,而是会根据不同的浏览器宽度,来改变它的展现效果。

第14章 响应式Web设计

响应式Web设计结合了三大理念:

  • 用于布局的弹性网络
  • 用于图片和视频的弹性媒体
  • 为不同屏幕宽度创建不同样式的CSS媒体查询

为了忽略响应式网站在手机浏览器上缩小屏幕的这种行为,可以在网页的<head>中添加以下代码:

<meta name="viewport" content="width=device-width">

另外还有一种方法可以确保手机不会试图缩小网页,而只在100%的尺寸下显示网页。在主样式表中添加@viewport规则(并非在所有浏览器中都可用,有些需要添加供应商前缀才能支持),像这样:

@viewport {width: device-width; }

1、  媒体查询

媒体查询(media queries),它可以让你根据目标浏览器的宽度和高度给网页分配样式。

以下这些常见的设计变更一般都是媒体查询的目标:

n         调整列

n         弹性宽度

n         缩紧空白空间

n         调整字号

n         修改导航菜单

n         在手持设备上隐藏内容

n         使用背景图片

响应式设计时,应该指定不同的宽度值作为断点,以给网页运用不同的样式。一般,设计开始变得难看的那个点就是一个很好的断点;换句话说,断点是一个最佳尺寸,在这里可以定义一个新的媒体查询,并载入一些新的样式,删除掉一两个列。

一般来说,通常会给3个不同的断点创建3组媒体查询,一个针对智能手机,另一个针对平板电脑,还有一个针对桌面型显示器。

创建媒体查询:

1)在标准样式表链接中新增media属性,设定条件,符合这些条件的浏览器才能使用某一个特殊的样式表。

选项max-width和min-width可以决定浏览器的最大或最小宽度。例,

<link href="css/medium.css" rel="stylesheet" media="(min

-width:481px) and (max-width:768px)"

浏览器的屏幕宽度至少必须 为481px,但不超过768px

2)将查询包含在样式表中

u       可以直接在样式表中添加@ import指令,例

@import url(css/small.css) (min-width:320px);

u       在样式表中嵌入媒体查询,例

@media (max-width:480px) {

body {

/*style properties go here*/

}

.style1 {

/*style properties go here*/

}

}

2、  弹性网络

布局设计中的每一列都应该以百分比为单位,而不是以pixel或者em为单位的固定宽度。

在给桌面型显示器设计多列布局之前,要注意HTML的顺序。查明情况的最容易方式是预览没有应用任何样式的网页。

当你利用百分比设置宽度的时候,有可能遭遇浮动下落的危险。解决方式之一是,使用一个通用选择器,以便重置网页中内个元素上的盒模型。

* {

-moz-box-sizing: border-box;

box-sizing: border-box;

}

3、  流式图片

弹性设计中的列会随着浏览器窗口变小而收缩,但图片不会。这样就可能导致图片溢出边界,而不能适应列的宽度。

使图片也变成具有弹性的方式:

1)首先,在样式表中添加以下样式:

img { max-width: 100%; }

2)找到网页中的每一个<img>标签,删除其中的height和width属性。

流式图片的不足之处:

  • 图片可能被拉伸至超出它的自然宽度而变形失真。
  • 图片在屏幕上进行收缩,虽然图片质量不受影响,但却迫使手机用户下载比真正所需大得多的图片文件。

如果你使用了HTML5的video标签,或者嵌入了含Flash的内容,那么嗨可以利用max-width方法,使那些元素也随着它们的容器进行缩放。只需添加下列样式:

img, video, embed,object {

max-width: 100%;

}

不过,这样的样式对于利用iframes嵌入的视频却没有任何帮助。

第15章定位网页上的元素

CSS提供了4种类型的定位:

  • 绝对定位。

绝对定位通过以pixel、em或percentage为单位设定元素的左、右、上或下方的位置对它进行定位。

此外,绝对定位的元素甚至可以完全脱离HTML代码确定的文档流。

  • 相对定位。

相对定位的元素是相对于它在HTML流中的当前位置进行定位的。

其他网页元素不会占据相对定位元素原来在HTML中所处的位置。

相对定位的最大好处不是移动元素,而是给它内部的绝对定位元素设定一个新的参照点。

  • 固定定位。

固定定位元素会被锁定在屏幕的某个位置上。

当访问者滚动网页时,固定元素会在屏幕上保持不动,比如段落和标题,而照片则会在浏览器窗口的上方逐渐消失。

  • 静态定位(默认的定位方式)

只是表示网页内容将遵循正常从上到下的HTML流。

要想改变任何一个元素的定位,都可以利用position属性,它的可能值为以下4个关键字之一:static、absolute、relative和fixed。

事实上,绝对定位的元素实际上是被相对地放在了离它最近的定位祖先元素的边界上。

如果一个标签的位置是绝对定位的,且它又不在其他任何设定了absolute、relative或fixed定位的标签里面,那它就是相对于浏览器的窗口进行定位。

如果一个标签处在另一个设定了absolute、relative或fixed定位的标签里面,那它就是相对于另一个元素的边沿进行定位。

一般来说,定位元素的堆叠顺序是按照它们在网页HTML代码只的顺序来进行的。但可以利用CSS的z-index属性来控制定位元素的顺序。这个属性的值为数字,数值越大,元素就会出现在越接近堆叠顶部的地方。

z-index可以为负数。但IE 7 及其更早的版本还是不支持的。

第16章 设计打印页面的CSS技术

1、Media样式表的作用

为了适应不同的上网方式,CSS可以帮助你创建专门针对特殊媒体类型的样式和样式表。CSS支持的10种不同的媒体类型:

all、braille、embossed、handheld、print、projection、screen、speech、tty和tv。

只有当相应媒体类型被激活时,浏览器才能应用其样式表。

其中,应该特别注意这3种媒体类型:

  • all样式适用于每一种设备(默认)
  • screen样式只适用于显示器
  • print样式只适用于打印网页

2、如何添加Media样式表

  • 给外部样式表指定媒体类型

如果需要链接只用于打印的样式表,则可以给网站添加下面这行HTML:

<link href="css/medium.css" rel="stylesheet" media="print">

此外,还可以指定多个媒体类型,各类型之间用逗号隔开即可。

  • 在样式表中指定媒体类型

也可以利用@media指令直接在样式表中定义特定媒体的样式,像这样:

@media print {

/* put your styles for the printer in here */

}

3、创建打印样式表

  • 用!important覆盖屏幕样式
  • 重写文本样式
  • 定义打印背景
  • 隐藏不需要的页面区域
  • 给打印添加分页符

page-break-before是让Web浏览器在一个指定样式之前插入一个分页符。page-break-after是在一个指定样式之后插入一个分页符,只要设置成关键字always。

第17章 改正CSS设计习惯

1、添加注释

CSS注释是一条用“/*”和“/*”包围起来的注释

样式命名规范

2、组织样式和样式表

(1)样式命名要清晰

  • 要根据用途而不是外观来命名
  • 不要根据位置命名
  • 不要使用含义模糊的名称

(2)将样式分组,两种常用的方法:

  • 把网页上相关部位所采用的样式集中在一起
  • 把用途相关的样式集中在一起

3、消除浏览器样式的冲突(在样式表的开头处创建一些基础样式,以删除那些不协调的格式化设置)

  • 删除padding和margin
  • 使用统一的字号
  • 确保让HTML5元素以快级元素显示
  • 设置统一的行高
  • 删除表格边框线,创建外观一致的单元格。
  • 删除链接图片周围的边框线
  • 设置统一的列表缩进方式和列表符号
  • 删除摘要资料的引号

4、给Internet Explorer尝试不同的CSS

条件注释允许你指定样式表要应用给那个版本的Internet Explorer。如,可以在网页的head中添加以下条件注释:

<!--[if IE 7]>

<link href="IE_styles.css" rel="stylesheet">

<![endif]-->

时间: 2024-08-02 12:23:43

《CSS3秘籍》(第三版)-读书笔记(4)的相关文章

javaScript高程第三版读书笔记

看完dom编程艺术现在准备读进阶版的js高程了 第一章 aa ss 第二章 aa ss

CSS权威指南-第三版--读书笔记

第一章:CSS和文档 html是结构化语言,css是样式语言,html主要用来被强大的搜索引擎更好的索引,更好的让一个盲人通过语音浏览器来了解我们的网页,这也就是为什么说html是结构话语言,因为这是W3C规定的,大家都在遵循,统一的标准会给所有人带来便利(比如上面提到的盲人). 从web的衰落开始谈起,当时web只是用简单的html来编写,大量的流行,为了更好的展示,于是出现了一些<font>,<center>等用来表现的标签,使得html非常的混乱.1996年,CSS已经成为一

javascript高级程序设计第三版 读书笔记

第三章   基本概念 1.在JavaScript中是区分大小写的,第一个字符是字母 _ 或者$,其他字符可以试数字 字母 _ 或者$,命名格式要求是驼峰式书写(第一个字母小写,剩下的每个有意义的单词开头大写  比如fontSize) 2.单行注释//  块级注释为/*多行 内容*/ 不得使用关键字和保留字 3.在JavaScript中变量是松散型的   可以为任何一种类型 4.用var操作符定义的变量成为定义该变量的作用域中的局部变量. function test(){ var i = 'hi'

linux鸟哥私房菜(第三版)读书笔记

第六章 用户.用户组.其它人 权限:读r.写w.执行x chgrp:改变文件所属用户组 chown:改变文件所属用户 chomd:改变文件的权限 用数字修改权限的方法,xyz三个数字分别对应用户.用户组.其它 用字母修改权限的方法,u代表用户,g代表用户组,o代表其它,a代表所有.+加入某个权限,-去除某个权限,=设置某个权限 第七章 cd 切换目录, pwd 显示当前目录, mkdir 新建一个新的目录, rmdir 删除一个空的目录 PATH环境变量 ls查看文件和目录 cp.rm.mv c

CLR.via.C#第三版 读书笔记

第一章 CLR的执行模型 1.1将源代码编译成托管代码 决定将.NET Framework作为自己的开发平台之后,第一步是决定要生成什么类型的应用程序或组件.假定你已经完成了这些次要的细节:一切都已经设计好,规范已经写好,就可以着手进行开发了. 现在,必须决定使用哪一种编程语言.这通常是一个艰难的选择,因为不同的语言各有各的“本事”.例如,在非托管C/C++中,可对系统进行一些相当低级的控制.可完全按自己的想法管理内存,在必要时能够方便的创建线程.另一方面,如果使用Microsoft Visua

Java编程思想第四版读书笔记——第十三章 字符串

Java编程思想第四版读书笔记--第十三章 字符串 字符串的操作是计算机程序设计中最常见的行为. 关键词: StringBuilder ,StringBuffer,toString(),format转换,正则表达式, 1.不可变String String对象时不可变的.每当把String对象作为方法的参数时,都会复制一份引用.(其实就是对函数中参数列表中参数的操作不会影响外面的原参数) 如下: import static net.mindview.util.Print.*; public cla

Android深度探索——第三章读书笔记及心得

了解Git ——第三章读书笔记及心得 对于Android的理解是从这学期才开始,所以不可谓说是了解的太少太少.对于Linux虽然经过了一学期的学习.经过一次紧张的实训,但是了解的也不是很多.不过我终究是知道Android和Linux是开源的,这是很多老师都曾经告诉我们的.虽然Git并不是学习Android和Linux开发必须掌握的技术,但是对于想要认真学习好这门技术的我们来说应该要努力掌握好这门技术.就像书上说的学习新技术的方式不是一味的读书,只会纸上谈兵.更应该深入的理解自己感兴趣的源代码,通

第三次读书笔记-人月神话

<人月神话>读书笔记 <人月神话>这本书几年前就听别人说是本很经典的软件开发方面的书,被赞为"神品".这本书的成功之处在于他思想的前卫性,以至于不只是软件行业的人在读,在印度甚至人手一本. 这本书主要是针对软件开发管理方面的内容,这主要原因可能是因为作者以前就是项目的管理者,他是站在管理者的角度写的.即便这样,对于一个从来没有参与过真实项目开发,更没有领导过团队的我还是有一定的吸引力,这本书中我最喜欢的就是焦油坑.人月神话和没有银弹这三章.这本书里面为了论证某一

Effective C++(第三版)笔记 ---- 第一部分让自己习惯C++

内容从侯捷译版的<Effective C++>(第三版)摘录 条款一 C++作为一个多种范式融合的语言,可以看成是语言的联邦,它包含了一下四种主要的次语言: C.C++以C为基础,很多时候C++对于问题的解法其实不过就是较高级的C解法,但是C语言的局限:没有模板,没有异常处理,没有重载. OO C++.包括类,封装,继承,多态,动态绑定. Template C++. 这是C++范型的部分. STL.包括三个主要部分.容器(containers),迭代器(iterator),算法(algorit

第三周读书笔记

<程序员的职业修养>读书笔记 本书一直围绕着"专业"二字展开,以作者的观点阐述了何为"专业的程序员":专业的程序员是如何思考,如何解决问题,如何承担责任. 所有软件项目的知道原则是,软件要易于修改.如果你希望自己的软件灵活可变,那就应该市场修改它!要证明软件易于修改,唯一的办法就是做些实际的修改.如果你发现这些改动并不像你预想的那样简单,你就应该改进设计,使后续修改改变简单.有时开发期已过进入测试阶段,可能还会加一点需求,如果是影响到逻辑上的改动会比较麻