YUI CSS Foundation讲座 - 博客文库 - 博客园

2023-12-20 04:59

本文主要是介绍YUI CSS Foundation讲座 - 博客文库 - 博客园,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:http://video.yahoo.com/watch/1373808/4732784

某日,从Yahoo!的开发网站上看到一段视频讲座,是由YUI团队的高级工程师,YUI CSS Foundation的作者讲解的.看完视频后,我是受益匪浅,好东西不敢独享,和大家共同分享.

视频地址:http://developer.yahoo.com/yui/theater

作者:Nate Koechley

YUI CSS基础

2007年10月25日

Yahoo!总部

YUI视频专题:http://developer.yahoo.com/yui/theater

更多请关注:http://developer.yahoo.com/yui

YUI(Yahoo! User Interface)

文档: http://developer.yahoo.com/yui

邮件列表: groups.yahoo.com/group/ydn-javascript

博客:  yuiblog.com

Nate Koechley: natek@yahoo-inc.com

声明:由于作者水平有限,本文不是翻译,只是把作者意思表现出来.由于视频过早,有几个连接已经失效.

YUI CSS工具:

Css reset(清除浏览器的css样式)

Css base(对通用元素设置一直的样式基础)

Css fonts(字体排列和字体大小的基础)

Css grids(4k文件中包含了超过1000种的css驱动的线框)

(清晰明了,直观的给我们介绍了网页UI的组成,Reany注)

CSS的不同之处

来自任何地方的属性值可能在形成最终值之前经过了复杂的混合.(这个我们很清楚,我们的web页面很多时候会由于各个浏览器不同会显现出不同的样式,于是,为了统一,我们需要进行以下的工作,Reany注)

有效但有风险

2种主要的布局模型

csscade模型

根据权值和自身(设置)进行规则排序

Inheritance模型

有些属性可以传递给子节点,子节点可以部分的接受(尤其是当值重复的时候,比如"80%")

错误和差异同样会被有效的传递

YUI CSS的目标

为稳定做准备

差异的标准化

解决再利用的问题

集中管理繁杂问题

YUI CSS组件

Reset-干净的基础

Fonts-字体排列控制

Grids-布局和页面控制

Base-基本helper或者说微不足道的库

"Base"是额外的

基础

Helper

Reset

Base

Fonts

Grids

三者的关系

(又是一个直观的图片展示,Reany注)

引用YUI CSS

建议:

1 使用<link>

2 使用 http://yui.yahooapis.com

3 你自己的css连接

更多信息:

http://developer.yahoo.com/performance

引用Reset.css

Href="http://yui.yahooapis.com/2.3.1/build/reset/reset-min.css"

引用Fonts.css

Href="http://yui.yahooapis.com/2.3.1/build/fonts/Fonts-min.css"

引用Grids.css

Href="http://yui.yahooapis.com/2.3.1/build/grids/grids-min.css"

原连接版本

Href="http://yui.yahooapis.com/2.3.1/build/reset-fonts-grids/reset-fonts-grids.css"

(连接的文件默认已经最小化了)(就是被压缩了的,用过css压缩和js压缩的应该知道是怎么回事.Reany注)

使用YUI Grids

1 全面控制页面的宽和居中方式

2 拥有6套预设的模板,可以兼容所有IAB(Internet Architecture Board ,inertnet事物管理委员会,不知道翻译的对不对,我这边不能上网,可能是这个组织吧,Reany注)的广告尺寸,几乎包含Yahoo!的所有页面.

3 轻松创建嵌套的多列区域

大小约 4kb

所有页面的"宽"

750px 居中

950px 居中

974px 居中

100%可变的

(可以轻松的自定义,但是应该很少有机会用到自定义)

控制页面是从根节点开始的.如:

<body>

  <div></div>

</body>

为什么是"div"?

"div元素,与id和class属性一起为文档增加结构,从而提供了通用的组织构造"--w3c

有效的ID值

750px 居中 #doc

950px 居中 #doc2

974px 居中 #doc4

100%可变的 #doc3

750px居中文档

<body>

<div id="doc"></div>

</body>

以此类推

注意:

1 页面的宽是用"EM"定义的.

这也就是说,当用户放大缩小字体时,页面会自动扩展.

在必要情况下,你可以轻易锁定它.

锁定页面的宽

默认:

#doc2{

width:73.04em;

*width:71.313em;

}

重写当地文件来轻松锁定

#doc2{

width:950px;

}

2 "div #doc"可以包含任何东西.

<body>

<div id="doc">

<div id="hd"></div>

<div id="hd"></div>

<div id="hd"></div>

