页面元素

  使用text-align性质可以居中显示块级元素中的文字。把margin-left和margin-right设为auto时,该元素则会相对于父元素居中显示。但是现在流行的一些较低版本的浏览器无法正确地渲染这种外观,如IE5和Netscape Navigator。如果使用了HTML表格中的th元素,单元中的内容是默认居中显示。在水平居中的基础上,可以垂直居中,需要使用到position属性。即

position:abasolute;
top:50%;
left:50%;
margin-top:xx;
margin-right:xx;
height:xx;
width:xx;

局对定位可以使元素脱离文档局流的限制,显示在任何预期的位置。

  如果在Safari浏览器上要使水平线居中显示,应将margin-left和margin-right设置为auto,但对于Mozilla、Firefox、Navigator和IE浏览器,margin值的设置可有可无。改变hr元素的颜色时,考虑到网页在跨浏览器上的健壮性,应同时设置color和background-color属性,因为IE/Win只能识别hr元素的color属性,而Safari、Mozilla、Firefox和Netscape Navigator 6+则支持background-color属性。

列表

  不同浏览器会用不同的手段缩进列表。Mozilla和Netscape 6+浏览器用padding值实现缩排,而IE和Opera则使用margin实现。为了获得跨浏览器效果,需要同时设置列表的margin-left和padding-left值,并利用其中一个属性设定缩进值。如果把缩进值分成两部分,分别在margin和padding 2个属性中声明,将导致列表外观在不同浏览器上的不一致。但列表是body的直接子元素时,如果把margin和padding设为0,列表项标记将超出浏览器的视窗范围。为了使列表项标记停留在视窗可见范围内,至少要将ul的margin-left或padding-left设为1em。

链接和导航

 超链接伪类在层叠的优先级方面是相等的,因此为了避免冲突应按照以下顺序应用这些魏磊:link、visited、hover,最后是active。这个顺序的速记规则是“LoVe/HAte”(规则中的大写字母取自4个伪类的首字符)。无论是已访问的链接还是未访问的链接,都可以同时激活hover和active状态。由于超链接魏磊在叠层显示方面的等级相同,因此最后声明的伪类样式才是用户看到的样式,这就是为什么有时:hover失效的原因。根据叠层规则,如果:hover出现在:active或:visited之前时,hover状态将被因此。

 表单

  1.问题:如何体系用户表单的哪些部分是必需的。

  回答:首先,在要求填写的域的表单标签旁放置警示图标和文字。随后,为成功提交表单所必须填写的域及域对应的标签添加class属性,并将属性值设定为required。接着应用CSS规则改变表单的文字及边框颜色。

 表格

  HTML表格有两种边框模式(model):collapse和separate。collapse模式下表格单元共享边界;separate模式下表格单元有各自的独立边界线。目前除了Firefox使用separate作为默认边框模式,其余浏览器均使用collapse模式。由于CSS标准没有指定这个特性,为了应对新生代浏览器默认模式不一致的情况,应该在CSS规则中莫雀设置collapse模式。用border-collapse属性把边框模式改为collapse的代码如下;

table{
border-collapse:collapse;
}

  表格标题用于描述表格中的内容,一般应该放在表格元素后,thead或tr表格元素之前。标题元素的渲染可能会因浏览器而异。但是caption元素生成的标题在任何浏览器中都可以显示,可以通过CSS样式画,并且利用caption显示表格标题是最具可访问性的方式。

  1.问题:消除只包含一副图片的单元格内的空白。

  回答:把img元素的display属性改为block,作为块级元素显示。

td img{
display:block;
}

由于图片是inline元素,所以浏览器会将图片元素显示在文本内容的基线上方。将图片改成块级元素,会强迫浏览器用不同方式渲染图片。此外,不使用单元格的底边作为问不了内容的显示基线。因为一些字符(如g、p、q和y)是下行字符,这些字符的“底部”会悬挂在基线之下。由于基线实际上是整个文字尺寸的一个比例,所有无法简单地删除基线和下行空间。指示浏览器用其他方式渲染图片文件,能避免浏览器自动生成下行空白区。有时将图片的display属性设为block不一定是删除单元中图片周围的空白区域的最好办法。如果遇到这种情况,可以使用另一种方法删除空白:只要图片高度大于行高,那么将图片的vertical-align属性设为bottom即可。

  2.如何删除单元格之间的空白。

  回答;把表格设置成collapse边框模式,即border-collapse:collapse。

