Heim >Web-Frontend >HTML-Tutorial >CSS3秘笈第三版涵盖HTML5学习笔记13~17章_html/css_WEB-ITnose

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

WBOY
WBOYOriginal
2016-06-24 11:22:421051Durchsuche

第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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn