日期:2014-05-17 浏览次数:20630 次
????? 这篇文章很早之前就看了,不过没翻译,为了详细记录工作学习,翻译下,以便下次翻阅。(ps,看完以后,觉得使用YUI css框架来进行页面布局这种n简单。似乎下次翻阅就是深入css源处了)。
????? YUI推出的css框架很不错,reset.css消除各个浏览器对元素的默认值的处理, fonts.css是统一浏览器的字体属性,最最有意思的grids.css,符合yui模板开发就可以达到布局的效果,减轻工作。如果深入学习的话,也有很多宝藏可以挖掘,比如浏览器的兼容性问题。
????? 原文:
?????? ? http://www.thewebsqueeze.com/web-design-tutorials/yui-css-framework-tutorial.html
????? 其实和YUI 提供的doc没什么差别,推荐还是YUI官方文档,YUI提供的文档还是很详细的。
????? (ps,翻译的可能不是很完整,大概意思到了。有错误欢迎大家指正)
?What is YUI?
? Yahoo User Interface 库是由一系列javascript特性和控件组成,用来帮助前端开发者开发丰富的用户界面。
? YUI同样提供了一个很不错的CSS框架来帮组用户开发。这个CSS框架是很轻量的(当缩小了以后仅6KB),使用简单。
? 更加重要的是,它能有效运行在所有的A-grade级别的浏览器。
Why use it?
? 每一个好的UED都会告诉你制作一个好的网站的关键在于使用的是一致性。你的目标就是让用户尽可能少的用脑然后能
? 得知每一处的使用方法。人们看到网站按照一种特定的方式浏览,而YUICSS则覆盖这些常规的设计模式并且当使用的时候需要很少的学习时间。这种方式双赢。
?
? 但是,这个不是说Yahoo在试图让所有人按照他们的方式来设计网站。他们提供足够的空间来进行个性化的设置。
?
?
Reset
? 如果准备使用reset css 文件。非常推荐你深入的看看reset css 即使不使用YUI。每一个浏览器都有自己默认的设置。
? 当浏览器在元素的margins,line-heights,padding这些赋值的时候。如果时刻都写入布局中,网站会显得很粗糙。
? 这个reset方式很简单,并且极其的好用。它覆盖了所有浏览器的默认值,并且使各个浏览器都使用同样的数值。大量的使用? *{margin:0;padding:0}的时代已经过去了。使用reset可以更加的深入程序逻辑中。
?
Font
? font这个部分让浏览器中的所有的元素的单位为em。font所作也是一样,覆盖掉浏览器中无关紧要的默认的font设置。这个 意味着YAHOO 提供了推荐的方式方便定义你的font数值大小。
?
Grids
? YUI提供了一个很简单的方法来布局所有的元素,而且不是用笨重的table
?
? YUI在页面分割的方面提供了常用的模式提供给设计者。当获取wrapper div的时候,就可以定义网站的宽度。且这些同样可以
? 定义其头部、body以及footer,很简单是吧? 下面就是详细的看看
? <!DOCTYPE html>
<html>
??? <head>
??? ?? ?<title>My first YUI Layout</title>
??? ?? ?<link rel="stylesheet" type="text/css" href="css/reset-fonts-grids.css
" />
??? </head>
??? <body>
??? ?? ?<div id="doc2"><!--Wrapper div -> doc, doc2, doc3, doc4, or doc-custom-->
??? ?? ??? ?<!--当定义好wrapper div 以后 header body foot的宽度也已经定义好了。-->
??? ?? ??? ?<div id="hd"></div>
??? ?? ??? ?<div id="bd"></div>
??? ?? ??? ?<div id="ft"></div>
??? ?? ?</div>
??? </body>
</html>
??
?? 现在仔细的看看wrapper 的div。YUI所提供的四种不同的宽度
?? doc-750px; doc2=950px; doc3=100% doc4=974px
?? 当然也同样可以自定义自己的所设置的宽度。
??
Templates
?? 现在已经有页面的基本的布局了,增加的是YUI提供的模板页面了。关于模板的观念是非常的简单的。可以在body(bd)
?? 中设置两个主要的模块的内容。且将内容放在这两个模块之中任意一个。可以通过设置div的class为"yui-b"来设置
?? 块结构。一旦这样设置后,你就需要告知YUI这个块重要的一块。通过设置其div的id为"yui-main"。为何这样设置,是
?? 因为有些的浏览器不支持":first-child"这样的伪类。
??? ...
<div id="bd">
??? <div id="yui-main">
??? ?? ?<div class="yui-b">
??? ?? ??? ?...some content here...
??? ?? ?</div>
??? </div>
??? <div class="yui-b">
??? ?? ?...some content here...
??? </div>
</div>
...
?? 这个就告知YUI哪一块的内容是网站中重点。不管这块内容是在左边还是右边。(最好是将重要的数据放在不重要的数据
?? 的前头,这个就保证了页面的数据在顶部,这个同样帮助SEO)
??
?? 现在已经定义内容块。但是需要告知YUI如何进行展示。仅仅只需要在wrapper div上面添加class声明。YUI提供了6种
?? class值,说明如下:
??
?? .yui-t1 两列,窄的在左边,160px
?? .yui-t2 两列,窄的在左边,180px
?? .yui-t3 两列,窄的在左边,300px
?? .yui-t4 两列,窄的在右边,180px
?? .yui-t5 两列,窄的在右边,240px
?? .yui-t6 两列,窄的在右边,300px
??
??
?? 在wrapper 的div上面添加设置class为yui-t6为常见的布局
?? <div id="doc2" class="yui-t6">
???
??? Special Grids
??? 如果不想使用之前那种定制的模板,想使用3列这样取代两列。或者想添加其他的东西到区域块中。没有问题,
??? YUI有个很不错的布局机制,包含了各种个性化定制的布局。而不用使用table来布局。
???
??? Grids.css在这个方面的工作方式和上面的模板也类似。对于grid有一个外包含的div(grid),和单元cell div (yui-u)工作的方式,和yui-b很相似。参考代码:
??? <div class="yui-g">
??? ?? ?<div class="yui-u first"
>
??? ?? ??? ?...some content here...
??? ?? ?</div>