首页 >web前端 >html教程 >CSS3秘笈第三版涵盖HTML5学习笔记13~17章_html/css_WEB-ITnose

CSS3秘笈第三版涵盖HTML5学习笔记13~17章_html/css_WEB-ITnose

WBOY
WBOY原创
2016-06-24 11:22:421050浏览

第13章,构建基于浮动的布局

使用的是float(浮动)属性

注:float:none值将取消所有浮动,通常只用来取消元素中已经应用的浮动。

切记:不需要给正文的div设计宽度,即使设计成固定宽度也不用

用浮动进行布局

LayoutGala网站( http://blog.html.it/layoutgala/)上提供了40种不同的CSS设计,但大多只是基本框架,里面只有

标签及其定位用的CSS代码

布局生成器,Cridinator( http://gridinator.com)提供了简单的工具,用以创建复杂的多列网格系统

在浮动元素中浮动元素,会在列中增加列。

克服浮动问题

清除浮动和保持浮动

footer{    clear:both;}

清除元素两边的浮动

clear属性值:left,right,both

在非浮动的外围元素如

标签中浮动元素,有可能造成当浮动元素高于div里面的其他内容时,从外围元素的底部凸出来,

解决方法:

1、在外围

底部添加一个清除元素

2、浮动外围元素

3、利用overflow:hidden,在外围元素中使用

4、使用Micro Clear Fix

多列布局

CSS3引入了multicolumn layout(多列布局)模块,IE9及其更早版本不支持,multicolumns属性可以在W3C官网上找到: www.w3.org/TR/css3-multicol/,用以创建和预览多列的在线工具: www.aaronlumsden.com/multicol/

第14章,响应式Web设计

响应式Web设计基础知识

响应式Web设计简称RWD。

Ethan Marcotte在他的著作Responsive Web Design中详细讲解了RWD的步骤,原稿: http://www.alistapart.com/articles/responsive-web-design

RWD中结合了三大理念:用于布局的弹性网络、用于图片和视频的弹性媒体、为不同屏幕宽度创建不同样式的CSS媒体查询

在网页

中添加以下代码(标签上方就是它最佳位置)可以忽略手机浏览器对于网页的自动缩放: <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui"><meta name="viewport" content="width=device-width"></pre> </p> <p class="sycode"> CSS的@viewport也可以实现同样的功能,应该将这个代码放在所有样式表前,但目前还有很多浏览器不支持,需要添加供应商前缀才行 </p> <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui">@viewport{ width:device-width; }</pre> </p> <h2>媒体查询</h2> <p class="sycode"> </p> <p class="sycode"> 可以根据目标浏览器的宽高给网页分配样式 </p> <h3>使用媒体查询的策略</h3> <p class="sycode"> 1、调整列 </p> <p class="sycode"> 2、弹性宽度 </p> <p class="sycode"> 3、缩进空白空间 </p> <p class="sycode"> 4、调整字号 </p> <p class="sycode"> 5、修改导航菜单 </p> <p class="sycode"> 6、在手持设备上隐藏内容 </p> <p class="sycode"> 7、使用背景图片 </p> <h3>创建断点</h3> <p class="sycode"> 媒体查询可给告诉浏览器在特定条件下使用特定的样式,特定条件通常被称为断点 </p> <p class="sycode"> 如何进行断点设置呢?简单做法是在网页中打开一个网页,然后使用浏览器窗口句柄,让窗口变窄,在某个点时设计将会变得很难看,这时可以设置一个断点,如此循环。一般来说会设计3个断点,一个针对智能手机,一个针对平板电脑,一个针对桌面型浏览器 </p> <h3>桌面型优先还是手机版优先</h3> <p class="sycode"> </p> <h3>创建媒体查询</h3> <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui"><link href="css/small.css" rel="stylesheet" media="(width:480px)"></pre> </p> <p class="sycode"> 只是新增了media属性,设定条件 </p> <p class="sycode"> IE8及更早版本不支持,通过在文档</p>中添加一些js,也可以让旧版IE支持媒体查询,从 http://tinyurl.com/7w49a6z下载respond.js,引入: <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui"><!--[if lte IE 8> <script src="respond.min.js"></script><![endif]--></pre> </p> <p class="sycode"> 这种只针对精确的查询,最好使用范围值,即借助max-width(小于等于)和min-width(大于等于) </p> <p class="sycode"> 关于浏览器查询信息: www.w3.org/TR/css3-mediaqueries </p> <h2>弹性网格</h2> <p class="sycode"> HTML源码的顺序的重要性 </p> <p class="sycode"> 重置盒模型 </p> <p class="sycode"> 将固定宽度转换成弹性网格 </p> <h2>流式图片</h2> <p class="sycode"> 虽然弹性设计中列会随着浏览器窗口变小而收缩,但图片不会,这就可能导致图片溢出边界 </p> <p class="sycode"> 可以使用如下方式使图片变成具有弹性: </p> <p class="sycode"> 1、首先,添加样式: </p> <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui">img { max-width:100; }</pre> </p> <p class="sycode"> 2、将HTML中所有img标签的height和width属性删除 </p> <h3>流式图片不足</h3> <p class="sycode"> 图片会伸展到列的100%宽度,这就可能发生拉伸超出它的自然宽度,发生形变和失真。 </p> <p class="sycode"> 第15章,定位网页上的元素 </p> <h2>定位属性的功能</h2> <p class="sycode"> CSS的position属性可以控制Web浏览器如何以及在和何处显示特定的元素 </p> <p class="sycode"> CSS提供了4种类型的定位: </p> <p class="sycode"> 绝对定位:通过以pixel、em或percentage为单位设定元素的左右上下方的位置对它进行定位。 </p> <p class="sycode"> 注:不要在一个样式中同时设定float属性和任何一种定位,除了静态定位和相对定位,absolute和fixed也不能和float属性同时应用于同一个元素 </p> <p class="sycode"> 相对定位:相对于它在HTML流中的当前位置进行定位,与绝对定位不同,其他元素并不会占据相对定位元素原来在HTML中所处的位置,相对定位最大的好处不是移动元素,而是给它内部绝对定位元素设定一个新的参照点 </p> <p class="sycode"> 固定定位:固定定位元素会被锁定在屏幕某个位置上。 </p> <p class="sycode"> 静态定位:只是表示网页内容将遵循正常从上到下的HTML流 </p> <p class="sycode"> position属性可以改变任何一个元素的定位,使用以下4个关键字:static、absolute、relative、fixed </p> <p class="sycode"> 注:静态定位元素将不支持以下要讨论的任何一种定位值 </p> <p class="sycode"> </p> <h2>设置定位值</h2> <p class="sycode"> Web浏览器窗口显示区也被称为检视区(viewport),有上、下、左、右4条边,对应CSS属性top、bottom、left、right </p> <p class="sycode"> position属性后面还有更多种属性(top、bottom、left、right) </p> <p class="sycode"> 利用绝对定位在网页上定位元素时,它的具体位置均取决于相关元素在其它标签中所嵌套的位置: </p> <p class="sycode"> 1、如果一个标签的位置是绝对定位的,且它又不在其他任何设定了absolute、relative、fixed定位的标签里面,那它就是相对于浏览器窗口进行定位 </p> <p class="sycode"> 2、如果一个标签处在另一个设定了absolute、relative、fixed定位的标签里,那它就是相对于另一个元素的边框进行定位 </p> <p class="sycode"> 注:在CSS中,术语relative不完全等同于它的本义,可以解读为“相对于我”的意思。即当对一个标签设置relative定位时,意思是“我内部所有定位元素应该相对于我的位置进行定位” </p> <h2>堆叠元素</h2> <p class="sycode"> 一般来讲,定位元素重叠时的堆叠顺序是按照它们在网页HTML代码中的顺序来决定,但可以通过CSS属性z-index来控制定位元素的堆叠顺序: </p> <p class="sycode"> z-index:3;     这个值为数字,数字越大,越接近堆叠顶部,即出现在HTML页面的前面,还可以使用负值,将一个元素定位在其父元素或者其任意一个祖先元素之下。 </p> <p class="sycode"> 注:IE7及更早版本不支持,z-index最大值是2147483647 </p> <p class="sycode"> </p> <h2>隐藏部分网页</h2> <p class="sycode"> 绝对定位元素时常用CSS属性visibility(可见性),隐藏部分网页或显示隐藏部分visibility:hidden(隐藏),visibility:visible(可见) </p> <p class="sycode"> visibility:hidden与display:none类似,不过visibility会在HTML网页留下空白,display不会 </p> <p class="sycode"> opacity属性也可以隐藏元素:opacity:0,完全不可见,opacity:1,完全可见 </p> <h2>强大的定位策略</h2> <p class="sycode"> 综合使用position的定位 </p> <p class="sycode"> 第四部分----CSS高级技术 第16章,设计打印页面的CSS技术 </p> <p class="sycode"> </p> <h2>Media样式表的作用</h2> <p class="sycode"> CSS支持10种不同的媒体类型:all、braille、embossed、handheld、print、projection、screen、speech、tty、tv </p> <p class="sycode"> 应特别注意的3种媒体类型: </p> <p class="sycode"> all:适用于每一种设备,当把样式嵌入或通过外部样式表进行链接时,用的就是这种方式 </p> <p class="sycode"> screen:只适用于显示器 </p> <p class="sycode"> print:只适用于打印网页 </p> <h2>给外部样式表指定媒体类型</h2> <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui"><link rel="stylesheet" media="print" href="print.css"></pre> </p> <p class="sycode"> 技术上来说:@import url(print.css) print;也是可以的,只是IE不支持 </p> <h3>在样式表中指定媒体类型</h3> <p class="sycode"> 在样式表中使用以下语句: </p> <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui">@media print{ /*put your styles for printer in here*/}</pre> </p> <h2>重写文本样式</h2> <p class="sycode"> 使用pixel或em单位对于浏览器而言可能很好,但对打印机并不起作用。浏览器会根据自己的解释将其转换成打印的单位:点(pt),不同浏览器解释不一样,所以最好能够设置成针对打印机的样式使用pt作为单位 </p> <h2>定义打印背景</h2> <p class="sycode"> 1、取消背景元素 </p> <p class="sycode"> 使用background:white;可直接将背景设置成白色,并取消图片 </p> <p class="sycode"> 2、保留背景元素 </p> <p class="sycode"> 3、给打印添加分页符 </p> <p class="sycode"> 使用page-break-before和page-break-after属性 </p> <p class="sycode"> page-break-before:always让Web浏览器在一个指定样式之前插入分页符,是某个元素显示在打印页的顶部 </p> <p class="sycode"> page-break-after:always是某一个元素显示在打印页面最后 </p> <p class="sycode"> 第17章,改正CSS设计习惯 </p> <p class="sycode"> 1、添加注释 </p> <p class="sycode"> 2、组织样式和样式表 </p> <p class="sycode"> 3、样式命名要清晰 </p> <p class="sycode"> 4、根据用途而不是外观命名样式 </p> <p class="sycode"> 5、不根据位置命名 </p> <p class="sycode"> 6、不使用含义模糊的名称 </p> <p class="sycode"> 7、使用多个类可以节省时间 </p> <p class="sycode"> 8、将样式分组:把网页上相关部位所采用的样式集中在一起,把用途相关的样式集中在一起 </p> <p class="sycode"> 9、用注释分隔样式组 </p> <p class="sycode"> 10、使用多个样式表:可以使用@import合并多个样式表,再引入’ </p> <p class="sycode"> 11、消除浏览器的样式冲突:即各个浏览器的默认样式不一致,要对样式重置 </p> <p class="sycode"> 12、使用派生选择器:尽量减少ID选择器的使用,以及减少类的使用 </p> <p class="sycode"> 高级:面向对象的CSS,可登录网站: http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/,还可以在以下网站查看OOCSS项目: https://github.com/stubbornella/oocss,另一种方法称作Scalable and Modular Architecture for CSS(简称SMACSS),这是一种创建可重用CSS组件的简单样式向导。可通过以下网站了解: http://smacss.com </p> <p class="sycode"> 13、给IE尝试不同的CSS </p> <p class="sycode"> IE条件注释基本结构: </p> <p class="sycode"> </p> <p class="sycode"> <pre class="precsshui"><!--[if IE]> /*针对IE的样式*/<![endif]--></pre> </p> <p class="sycode"> 非IE浏览器会当成HTML注释并忽略 </p> <p class="sycode"> 关于IE条件注释更多信息,请登录了解: http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx </p> <p class="sycode"></p> <p class="sycode"></p> <p class="sycode"> </p> <p class="sycode"></p> <p class="sycode"></p> <p class="sycode"> </p> <p class="sycode"></p> <p class="sycode"></p>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn