‘CSS+HTML’ 分类的存档

  • CSS Overflow属性详解

    日期:2010.03.07 | 分类:CSS+HTML | 评论数:0

    检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。
    所有对象的默认值是 visible ,除了 textarea 对象和 body 对象的默认值是 auto 。设置 textarea 对象此属性值为 hidden 将隐藏其滚动条。

    overflow属性有四个值:visible (默认), hidden, scroll, 和auto。同样有两个overflow的姐妹属性 overflow-y 和overflow-x,它们很少被采用。

    Visible

    如果你不设置overflow属性,则默认的overflow属性值就是visible。所以一般而言,并没有什么理由特别的设定overflow 的属性为visible除非你想覆盖它在其它地方被设定的值。

    这里需要记住的重要的事情是,尽管盒子外面的内容是可见的,内容并不会影响页面的工作流。比如:

    一般来说,你至少不用为里面的内容为文字的盒子设置固定的高度,这样就不会遇到这种情况了。

    Hidden

    默认值visible的相反的值就是hidden。它会将所有超出盒子的所有内容都给隐藏掉。

    这对应付使用动态的内容,而且可能会由于内容溢出而引起一些布局上的问题的确很有用。尽管如此,请记住用此方法隐藏的内容将彻底的看不到(除非去查看源代码)。 比如有的用户设置他们的浏览器的默认字体比你预期的要大些,你会将一些文字推到盒子的外面然后完全的隐藏之…

    Scroll

    设置一个盒子的overflow值为scroll将会隐藏掉渲染到盒子之外的内容,但是它将会提供一个滚动条在盒子内部滚动,从而可以查看剩下的内容。

    值得注意的是,使用scroll将会同时产生水平和垂直两个滚动条,就算内容只需要其中一个。

    Auto

    overflow的auto值很像scroll,它唯一解决的是在你不需要的时候也会出现滚动条的问题。

    清除浮动

    设置overflow的一个更流行的用处是,说也奇怪,清除浮动。设置overflow并不会在该元素上清除浮动,它将清除自己(self- clear)。意思就是,应用了overflow(auto或hidden)的元素,将会扩展到它需要的大小以包围它里面的浮动的子元素(而不是叠了起来(collapsing)),假设未定义高度。就像这样:

    跨浏览器的烦恼

    就像CSS中的很多东东,overflow有很多的跨浏览器的蹊跷的事情。比如这些:
    滚动条在盒子里面还是外面?

    firefox将其放到盒子外面,而IE则将其放到里面。我认为只有IE是对的(它应该在里面的)。

    看清楚这个明显的不同。

    IE 8 扩展盒子的bug

    IE8有很多有趣的新bug,包括一些非常严重的隐藏在网页中的。这里有更多的关于IE8的overflow的bug的介绍。

    破坏浮动布局

    IE 6, 7 和 8都会扭曲默认的overflow visible值并将水平的扩展一个盒子一匹配内容(比如图片)。 这对使用浮动列布局的结构非常痛苦,而且单个扩展的列就能够将其它列挤下去并使布局乱掉!

    滚动条能用CSS控制吗?

    IE过去在较老的版本中允许这样,但是之后就收敛了。比如许多表单元素,滚动条就不允许使用CSS控制。我在它是否是件好事情上没有任何具体的意 见,但是我可以说,在网站的所有内容上使用滚动条是很丑陋的和俗气的。如果你需要一个美化的滚动条,你或许需要寻找javascript来模拟。

    IE 技巧

    无论是否需要,IE都会一直显示一个垂直的滚动条,这对预防水平跳动是有些作用的,但并非总是可取的。要想在IE中移除它,可以在body元素中设置overflow为auto。

    演示:

    本文的演示页面,可以查看这个页面

    英文原文:The CSS Overflow Property
    中文译文:CSS Overflow 属性

  • CSS网页布局中易犯的10个小错误

    日期:2010.03.07 | 分类:CSS+HTML | 评论数:0

    即使是CSS高手,也难免在书写CSS代码的时候出一些小错误,或者说,任何一种代码都是如此。小错误却往往造成大问题,浪费很多无辜的时间来调试和排错。查看下面这份CSS 网页布局中易犯的10个小错误,努力的修正你可能会犯的错误,加速你的前端开发效率。

    1. 检查html元素是否有拼写错误、是否忘记结束标记

    即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验证功能检查一下有无错误。

    2. 检查CSS是否书写正确

    检查一下有无拼写错误、是否忘记结尾的 } 等。可以利用CleanCSS来检查 CSS的拼写错误。CleanCSS本是为CSS减肥的工具,但也能检查出拼写错误。

    3. 用删除法确定错误发生的位置

    如果错误影响了整体布局,则可以逐个删除div块,直到删除某个div块后显示恢复正常,即可确定错误发生的位置。

    4. 利用border属性确定出错元素的布局特性

    使用float属性布局一不小心就会出错。这时为元素添加border属性确定元素边界,错误原因即水落石出。

    5. float元素的父元素不能指定clear属性

    MacIE下如果对float的元素的父元素使用clear属性,周围的float元素布局就会混乱。这是MacIE的著名的bug,倘若不知道就会走弯路。

    6. float元素务必指定width属性

    很多浏览器在显示未指定width的float元素时会有bug。所以不管float元素的内容如何,一定要为其指定width属性。
    另外指定元素时尽量使用em而不是px做单位。

    7. float元素不能指定margin和padding等属性

    IE在显示指定了margin和padding的float元素时有bug。因此不要对float元素指定margin和padding属性(可以在float元素内部嵌套一个div来设置margin和padding)。也可以使用hack方法为IE指定特别的值。

    8. float元素的宽度之和要小于100%

    如果float元素的宽度之和正好是100%,某些古老的浏览器将不能正常显示。因此请保证宽度之和小于99%。

    9. 是否重设了默认的样式?

    某些属性如margin、padding等,不同浏览器会有不同的解释。因此最好在开发前首先将全体的margin、padding设置为0、列表样式设置为none等。

    10. 是否忘记了写DTD?

    如果无论怎样调整不同浏览器显示结果还是不一样,那么可以检查一下页面开头是不是忘了写下DTD声明。

  • 使用CSS为图片添加的五种特殊效果

    日期:2010.03.06 | 分类:CSS+HTML | 评论数:0

    1、阴影效果
    通过使用带有一些padding之的背景图来添加阴影效果。
    演示:
    http://www.sohtanaka.com/web-design/examples/drop-shadow/dropshadow.htm
    HTML:

    ”"

    CSS:

    img.shadow {
                background: url(shadow-1000×1000.gif) no-repeat right bottom;
                padding: 5px 10px 10px 5px;
    }
    

    2、双边框效果
    这应该是目前最常见的技巧,我们通过以下方式创建说边框。
    演示:
    http://www.sohtanaka.com/web-design/examples/drop-shadow/doubleborder.htm

    HTML:

    CSS:

    img.double-border {
        border: 5px solid #ddd;
        padding: 5px; /*Inner border size*/
        background: #fff; /*Inner border color*/
    }
    

    3、图片外框效果
    webdesignerwall.com上有最好的讲解,这个效果是基于在上面层叠一个有透明度的图片的技术。至于IE6的PNG透明度问题,可以参考这篇教程。
    演示:
    http://www.sohtanaka.com/web-design/examples/drop-shadow/framed.htm

    HTML:

    CSS:

    .frame-block {
        position: relative;
        display: block;
        height:335px;
        width: 575px;
    }
    .frame-block span {
        background: url(frame.png) no-repeat center top;
        height:335px;
        width: 575px;
        display: block;
        position: absolute;
    }
    

    4、水印效果
    你可以通过降低主图片的透明度来让背景图片透过来显示的方法添加水印。
    演示:
    http://www.sohtanaka.com/web-design/examples/drop-shadow/watermark.htm

    HTML:

    CSS:

    .transp-block {
        background: #000 url(watermark.jpg) no-repeat;
        width: 575px;
        height: 335px;
    }
    img.transparent {
        filter:alpha(opacity=75);
        opacity:.75;
    }
    

    5、为图片添加说明文字
    使用绝对定位和透明度的设置来添加灵活的说明。
    演示:
    http://www.sohtanaka.com/web-design/examples/drop-shadow/caption.htm

    HTML:

    Salone del mobile Milano, April 2008 - Peeta

    CSS:

    .img-desc {
        position: relative;
        display: block;
        height:335px;
        width: 575px;
    }
    .img-desc cite {
        background: #111;
        filter:alpha(opacity=55);
        opacity:.55;
        color: #fff;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 555px;
        padding: 10px;
        border-top: 1px solid #999;
    }
    
  • 揭秘HTML5和CSS3

    日期:2009.12.17 | 分类:CSS+HTML | 评论数:0

    HTML5

    HTML 5草案的前身名为Web Applications 1.0,于2004年被WHATWG提出,于2007年被W3C接纳,并成立了新的HTML工作团队。在2008年1月22日,第一份正式草案发布。 HTML 5是近十年来Web开发标准最巨大的飞跃。和以前的版本不同,HTML 5并非仅仅用来表示Web内容,它的新使命是将Web带入一个成熟的应用平台,在HTML 5平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化。那么我们来看一下HTML5的技术概览有哪些:

    HTML5新增和移除的元素

    HTML5新增了很多多媒体和交互性元素如video, audio,在HTML4当中如果要嵌入一个视频或是音频的话需要引入一大段的代码,还有兼容各个浏览器,而HTML5只需要通过引入一个标签就可以,就 像img标签一样方便。在页面布局和内容实现方面HTML5新增了很多结构化标签元素以及块级及语义元素,如果你要用HTML表示一个文件的上传进度条, 在 HTML5中你可以用progress这个元素来表示,它有一个value属性描述了已经完成了多少任务,还有一个属性max描述了这个任务一共需要多 少,还可以通过DOM接口得到这个进度条的position属性(只读),也就是任务完成的百分比。Youtube在HTML5技术上已经做了一个尝试,http://www.youtube.com/html5(需要翻墙) 是用HTML5做的一个DEMO,从整个页面源代码来看,非常简洁。当然HTML5也对一些元素新增了一些属性,如input和textarea的 placeholder属性,相当于输入框的输入提示,script有一个async属性会影响脚本的加载和执行。对于所有的HTML共有的属性我们通常 把它称作是“全局属性”,如class, id, tabindex, title,HTML5也新增了一些全局属性,如contenteditable, contextmenu, hidden等属性。HTML5还增加了对于微数据的支持,如HTML5新增的item, itempro, subject等属性。

    当然HTML5也移除了一些表示页面展现的元素,如font, center, strike等,这些本应该是CSS来做的,所以还是很好理解的,也移除了一些影响网站可访问性的元素如frame, frameset, noframe以及一些不常用的元素如acronym,而采用abbr来表示缩写。HTML5还移除了一些影响客户端兼容性的HTML熟悉,如link的 rev属性,td的scope属性;HTML5也移除了一些表示页面展现的属性如一些元素的align,bgcolor属性。

    HTML5对表单的支持

    HTML5 提供了强大的控件类型如url, email, date, tel等,强大的约束属性,如required表示必填,文件上传的accept属性,以及一些表单重复元素模型的支持,HTML5在提交表单的时候还可 以设置提交的方式为XML提交方式,这样服务器端接收到的数据将是XML格式,HTML5的表单被定义为“Web Forms 2.0”,目前opera9.5+对Web Forms 2.0的支持较为完美。

    点此查看Web Forms 2.0 DEMO,需要Opera9.5+

    HTML5 DOM变化

    HTML5在DOM LEVEL 2 HTML方面很多都是继承自HTMLDocument的接口,当然HTML5在DOM上也有一些值得注意的新成员,如:支持 getElementsByClassName,可以根据class类名选择元素,getSelection()将会返回当前选中的对象,在选择器上面有 两个方法querySelector和querySelectorAll可以根据 css选择符来获取要查询的元素,相当于YUI3中的Y.one和Y.all。

    HTML5的Javascript APIs

    HTML5在Javascript上面新增了哪些API呢?

    • Video/Audio: HTML5为Video和Audio提供了API来让开发者控制他们自己的用户界面,如可以播放或暂停媒体内容。
    • Canvas: Canvas是一个新的HTML元素,这个元素可以被Script语言(通常是JavaScript)用来绘制图形。例如可以用它来画图、合成图象、或做 简单的(和不那么简单的)动画。Canvas是一个神奇的东西,它给我的第一感觉就像是在用Photoshop一样,它的每一个方法跟Photoshop 是那么地相似,通过canvas.getContext(’2d’)就可以得到这个canvas的API,你可以通过fillStyle设置其填充颜色或 是通过strokeStyle设置其描边颜色,甚至它画路径的操作跟Photoshop的钢笔操作更是不谋而合。Canvas在很多网站都已经有应用,如Firefox的实时下载状态统计,甚至还可以用canvas来编写Web Game。
    • Drag&Drop: 在指示设备的视觉媒体中,”Drag”的操作就是鼠标按下(mousedown)并伴随着鼠标移动(mousemove)的事件,而”Drop”则是鼠标 释放时触发的事件。在Drag&Drop里定义了DataEvent和DataTransfer接口,同时当拖拽操作发生时会触发如 dragstart, dragenter, dragleave, drop, dragend等事件。
    • Web Workers: 让Javascript多线程,可以在后台做很多工作而不会阻断当前的浏览器操作。
    • Geolocation: 地理位置定位,运行navigator.geolocation.getCurrentPosition(success,error)这个方法时浏览器 会提示是否要共享你的地理位置,如果选择共享,则会回调success函数,success函数有一个参数是position对象,这个position 对象有一个coords对象,coords对象包含了很多地理位置信息如latitude(维度)和longitude(经度),这样就可以知道你的具体 位置了,这个功能在一些手机如Iphone上已经有广泛的应用了。
    • Application Cache: 这是HTML5对于离线应用的支持,通过在html元素上加一个属性manifest,浏览器会提示你是否要将数据缓存到客户端,如果用户选择了允许,则 会按照指定的manifest文件列表缓存需要的文件,当你的网络不可用时,你还是可以使用这个应用的。对于离线应用,Google也开发了Google Gears浏览器扩展,不过最后Google转投HTML5可能也是看到了HTML5存储和离线应用的这种优势。
    • Storage: Webkit已经实现了database storage,你可以像后端操作数据库一样查询数据并执行一些操作。还有一种存储是键值对存储,如sessionStorage和 localStorage,可以通过setItem和getItem来存储与获取值,相对于Cookie的存储来说,存储的容量要大很多。
    • X-Document Messaging: 浏览器因为安全和隐私的原因,阻止了不同域之间文档的通信,虽然这是一个安全限制,但是对于那些没有危害的不同域的文档通信带来了很多问题,但是 HTML5可以实现这种跨文档通信,让我们可以不用管源域是来自哪里,同时可以防止脚本攻击。

    HTML5让你心动了吗?那么HTML5什么时候会成为标准呢?据说要等到2022年,这有一个很有意思的网站http://ishtml5readyyet.com/告诉你还有多少天HTML5会真正到来。

    点击查看HTML5 DEMO,需要Firefox3.5+/Safari4.0+

    CSS3

    CSS3对于我们Web开发者来说不只是新奇的技术,更重要的是这些全新概念的web应用给我们带来更多无限的可能性,也极大地提高了我们的开发效 率。我们将不必再依赖图片或者Javascript 去完成圆角、多背景、用户自定义字体、3D动画、渐变、盒阴影、文字阴影、透明度等提高Web设计质量的特色应用。

    CSS3在选择器上面的支持

    利用属性选择器我们可以根据属性值的开头或结尾很容易选择某个元素,利用兄弟选择器可以选择同级兄弟结点或紧邻下一个结点的元素,利用伪类选择器可 以选择某一类元素,CSS3在选择器上的丰富支持让我们可以灵活的控制样式,而不必为了选择某些元素给他们加上如”odd”或”even”这样的类名。

    CSS3在样式上的支持

    有一个调查说开发者最期待CSS3的特性是什么,最后票数最多的是“圆角”,不错,圆角这个功能可以给我们这些前端工程师省去很多时间和精力去切图 拼凑一个圆角。CSS3还支持阴影,盒阴影以及文本阴影,渐变,之前你可能是通过IE的滤镜看到过,其实CSS3实现起来更加方便。@font-face 可以自定义字体,如果用传统的方式,VD把一个带有特殊文字的设计图给你让你来实现的话你可能会把它做成一个图片,而通过CSS3用@font-face 就可以了。CSS3对于连续文本换行也新增了一个属性word-wrap,你可以设置其为normal(不换行)或break-word(换行),这解决 了连续英文字符出现页面错位的问题,也不需要后端去截取这个连续字符。使用CSS3你还可以给边框加背景,这在iphone上也有应用的例子。CSS3在 背景上支持背景调整大小,如当你用一张大图要做一个小的元素背景时可以通过background-size来调整背景图的大小来适应这个元素。CSS3支 持opacity, rgba和hsl/a, opacity和rgba的区别是opacity设置的透明对其内容也会产生影响,而rgba只对你应用的元素产生影响。CSS3在布局上对于盒模型提供 了支持,可以设置box-sizing为content-box或border-box,应用为content-box就是正常的模式,而应用为 border-box和IE5.5的盒模型很相似,即元素的宽度包括border和padding,这个在布局上可能会比较方便,不用去管到底这个元素会 占用多大的宽度,而用content-box还需要手动计算一下这个元素实际占用的宽度。

    CSS3对于动画的支持

    CSS3支持的动画类型有:transform(变换)、transition(过渡)和animation(动画)。你可以对特定的属性设置 transition,transiton和animation的区别不大,animation的动画是自己定义的,面向的更多的是脚本开发者,往往更加 复杂。

    为了使用大部分CSS3特性,我们不得不与原来的属性一起使用生产商专有扩展。原因是直到现在,大部分浏览器只支持部分CSS3属性。最常见的私有 属性是用于Webkit核心浏览器的(比如, Safari), 它们以-webkit-开始,以及Gecko核心的浏览器(比如, Firefox),以-moz-开始,还有Konqueror (-khtml-)、Opera (-o-) 以及Internet Explorer (-ms-)都有它们自己的属性扩展(目前只有IE8支持-ms-前缀)

    那我们在开发中该如何去用CSS3呢?

    我觉得首先是遵循一个优雅降级的原则,比如前面谈到的圆角,我们可以针对Firefox和Safari等这些支持圆角的浏览器中应用CSS圆角,而 那些不支持CSS圆角的浏览器则显示为直角。其次就是对于不支持CSS3的浏览器可以使用Javascript来实现,如CSS3任何元素支 持:hover伪类,我们就可以对只支持链接:hover的IE6用JS来实现。最后就是在向用户或老板推广新技术的同时也要关注他们的目标与可行性,不 能为了技术而技术。

    点击查看CSS3 DEMO,需要Firefox3.5+/Safari4.0+

  • 晒一下CSS Sprite(雪碧)

    日期:2009.11.09 | 分类:CSS+HTML | 评论数:0

    今天在网上看了一篇关于css sprite的文章,最近的项目,也一直在用Sprite 雪碧,制作中需要精确的定位。下面收集了一些牛人们的雪碧,晒给大家看看: :smile:

    先晒下我最近项目中的雪碧

    考虑本博的图片限制,图片进行了处理,还请大家谅解! :smile:

    null

    null

    null

    再晒下网络上的↓

    null

    null

    null

    null

    null

    null

    null

    null

    null

    null

    null

    null

    null

    null

    null

最近文章

最近评论

分类目录

紫枫印迹

2010年八月
« 三    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

标签云

CSS+HTML css2.0 HTML5 SEO seo优化 SNS User Friendly2009 VIP web 中文手册 互联网 交互 交互设计 产品 产品设计 产品设计师 体验 信息架构 关键词 制作网页 前端开发 原型 命名规则 垂直居中 小技巧 手机网站开发 按钮 支付宝 李开复 流程 用户习惯 用户体验 用户界面 用户研究 用户访谈 瞬间的设计 网站运营 网页设计 背景 行动 视觉设计 设计 设计师 身体语言 页面重构

用户体验设计(UED)

紫枫友情收藏

86ue_rss

设置