惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Martin Fowler
Martin Fowler
雷峰网
雷峰网
Recent Announcements
Recent Announcements
博客园 - 叶小钗
F
Full Disclosure
C
Check Point Blog
A
About on SuperTechFans
L
LangChain Blog
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
C
Cybersecurity and Infrastructure Security Agency CISA
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
MongoDB | Blog
MongoDB | Blog
Project Zero
Project Zero
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Know Your Adversary
Know Your Adversary
D
Docker
U
Unit 42
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
L
Lohrmann on Cybersecurity
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Latest news
Latest news
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 最新话题
Google DeepMind News
Google DeepMind News
小众软件
小众软件
NISL@THU
NISL@THU
GbyAI
GbyAI
H
Heimdal Security Blog
Jina AI
Jina AI
I
InfoQ
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
P
Proofpoint News Feed
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
aimingoo的专栏
aimingoo的专栏
SecWiki News
SecWiki News
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志

博客园 - sin

2017年6月做的一个梦 开始写诗了 一张判断你是用左脑还是右脑的图 Javascript 刷新框架及页面的方法总集 - sin - 博客园 SQL高级查询技巧 自己写的SQL存储过程分页方法 .net简单添加数据库方法 ASP.NET刷新页面的六种方法 DataGrid传统分页方式 - sin - 博客园 ACCESS"数据库提示它已经被别的用户以独占方式打开,或没有查看数据的权限"的问题 - sin - 博客园 png图片在ie不透明的解决方案和浏览器通用的透明效果 div长度相等的几个办法 在IE浏览器中的奇怪页面表现 HTML标签大全 css杂问题 用css模拟title和alt的提示效果 用Web标准进行开发 div+css 面试题目 有什么有效方法清除多余的CSS代码
95%的中国网站需要重写CSS-写在px和em的区别下
sin · 2007-03-05 · via 博客园 - sin

  95%的中国网站需要重写CSS-写在px和em的区别
  下很长一段时间,我都使用12px作为网站的主要字体大小。10px太小,眼睛很容易疲劳,14px虽容易看清,却破坏页面的美感。唯独12px在审美和视力方面都恰到好处。
  谁对我的网站字体大小有意见?我老爸,他是第一个向我反映看不清我的网站文字的人。这使我意识到12px,其实只是让我觉得很不错而已,而对于那些视力下降明显的中年以上的人来讲,几乎等于10px对于我的感觉。于是我告诉他,在“查看”里调整“文字大小”就可以了。但是却发现这是徒劳的。在Firefox能轻易调整的字体大小,怎么在IE就变得如此”坚不可调“?问题出在哪?我又试着打开中国的三大门户—新浪,网易,搜狐。它们的字体无一例外的在IE里失去可调性。看来这不是我网站独有的毛病。再看看MSN,Google,A list apart,华盛顿邮报,在IE里却是可调的。
  难道IE在字体调整上也搞歧视不成?困扰我的问题直到看到这篇大作:How to size text using ems,才得到彻底的解决。关键点: 1. IE无法调整那些使用px作为单位的字体大小; 2. 国外的大部分网站能够调整的原因在于其使用了em作为字体单位; 3. Firefox能够调整px和em,但是96%以上的中国网民使用IE浏览器(或内核)。这意味这中国网站的字体大小可以被认为不可调。 95%的中国网站需要重写CSS 在我所观察的中国网站中,包括三大门户,以及“引领”中国网站设计潮流的蓝色理想,ChinaUI等都是使用了px作为字体单位。只有百度好歹做了个可调的表率。而在大洋彼岸,几乎所有的主流站点都使用em作为字体单位,也就是可调的。没错,px比em更加容易使用,我也敢打赌大部分读者不知道em为何物或者它相当于多少px。
  国外人士如此重视网站易用性(Accessibility),不仅因为其根生蒂固的人文精神,直接原因可能是因为有一部法律来约束他们—例如美国的Section 508,强制网站达到一定的易用性。所以没有哪个主流站点愿意被那些视力下降或是残缺的人告上法庭。注: 在中国, 可能把微软告上法庭来的更简单点,为什么IE对于px那么死板。如何重写你的网站CSS Jorux.com作为一个对视力下降人士负责任的站点,已经重写了CSS的Font-size部分。在这里,Jorux和各个有人文精神的网站主讨论如何用em重写Font-szie的问题。
   em vs. px em是何物? em指字体高,任意浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。为了简化font -size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。em有如下特点: 1. em的值并不是固定的; 2. em会继承父级元素的字体大小。重写步骤: 1. body选择器中声明Font-size=62.5%; 2. 将你的原来的px数值除以10,然后换上em作为单位;简单吧,如果只需要以上两步就能解决问题的话,可能就没人用px了。
  经过以上两步,你会发现你的网站字体大得出乎想象。因为em的值不固定,又会继承父级元素的大小,你可能会在content这个div里把字体大小设为1.2em, 也就是12px。然后你又把选择器p的字体大小也设为1.2em,但如果p属于content的子级的话,p的字体大小就不是12px,而是1.2em= 1.2 * 12px=14.4px。这是因为content的字体大小被设为1.2em,这个em值继承其父级元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作为其子级,em则继承content的字体高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。 3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明,也就是避免以上提到的1.2 * 1.2= 1.44的现象。比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。
  诡异的12px汉字(原因待查) 本人在完成em转换时还发现了一个诡异的现象,就是由以上方法得到的12px(1.2em)大小的汉字在IE中并不等于直接用12px定义的字体大小,而是稍大一点。这个问题我已经解决,你只需在body选择器中把62.5%换成63%就能正常显示了。原因可能是IE处理汉字时,对于浮点的取值精确度有限。阅读本篇的读者还有其他解释吗?本现象只发生在12px的汉字,英文不存在此现象。你可以在这里下载到此表现此现象的文件。下载后请读者用IE打开sample.htm, 可以看到第一段文字明显长于第二段。然后你可以用编辑器打开style.css,看看究竟发生了什么。解决方法就是把style.css中的62.5%换为63%。
  演示链接还可以做哪些改进为什么还需改进: 1. 你的网站css过于复杂,以至于不知道元素的从属关系,很难重写css; 2. 绝大部分人看了本文之后仍然不会重写css; 3. 很大部分人不知道浏览器可以调整页面的字体大小。所以你需要一个诸如本站信息框中的字体大小调整控件。相信本站读者的英语能力,这里就不再罗嗦了,请参看:The Text Changer

posted on 2007-03-05 09:55  sin  阅读(821)  评论()    收藏  举报