【CSS Cookbook】笔记摘要(一)
概要
CSS的优点:将表现和内容相分离;更好地控制页面布局;大大减少了文件尺寸;缩短了改版时间;提高了易用性。
CSS全称层叠式样表(Cascading Style Sheets)。
1.问题:如何最有效地使用类选择符和ID选择符?
回答:但要在文档中多次引用同一个样式时可以使用类选择符,如果样式只使用一次,则可以考虑ID选择符。
2.问题:如何让自己的网页标准化、合法化?
回答:HTML4.01有3种文档类型:strict、transitional和framset。XHTML1.1有一种文档类型,但XHTML1.0有3种,就像HTML4.01一样,HTML文档中只能选择一种文档类型定义。文档类型(DOCTYPE),简称DTD,定义了HTML和XHTML稳定的建筑块,同时告诉浏览器和验证器你的文档使用的HTML或XHTML的版本。每一个Web页面都必须有文档类型声明,这个声明放在HTML元素之前,这样才能保证标签和CSS是符合标准的,浏览器才会用合适的文档类型来处理网页。XHTML要求必须有文档类型,否则页面就是无效的,浏览器也会陷入quirk模式,用意想不到的方式去解析页面,会讲网页标签的书写方式当成非法的。因此即使这些XHTML和CSS代码完美无缺,浏览器也不能正确地渲染页面。W3C组织提供了HTML验证器和CSS验证器,可用于检验文档的正确性。但如果没有文档类型定义,验证器也只能束手无策。没有定义文档类型,或者定义的文档类型比较老,或者文档类型的定义方式不正确,都会导致浏览器用quirks模式错误地渲染页面。有的情况下,与浏览器有关,部分内容会根据W3C的指示生成。
3.问题:希望给予窗口定位元素,而不仅仅将元素局限于默认位置。
回答:在样式表中用position属性进行绝对定位,并使用bottom、left属性,也可以一起使用进行元素定位。使用绝对定位来设计网页,内容的放置方式将不再受默认的页面布局流影响,我们可以利用CSS属性将元素很好不差地放在当前窗口或箱盒的任何位置。
网页排版
1.问题:如何为网页中的文本设定字体。
回答:使用font-family属性。可以给font-family设置多个值,各值以逗号分隔,告诉浏览器生成需要的字体。如果浏览器不能解释第一种字体,就会尝试去解释下一种,知道找到可以解释的字体为止。如果font名中包含空白,例如Times New Roman,则要用单引号或双引号把font名括起来。在font值列表的最后,应该插入一个通过用的字形体系(serif、sans-serif、monospace、cursive、fantasy)。
2.问题:减少标题和段落之间的空白。
回答:将标题和段落元素的margin和padding均置为0。为了消除视点(有时指浏览器窗口)和元素之间的空白,我们需要把body元素的margin和padding值设为0。
3.问题:段落的首字符是大写字符。
回答:p:first-letter{font-size:1.2em}
图片
background-position属性包含了两个值,这两个值以逗号分隔。第一个值决定了点在x轴上的坐标,第二个值决定y轴上的坐标。如果只给出一个值,那么它代表了水平位置,垂直位置在这种情况下会被设为50%。将background-position设为50%意味着将图片放置于浏览器视窗的正中央。0%和100%也就是分别将图片放在视窗的左上角和右下角。除了百分比,还可以利用其他值定位,比如y轴方向可用为top、center和bottom,x轴方向的可用left、center和right。如果绑定使用这些值就可以将图片放置在视窗各边的八个点上。但是Netscape Navigator4不支持background-position属性,目前尚未找到用CSS解决局限的有效方法。
GIF和JPEG是网站上最常用的两种图片格式,这两种格式以不同的方式压缩图片。GIF格式比较适合压缩色彩层次较简单的图片,而JPEG更适合用户压缩色彩层次分明的图形或相片。
当创建流式布局或柔性布局时,列单元中的HTML文本会自动适应浏览器窗口大小的变化。然而,那些通常用像素来设置尺寸的图片却只能保持固定大小。为了使所有页面元素在柔性布局中按比例缩放,应该使用百分比来设置宽度和高度。但是如果用百分比设置图片的长宽,浏览器拉伸图片至一定限度时,将会破坏页面的布局和完整性。例如,过度拉伸JPEG图片,将使图片中几乎不可见的事物可见或者像素看起来不在其原来的位置且图形歪斜。为了解决这个问题,可以使用max-width属性设置图片宽度的最大值。
没有绝对安全的图片。首先,为了提高加载页面的速度,图片会自动保存在浏览器和临时文件夹中。只有超过一定时间或者用户清楚浏览器缓存时,这些图片才会被删除。不过浏览器常会自动给这些图片重命名,大多数用户都不清楚这些缓存文件的位置。
在用户浏览器渲染页面时,reflection.js中的Javascript代码将遍历整个网页搜寻class值为reflect的图片元素。然后脚本会根据要使用倒影的源图片创建一张新图片。一旦发现任何符合这些标准的图片,脚本就会复制并倒转图片,再将新图片的不清晰度(opacity)和高度都设为默认值50%。reflection脚本提供了两方面的定制:倒影的高度和倒影的不清晰性。为了调整倒影的高度,要给图片元素的class属性添加一个新的值,rheightXX。XX是复制的倒影图片的高度百分比。百分比值越大,倒影的高度就越高。为了调整倒影的清晰度,要在图片的class属性中引入另一个新的值,ropacityXX。XX是指倒影图片的透明度百分比值。随着opacity值的减少,倒影会变得越来越模糊。
【CSS Cookbook】笔记摘要(一)的更多相关文章
- HTML+CSS学习笔记(3)- 认识标签(2)
HTML+CSS学习笔记(3)- 认识标签(2) 1.使用ul,添加新闻信息列表 在浏览网页时,你会发现网页上有很多信息的列表,如新闻列表.图片列表, 这些列表就可以使用ul-li标签来完成.ul-l ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML+CSS学习笔记 (7) - CSS样式基本知识
HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ...
- HTML+CSS学习笔记 (6) - 开始学习CSS
HTML+CSS学习笔记 (6) - 开始学习CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏 ...
- HTML+CSS学习笔记(5)- 与浏览者交互,表单标签
HTML+CSS学习笔记(5)- 与浏览者交互,表单标签 1.使用表单标签,与用户交互 网站怎样与用户进行交互?答案是使用HTML表单(form).表单是可以把浏览者输入的数据传送到服务器端,这样服务 ...
- HTML+CSS学习笔记(4) - 认识标签(3)
HTML+CSS学习笔记(4) - 认识标签(3) 1.使用<a>标签,链接到另一个页面 使用<a>标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这 ...
- HTML+CSS学习笔记(2) - 认识标签(1)
HTML+CSS学习笔记(2) - 认识标签(1) 1.语义化,让你的网页更好的被搜索引擎理解 标签的用途: 我们学习网页制作时,常常会听到一个词,语义化.那么什么叫做语义化呢,说的通俗点就是:明白每 ...
- HTML+CSS学习笔记(1) - Html介绍
HTML+CSS学习笔记(1) - Html介绍 1.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <head> <meta ...
- css学习笔记四
广州天气变冷了,css学习笔记还是要总结. 总结: 1:几米页面静态页面主要是一列结构头部banner图,mainbody部分放文字内容和图书图片,底部是页面的版权信息 2:腾讯软件中心静态页面制作( ...
- 转:CSS选择器笔记
作者: 阮一峰 日期: 2009年3月12日 去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记. 这几天拿出来看了一下,发现很多都忘记了.所以,我决定把它们贴在这里,方便以后查 ...
随机推荐
- php调试之路
解析php中die(),exit(),return的区别 die()停止程序运行,输出内容exit是停止程序运行,不输出内容return是返回值die是遇到错误才停止exit是直接停止,并且不运行后续 ...
- Java Stream API性能测试
已经对Stream API的用法鼓吹够多了,用起简洁直观,但性能到底怎么样呢?会不会有很高的性能损失?本节我们对Stream API的性能一探究竟. 为保证测试结果真实可信,我们将JVM运行在-ser ...
- 关于laravel框架的跨域请求/jsonp请求的理解
最近刚接触laravel框架,首先要写一个跨域的单点登录.被跨域的问题卡了两三天,主要是因为对跨域这快不了解,就在刚才有点茅塞顿开的感觉,我做一下大概整理,主要给一些刚接触摸不着头脑的看,哪里写得不对 ...
- Java Level 2 学习的八大名著
Java Level 2 学习的八大名著 前段时间有几天难得的假期,于是把自己认为Java技术栈中的精华总结了一下,但是一直没有时间写下来,今天终于得空希望本文可以对大家有所启发.通过多个实际项目的沉 ...
- Redis数据类型之字符串String
String类型是Redis中最基本也最简单的一种数据类型 首先演示一些常用的命令 一.SET key value 和GET key SET key value 和 GET key 设置键值和获取值 ...
- (读书笔记)函数参数浅析-JavaScript高级程序设计(第3版)
ECMAScript函数不介意传递的参数个数,因为在其内部是用一个数组进行表示的.在函数体内可以通过arguments对象来访问这个参数数组,就像我们正常访问数组一样处理. arguments对象只是 ...
- 树状数组 && 线段树
树状数组 支持单点修改 #include <cstdio> using namespace std; int n, m; ], c[]; int lowbit(int x) { retur ...
- Zepto 添加手势判断拓展方法(思路+原理)
一.前言 这几个月事情比较多,写了一些博客都没有来得及整理发布,今天刚好有一位同事在开发前端页面的时候用到了手势判断.所以翻出了之前写的 demo,顺便整理一下作为记录. 手势判断在各种应用中都十分常 ...
- Linux--谈父子进程执行过程
fork函数用于从已存在进程中创建一个新进程,新进程成为子进程,原进程成为父进程.这两个进程分别返回他们各自的返回值, 其中父进程的返回值是子进程的进程号,子进程则返回0,因此返回值大于0标识父进程, ...
- jquery使用CSS3实现文字动画效果插件Textillate.js
Textillate是一款基于jquery的使用CSS3实现文字动画的小巧插件.Textillate.js集成了一些很棒的使用CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效 ...