CSS的sprite和单位

(1).关于css sprite技术

比方说:

  1. 有个论坛频道,其中有个一些论坛特有的小图标(火啊,顶啊之类),基于整站小图标大团结的思想,这些小图标也放在了那个icon背景图片上了。然而,数年下来,我发现,论坛的那几个图标就论坛这个频道使用了,这几个图标跟着整站走,对于99%的页面而言,是多余的,浪费流量,典型的“占着茅坑不拉屎”!

  2. 数年之后,有些图标要做调整。问题来了,有些图标不记得其他地方有没有使用过,不敢删除,不敢替换。这可维护性立马下降了很多!

改进:

  1. 属性分组:例如,所有分享系列的图标(新浪微博,企鹅微博小图标)集合

  2. 功能分组:所有表示餐厅优惠状态的图标(惠,券等)集合在一起
  3. 直接独立:无亲无故的小图标就不要硬是去攀关系,自己独立一家即可

总结:
    不能执着于某个牛角尖(我要最少的请求数)而破坏了大局的权衡。

(2).绝对单位和相对单位

input, textarea, select这些控件元素本身就有文字大小,默认不会直接继承body等父级标签。因此,我们需要reset下,否则16像素的文字会吓着用户的。

最初的时候,受一些大网站的影响,是这样设置的:

Codeinput, textarea, select { font-size: 12px; }

我看了下,眼睛微博还是这样子的(//zxx: 无数次事实表明,要想举反例,眼睛微博一找一个准):

然而,这种设置很不好。为何,看看上面“螃蟹和章鱼的故事”中螃蟹的下场就知道了!不灵活,不能自动适应,只会变成困兽,任人宰割。

好的做法是这个:

Codeinput, textarea, select { font-size: 100%; }

这个百分之百最佳实践,毋庸置疑,与什么狗屁经验没有一点关系。为什么这样设置?你用了就知道了。

对了,临时想到其他一点东西,我看到很多人写两层标签按钮的时候,会有类似下面的代码:

Code.redbtn { height: 24px; ... }
.redbtn .btn { height: 24px; ... }

如果你不写个高度height就缺乏安全感的话,你这样写也好啊:

Code.redbtn { height: 24px; ... }
.redbtn .btn { height: 100%; ... }

其实呢,有个height是多余的,这样子就够了:

Code.redbtn { ... }
.redbtn .btn { height: 24px; ... }

记住,内外标签如果高度一样,不要同时出现相同的定值。

时间: 2024-08-26 17:43:25

CSS的sprite和单位的相关文章

写一个Sublime Text 2插件(CSS文件里px单位替换成rem单位)

三年前我就知道了sublime text 不过那时候用DW还是很爽的样子,后来有天想为难自己了,于是用了两年的vim和五笔,最近又觉得这么好编辑器也可以试试,改变一下自己,用一下的,不过由于工作的原因,没有坚持下来,有时候顺手似乎比先进更重要一些. 最近工作都是做一些移动端的页面,而微信的长按出现二维码有个bug,在ios里缩放的页面长按是不会出现"识别二维码"的.所以需要转换一下,不要让页面缩放,要自适应,这个时候就用rem单位来做的会比较好一些,而我的同事之前开发了一个px to

CSS 天坑 I - 字体单位

首先,本文所讨论的“坑”是在做回应式网页设计( Responsive Web Design 以下简称 RWD)时显现的,如果你还只是在做传统的Web设计这算不上是一个坑,因为传统的Web页面是死的,不会自动调节不能适应各类设备屏幕尺寸自然不会产生任何尺寸变化的问题.相反地,要为不同设备上的用户提供最好的阅读或使用体验我们不可避免的就是对元素或字体的尺寸的测量与控制.由其是字体的尺寸,不知道你是否有以下的经历 同样的一个网页,同一份样式表,但: 字体在mac 上很漂亮,但在windows很难看 ?

CSS尺寸和字体单位-em、px还是%

在页面整体布局中,页面元素的尺寸大小(长度.宽度.内外边距等)和页面字体的大小也是重要的工作之一.一个合理设置,则会让页面看起来层次分明, 重点鲜明,赏心悦目.反之,一个不友好的页面尺寸和字体大小设置,则会增加页面的复杂性,增加用户对页面理解的复杂性:甚至在当下访问终端 (iPhone.iPad.PC.Android…)层出不穷的今天,适应各式各样的访问终端,将成为手中的一块“烫手的山芋”.所以在近几年,“九宫 格”式的“流式布局”再度回归.为了提供页面布局,及其它的可维护性.可扩展性,我们尝试

css中font-size的单位总结:px、em、pt

px:基于像素的单位.像素是一种有用的单位,因为在任何媒体上都可以保证一个像素的差别确实是可见的. em :一般用来测量长度的通用单位(例如元素周转的页边空白和填充),当用于指定字体大小时,em单位是指父元素的字体大小.比如<div style="font-size=12px"> <span style="fontsize=2em">这里的字是24px</span></div>如果使用em来指定填充,填充的宽度是相对于

css中vw,vh单位对于UC的兼容性问题

vw,vh单位在移动端浏览器不兼容,在网上找半天也没找到什么官方的解决方法:我就试了一下在使用到vh的单位之前添加一个用px定义的样式: 如: 当浏览器不是别100vw单位的时候 就会赋给px单位的样式:

CSS中的尺寸单位

绝对单位 px: Pixel 像素 pt: Points 磅 pc: Picas 派卡 in: Inches 英寸 mm: Millimeter 毫米 cm: Centimeter 厘米 q: Quarter millimeters 1/4毫米 相对单位 %: 百分比 em: Element meter 根据文档字体计算尺寸 rem: Root element meter 根据根文档( body/html )字体计算尺寸 ex: 文档字符"x"的高度 ch: 文档数字"0&q

CSS - 精灵Sprite

一张大图中包含很多小图,结合css的 "height", "width", "background-image","background-repeat","background-position"的组合进行背景定位. <head> <meta charset="UTF-8"> <title>Document</title> <styl

css字体单位

今天我们就来看一下css中的字体单位.或者你会说,不看不知道,一看吓一跳,原来css有那么多的字体单位啊,虽然有一些我们很少用,或者说没用过,但,,,它就在那里.一起去看一看吧. css中的字体单位主要分为两种类型:绝对长度单位和相对长度单位. 1.绝对长度单位:所谓绝对长度单位就是说它是一个固定值,它反映的是一个实实在在的物理尺寸,说多大就是多大,绝对长度单位不依赖于环境(显示器.分辨率.操作系统等.绝对长度单位分为以下几种: cm:厘米   mm:毫米 in:英寸(1in = 96px =7

Css Sprite 图片等比缩放图片大小

图片大小80*40,即每张图片大小40*40,如何以20*20显示图片?1. 首先看下如何以40*40显示第二张图片: 正常显示css代码 .sprite { background-image: url(spritesheet.png); background-repeat: no-repeat; display: block; } .sprite-circle { width: 40px; height: 40px; background-position: -40px 0; } 正常显示ht