</div>

</body>

3令人惊讶的是,居中仍然无法完全兼容A级系列浏览器(不知道是不是这个意思,这个地方的A级浏览器是指YUI CSS能够得到最好支持的浏览器,Reany注)

浏览器的分级支持

对YUI和Yahoo!获得A级支持浏览器白名单

Win 2000

Win XP

Win Vista

Mac 10.4

Mac 10.5

Firefox 3.†

A-grade

A-grade

A-grade

A-grade

A-grade

Firefox 2.†

A-grade

A-grade

IE 7.0

A-grade

A-grade

IE 6.0

A-grade

A-grade

Opera 9.5†

A-grade

A-grade

Safari 3.1†

A-grade

A-grade

http://developer.yahoo.com/yui/articles/g

(实际应该为http://developer.yahoo.com/yui/articles/gbs,Reany注)

较窄的列指定宽度,主框架的宽是余下的宽度

他们父节点的尺寸是毫无关联的

2列=2段内容

Two content blocks

<div id="doc">

<div class="yui-b"></div>

<div class="yui-b"></div>

</div>

Now ,identify the main block.

这样就标识出了主要区域.

<div id="doc">

<div id="yui-main">

<div class="yui-b"></div>

</div>

<div class="yui-b"></div>

</div>

选择模板类

有效的模板类

在根div上设置面板类

<div id="doc" class="yui-t3">

<div id="yui-main">

<div class="yui-b"></div>

</div>

<div class="yui-b"></div>

</div>

隐式特色:源代码的规则独立

block的规则不会影响布局

重要信息放在前面会提高可访问性,易用性,并且对SEO更友好.

嵌套Grid
最基本的格式

Grid holder: .yui-g

Units: .yui-u

<div class="yui-g">

<div class="yui-u"></div>

<div class="yui-u"></div>

</div>

每个单元格各占一半

进阶: .forst

Grid holder: .yui-g

Units: .yui-u

First unit .first

<div class="yui-g">

<div class="yui-u first"></div>

<div class="yui-u"></div>

</div>

多次嵌套以得到4列

三列如何做?不是平均非配的呢?
特殊的Grid Holder

(.yui-gc 应该为 2/3--1/3,应该是作者手误,文中还有一些小地方我自己更改了,Reany注)

不平均的列

回顾一下:

1 page width: div#doc

2 Templates: .yui-t1

3 Grids: .yui-g .yui-u

4 Fill any space

5 Nestable & Stackable

至此你可以安全快速的构建复杂的布局了

使用YUI的Font

1 几乎全自动

2 安全的设置字体尺寸

3 其他妙处

For free:

Arial(font-family)

13px(font-size)

16px(line-height)

使用百分率
不要使用"px"

px尺寸会使IE丧失缩放字体的能力

总是使用百分比

h1{font-size:123.1%}

.hd h1{font-size:77%}

其他妙处

允许用户缩放

提供适合操作系统的字体

Font tip

避免使用速记字体(自我认为类似font-family下一些字体的缩写,Reany注)

因为不同的浏览器对其解释不相同.

使用YUI Reset

YUI CSS的最底层

建立干净 健壮的CSS基础

小测验:

1 strong元素的默认可视化是什么样的?

2 ul li元素的呢?

答案是: HTML没有可视化(的样式)

那可视化样式是从哪来的

浏览器包含一个 browser.css 文件.(用过FF和opera的指导,自定义很多,当然IE也有,但是可定制的地方太少,Reany注)

这样很好,但是他们都各不相同

Rest.css清除这些浏览器默认样式.

Reset可以做什么

详情请看reset.css(网上有具体的css reset 的文章,不过用的最多的还是YUI的CSS Reset,Reany注)

使用YUI的Base

1 一个几乎微不足道的库

2 恢复reset清除的属性

3 主要针对HTML内容线形页面

使用Grid和Base的页面

计算Em

pixel width/13px="em width"

"EM width"*0.975="IE's EM width"

#custom-doc{

width:46.15em;/* non-IE */

*width:45.04em;/*IE*/

}


说明

EM PX

EM:相对长度单位。相对于当前对象内文本的字体尺寸。

如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。 

PX:像素(Pixel)。相对长度单位。

像素是相对于显示器屏幕分辨率而言的。譬如,WONDOWS的用户所使用的分辨率一般是96像素/英寸。而MAC的用户所使用的分辨率一般是72像素/英寸。

转载于:https://www.cnblogs.com/zjutsxj/archive/2010/04/14/1712250.html

这篇关于YUI CSS Foundation讲座 - 博客文库 - 博客园的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/514839

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni