自适应的标题 3月 18th, 2008 5key Post in web开发 css, web standard 2,262 views
阿里前端(方凳)出了道题,有点意思,想了一方案,给大家分享一下:)
预览地址:http://5key.net/demo/liquid-css-title/
要求如下:
- 宽度自适应
- 标题文字自适应
- 尽量用一张背景图
- 尽量少的嵌套
效果嘛,先给出我的截图如下:
以前曾做过一个自适应宽度的圆角按钮。不过这里有两个自适应在里面,所以也得稍微的修改一下。
1、先来看用到的背景图:
2、代码部分:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>自适应宽度标题 @5key.net</title>
- <style>
- body{margin:0; padding:20px; font-size:12px;}
- .box{background:url(2.gif) no-repeat; height:28px; padding:0 0 0 20px; margin:0 0 10px 0;}
- .innerbox{background:url(2.gif) no-repeat right 0; height:22px; padding:6px 0 0 0;}
- .title{background:url(2.gif) no-repeat -128px -29px; height:22px; float:left; padding:0 0 0 5px;}
- .title span{background:url(2.gif) no-repeat right -29px; height:16px; padding:6px 10px 0 5px; float:left; color:#F60; font-weight:bold;}
- .title1{width:150px;}
- .title2{width:200px;}
- .title3{width:300px;}
- </style>
- </head>
- <body>
- <div class="box title1">
- <div class="innerbox">
- <div class="title">
- <span>我是第一</span>
- </div>
- </div>
- </div>
- </body>
- </html>
将此文推荐到鲜果热文。
您可能还会对这些文章感兴趣»
- 良好的代码注释 (9)
- Wordpress与饭否 (19)
- 关于《CSS权威指南 第三版》 (10)
- 2007年5key.net最受欢迎的十大文章 (5)
- PNG结合CSS渐变文字效果 (14)





这样做就是有个最大宽度的限制。
[回复此评论]
5key reply on 2008年03月19日:
其实这也只是一个相对问题。所谓自适应,真正运用到页面中也无非是几种尺寸。只要保证你背景图片的足够宽,相对的自适应是没有问题的。
[回复此评论]
貌似不错.
[回复此评论]
其实难度不是很高。水平自适应只用一张背景图肯定就是2个容器分别左右嵌套。BTW,圆角里面套圆角,好看吗?
[回复此评论]
5key reply on 2008年03月19日:
这里只是讨论实现方案,对于视觉效果不做考虑。BTW,图片是取之阿里巴巴
[回复此评论]
我觉得他们提出的要求比较苛刻,要尽量用一张背景图,又要少用嵌套。
你的解决方法虽然只用了一张背景图,但是HTML用了三层代码嵌套,太多了。
和糟糕的markup结构比起来,我情愿多用背景图。
[回复此评论]
5key reply on 2008年03月19日:
其实大部分情况,我只会做一层的自适应。外层由于也是圆角,所以带来了麻烦。
在代码优化与视觉设计上需要找寻一个平衡点,并不是说将所有的问题都推向前端工程师。设计的优化,同样也是代码优化的基础。
[回复此评论]
@5key 自适应的圆角确实是很麻烦,总要造成代码结构的冗余,希望各浏览器能够尽快实现CSS3的圆角属性。
[回复此评论]
嵌套太多 很难理清楚 调试细节也比较繁琐
[回复此评论]
晕,四个嵌套还实现不了无限宽度,你还需要加把劲
[回复此评论]
5key reply on 2008年03月20日:
无限只是一个相对概念。你会需要一个2000px宽度的标题吗?当然,修改一下图片,2000px也没有问题。
对于两层自适应宽度,如果你有更好的办法,我很乐意听听。
[回复此评论]
5key reply on 2008年03月27日:
test
[回复此评论]
文字多了会折行,
用white-space:nowrap可以,单firefox,背景不能自动延伸
[回复此评论]
就是计算麻烦了些..
吼吼.
[回复此评论]
大猫 reply on 2008年04月05日:
这哥们儿眼熟…
[回复此评论]
不错的代码,收藏,以后用得着
[回复此评论]
现在做圆角,我觉得还是图片比较好一点。简单
[回复此评论]
你的这个自适应不是完全自适应把,还要改title1的width
我把你的图片改成width:874px,其它没变
这是我做的自适应(当然我们讨论的前提都是不超过图片宽度)
自适应标题
我是老三,前面两位是我兄弟,为了长度超过它们,我只好说些废话了-_|||
半夜睡不着觉,把心情哼成歌,只好到屋顶找另一个梦境
这是一个从C移植到D的代码,原文请见“Embed an HTML control in your own window using plain C”,
谢谢 你的blog,会继续关注你的内容,支持一下~
[回复此评论]