《Web标准设计》读书笔记
2012-05-30 22:39 臭小子1983 阅读(240) 评论(0) 编辑 收藏 举报第一章 Web标准
一、CSS的作用
网页 = 结构 + 表现 + ?
N个网页就是 N*网页 = N*结构 + N*表现 + N*?
二、CSS布局 vs 表格布局
css布局与表格布局哪种更优:
css布局可以很简单实现网站换肤,css布局可以让网页一边载入一边显示,css布局可以让网页变得更小
三、常见标签
<a href="http://www.ss.com" title="前端开发">前端开发</a>
a 为标签 title为属性 前端开发为值
四、标题标签
1、<title>:页面标题
2、<h>系列:h1至h6,<h1>为最顶级标题,<h2>为副标题,<h3>为sidebar(侧边栏)的栏目使用
3、<caption>:表格的简要描述
4、<legend>:表单的<fieldset>标题,
五、内容标签
1、<p>:表示用来区分段落 <p>aabbcc</p>
2、<br>:换行.
3、<strong>、<em>:强调某一内容,strong重点强调
4、<ins>、<del>:del删除内容简介
5、<q>、<cite>:引用一句话的话可以使用<q>
六、列表标签
1、<ul>:无序列表
2、<ol>:有序列表
3、<dl>:自定义列表
<dl>
<dt>标题</dt
<dd>内容</dd
<dd>内容</dd
</dl>
七、表单
1、<form>:申明表单,定义采集数据的范围,<form>和</form>面包含
2、<fieldset>、<legend>:fieldset对表单进行分组,legend它的标题
<fieldset> <legend>个人爱好</legend> <input type="checkbox" name="link" /><label> </fieldset>
八、块元素与内联元素
1、block块元素的特点:总是在新行上开始;高度,行高以及顶和底边距都可控制;宽度缺省是它的容器的100%,除非设定一个宽度。
例如:<div>, <p>, <h1>, <form>, <ul> 和 <li>......
2、inline内联元素的特点:和其他元素都在一行上;高,行高及顶和底边距不可改变; 宽度就是它的文字或图片的宽度,不可改变。
例如:<span>, <a>, <label>, <input>, <img>, <strong> 和<em>......
块元素与内联元素的嵌套规则:块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只是包含其他的内联元素。
九、div与span的差别
div为块元素,span为内联元素
第二章 CSS-网页美容师
一、基本结构
选择符合{ 属性:属性值 }
h1 { color : #00ff00 }
二、样式表中的注释
/* 注释内容 */
三、选择符的使用
1、通配选择符:*:匹配任意元素, *{ color: red }
2、类型选择符:E { }:匹配任意元素 a { dispaly:block }
3、包含选择符:E F {}:包含选择符,也叫派生选择符和后代选择器 p strong { color:blue; }
4、子对象选择符:E > F {}:匹配E父元素下面的F元素 body > p { color:red }
5、相邻选择符:
E + F {}:匹配同辈元素相邻的元素 h1 + p { color :red }
<h1>哈哈哈</h1>
<p>拉拉拉</p>
四、属性选择符的使用
1、匹配属性:E[attr]:匹配指定的元素下的属性; h2[title]{color:red } 匹配h2下有title属性的
2、匹配属性值:
E[attr=value]:匹配E元素下具有attr属性且值等于value; input[type=passwrod]{ background:#ccc; }
E[attr!=value]:匹配E元素下具有attr属性且值不等于value; input[type=passwrod]{ background:#ccc; }
E[attr~=value]:匹配具有attr属性且属性值是用空格分隔列表; span[title~=csser]{ font-weight:blod } <span title="haha csser"></span>
E[attr|=value]:匹配具有attr属性且属性值是用连字符(-)分隔; span[title|=csser]{ font-weight:blod } <span title="csser-haha"></span>
3、类选择符:E.className:匹配E元素下带有className; p.first{ color:red }
4、ID选择符:#ID: #first{ color:red; }
5、选择符分组:selector,selector { }:把多个相同定义选择符合并起来 body,ul { padding:0; }
五、伪元素与伪类
伪类:
1、:first-child:匹配在同一父亲元素下指定元素的第一个
.tab li:first-child { background:#CCC; } <ul class="tab"> <li>aaaa</li> <li>bbb</li> <li>ccc</li> </ul>
2、链接伪类::link:表示没有访问过的链接 :hover:鼠标移上去的状态 :active:表示鼠标点击按下的状态 :focus:表示得到焦点的状态
3、语言伪类::lang
伪对象
1、:first-letter:对象的第一个字符的样式表属性
p:first-letter{float:left; font-size:2.5em; color:red; }
2、:first-line:对象的第一行样式
p:first-line{ color:red }
3、:befor和:after:在元素之前和元素之后配合content属性添加内容
strong:before { content:"我来自CSS"}
strong:after { content:"我也是来自CSS"}
<strong>哈哈</strong>
返回:我来自CSS哈哈我也是来自CSS
六、常用单位
1、长度单位
相对长度单位:px,em,ex,px,%等;
绝对长度单位:pt,mm,in,cm,pc等;
1em指一个字体高,默认情况下大多数浏览器字体高都是16px,1em=16px,12px = 0.75em, 10px = 0.625em
换行 12/16 = 0.75em 10/16 = 0.625em;
2、百分比单位
百分比总是相对于另一个值来说的,百分比是用父亲作参照物,例如一个元素为50%,父元素为1000,那么他就为500;
3、颜色单位
rgb: p{ color:rgb(red,grren,blue) }
十六进制:p{ color:#000fff }
七、应用在css在网页上
1、链入外部样式表:<link rel="stylesheet" href="afox.css" type="text/css" media="all" title="Afox" />
rel:用于定义连接的文件和HTML文档之间的关系
href:属性用于指定外部样式表的地址
type:用于指定媒体类型 text/css允许浏览器忽略它们不支持的样式表类型
media:属性用于指定样式表被接受的介质或媒介,也就是设备:
title:用于定义样式的名称
2、定义内部样式
写在<head></head>之间
<style type="text/css" media="all">
body{ color:#000; }
</style>
3、定义内联定义
<h1 style="font-size:3em;">内联定义样式</h1>
4、导入指定的外部样式表
@import url("base.css")all
5、各种方式的差异
外链样式有一个好处就是:它会给当成一个资源,像图片一样,会存在于你本地缓存,这样的话就不会每次访问一具网页时,重新加下载一次的需要样式,
<link rel="stylesheet" href="afox.css?date=070101" type="text/css" media="all" title="Afox" />
href="afox.css?date=070101" 用参数欺骗服务器
6、优先权的计算
具体计算在各种情况下的数字加成,形式以0,0,0,0
1、直接写在标签上优先级为1,0,0,0 例:<div style="font-size:2em"></div>
2、每个ID选择符为0,1,0,0 例:#nav{}
3、每个class选择符为0,0,1,0 例:.nav{}
4、每个元素或伪元素等为0,0,0,1 例: :frist-child{}
5、其它选择符包括全局选择符*加0,0,0,0
有!important声明的规则的高于一切
第三章 用XHTML和CSS来“摆”网页
一、<meta>
<meta name="description" content="是一个提供4A互动作品,互动数字媒介,创意稀奇有趣,有趣新鲜,互动广告公司招聘,互动创意作品的中国新锐视觉媒体" />
<meta name="keywords" content="数字营销,互动营销,网络广告,互动广告,互动公司,互动行业,网络营销,国际4A,4A广告公司,数字媒体,数字媒介,互动代理,广告公司招聘,互动公司招聘,互动广告公司招聘,4A招聘,整合传播,创意稀奇有趣,互动创意作品,新锐互动媒体" /><meta name="robots" content="index, follow" />
name="keywords"和name="description"分别表示关键字和关键字的描述,这两个属性是服务于搜索引擎,
二、文字的表现
1、font-family:字体的名称
2、font-style:字体样式,属性:normal 普通字、italic 斜体字、oblique 倾斜的字体
3、font-variant:设置对象中的文本是否为小型的大写字母,normal 正常的字体、 small-caps 小型的大写字母字体 就是小写字母都用大写来表示
4、line-height:表示行与行基线之间的高手度
5、text-align:控制文本的对齐方式,left 左对齐、right 右对齐、center 居中、justify 两端对齐
6、letter-spacing:控制对象中的文字之间的间隔
7、word-spacing:控制对象中的单词之间插入的间隔
8、text-indext:设置对象中的文字缩进,text-indent:2em
9、text-decoration:对象文本的装饰,常见链接下划线,text-decoration:underline;
三、Margin与padding、border
margin外边距,padding内边距,border边框线
让整个div居中可以使用margin:0 auto; width:500px;
四、outline
去除链接虚线框的推荐方法
<a href=”#” hidefocus=”true” >链接</a>
a:focus {
outline:none;
}
五、文字旁边的图片
vertical-align属性:
值:
baseline:让该元素的基本线和父亲元素的基本线对齐,如果没有基线,就该元素底部与父元素的基线对齐
top:顶端对齐 middle:中部对齐
六、图片浮动
给指定的img元素加float属性 left、right
七、Min和Max
1、min-width:最小宽度 2、max-width:最大宽度
3、min-height:最小高度 4、max-height:最大高度
第四章 各种浏览器
一、兼容之道
Hack:所谓的Hack就是钻浏览器的空子,利用正规或不正规的写法,或利用某些浏览器对CSS的支持不完整来完成对某个浏览器单独的定义
二、条件注释
<!-- [if IE 6]> 条件注释的内容 <![end if]-->
三、兼容问题
1、IE 3px bug:当浮动元素后面跟着文本或者只是一个普通容器时,浮动元素会与产生的3px的间距,问题存在IE6
<style type="text/css">
/* 解决问题是 _margin-right:-3px */ #floatbox { float:left; width:70px; height:120px; border:6px #68f solid; _margin-right:-3px; } #textwrapper{ border:3px #000 solid; } #jog-box { margin-left:90px; border:3px #f66 solid; } </style> <div id="floatbox">Float元素</div> 跟在浮动元素后面的文字 <p id="textwrapper">这多了个容器<br />还给这个容器加个边框</p> <div id="jog-box">这个容器多了个margin-left<br />传说中的测试文字<br />传说中的测试文字</div>
2、Layout初体验:它是IE私有的概念,
layout能做什么:1、IE许多常见的浮动Bug 2、元素本身对一些基本属性异常处理问题 3、容器和其子孙之间的边距重叠问题 4、使用列表时遇到的诸多问题 5、背景图像定位偏差问题 6、使用脚本时遇到浏览器之间处理不一致的问题.
3、浮动元素双边距
双边距解决方法:将双边距元素设置为display:inline
<style type="text/css"> body { margin:0; border:0; padding:0; } #floatholder { float:left; margin:0 50px; width:70px; height:120px; border:6px #68f solid; display:inline } </style> <div id="floatholder"> <div id="floatbox">IE边框若显若无,须注意,定是高度设置已忘记;</div> 浮动产生有缘故 </div>