页面布局

  一旦图片的align属性设定为right或者left,图片周围的内容就会流动到图片align属性所取值的反侧。如果图片是右对齐,图片周围的内容就会被强制流动到左侧。

  把position属性设为absolute,可以让元素完全脱离文档布局流的控制。当一个元素被设为浮动时,页面上其他元素会流动在这个“被浮动”元素的周围。但元素被设为绝对定位时,这个元素的处理方式会与常规情况完全不一致。默认情况下浏览器渲染一个绝对定位的元素,会将该元素放在距它最近的绝对定位的诛仙元素或初始包含块的左上角。换句话说,要将父元素中的某个子元素设为绝对定位,首先应将position属性设为absolute或relative(非static)。如果页面上还有其他元素,这个绝对定位的元素会覆盖页面上的其他内容。为了避免这种情况的发生,可以应用一些传统的CSS属性:top、left、bottom及right,这些属性能将元素移动到页面上的任何位置。

  实现“任意顺序列”的方法是通过灵活地使用margin属性来完成的;正的margin值用于预留空间,而负的margin值用于改变各列的原始位置。

  页面布局算法(是一种计算列的附属歪边咀值的简单算法,用于计算如何重新排布列):

  1.对于要将外边距赋负值的列,首先计算出源代码中该列之前所有列的极右点(最右边的那一点)。

  2.然后找到该列的极左点。

  3.最后,用极左点的值减去极右点的值得到元素的左外边距值。

【CSS Cookbook】笔记摘要(二)的更多相关文章

  1. Head First HTML与CSS阅读笔记(二)

    上一篇Head First HTML与CSS阅读笔记(一)中总结了<Head First HTML与CSS>前9章的知识点,本篇则会将剩下的10~15章内容进行总结,具体如下所示. div ...

  2. HTML+CSS学习笔记整理二

    盒子模型CSS(重点) 边框border     边框通常使用连写border:1px(边框大小) solid(实线或其他)  red(颜色) border-collapse:collapse (合并 ...

  3. css布局笔记(二)Flex

    flex Flex是"Flexible Box"的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可指定为Flex布局. .box{di ...

  4. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二

    今天继续分享我的阅读<LEARNING HARD C#学习笔记>知识点总结与摘要二,仍然是基础知识,但可温故而知新. 七.面向对象 三大基本特性: 封装:把客观事物封装成类,并隐藏类的内部 ...

  5. Django学习笔记(二):使用Template让HTML、CSS参与网页建立

    Django学习笔记(二):使用Template让HTML.CSS参与网页建立 通过本文章实现: 了解Django中Template的使用 让HTML.CSS等参与网页建立 利用静态文件应用网页样式 ...

  6. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  7. HTML+CSS学习笔记(3)- 认识标签(2)

    HTML+CSS学习笔记(3)- 认识标签(2) 1.使用ul,添加新闻信息列表 在浏览网页时,你会发现网页上有很多信息的列表,如新闻列表.图片列表, 这些列表就可以使用ul-li标签来完成.ul-l ...

  8. css学习笔记四

    广州天气变冷了,css学习笔记还是要总结. 总结: 1:几米页面静态页面主要是一列结构头部banner图,mainbody部分放文字内容和图书图片,底部是页面的版权信息 2:腾讯软件中心静态页面制作( ...

  9. 转:CSS选择器笔记

    作者: 阮一峰 日期: 2009年3月12日 去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记. 这几天拿出来看了一下,发现很多都忘记了.所以,我决定把它们贴在这里,方便以后查 ...

  10. 《JavaScript面向对象编程指南(第2版)》读书笔记(二)

    <JavaScript面向对象编程指南(第2版)>读书笔记(一) <JavaScript面向对象编程指南(第2版)>读书笔记(二) 目录 一.基本类型 1.1 字符串 1.2 ...

随机推荐

  1. 3.Redis常用命令:String

    字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的Value ...

  2. Myeclipse快捷键以及使用技巧大全-来自网络

    1. 打开MyEclipse 6.0.1,然后"window"→"Preferences" 2. 选择"java",展开,"Edi ...

  3. 【微信开发】PHP中奖概率经典算法实例

    $arr=array("50","30","20"); //这里简单列出三个数 $pro = array_sum($arr); // 概率数 ...

  4. Android查看stdout 和stderr

        在默认状态下,Android系统有stdout和stderr(System.out和System.err)输出到/dev/null,在运 行Dalvik VM的进程中,有一个系统可以备份日志文 ...

  5. Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现

    (一)集合框架: Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(实现接口的类).所有抽象出来的数据结构和操作(算法)统称为集合框架. 程序员在具体应用的时候,不必考虑数据结构和 ...

  6. linux sort命令详解(转)

    sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. 参 数 ...

  7. 图文详解linux如何搭建lamp服务环境

    企业网站建设必然离不开服务器运维,一个稳定高效的服务器环境是保证网站正常运行的重要前提.本文小编将会详细讲解Linux系统上如何搭建配置高效的lamp服务环境,并在lamp环境中搭建起企业自己的网站. ...

  8. Java线程详解----借鉴

    Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...

  9. macOS 中使用 phpize 动态添加 PHP 扩展的错误解决方法

    使用 phpize 动态添加 PHP 扩展是开发中经常需要做的事情,但是在 macOS 中,首次使用该功能必然会碰到一些错误,本文列出了这些错误的解决方法. 问题一: 执行 phpize 报错如下: ...

  10. J2EE struts2MVC应用在线书签1

    序:之前花了一天研究了一下filter,虽然是实现了MVC模式开发了 WebBookmark,但是代码过于冗长,集中在filter中使用if语句不易阅读,为了体现两份作业的不同点,我决定学习 Java ...