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

推荐订阅源

P
Privacy International News Feed
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
云风的 BLOG
云风的 BLOG
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Announcements
Recent Announcements
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LangChain Blog
The GitHub Blog
The GitHub Blog
aimingoo的专栏
aimingoo的专栏
Scott Helme
Scott Helme
腾讯CDC
T
Threat Research - Cisco Blogs
P
Palo Alto Networks Blog
Cloudbric
Cloudbric
K
Kaspersky official blog
B
Blog RSS Feed
博客园_首页
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
G
Google Developers Blog
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
Vercel News
Vercel News
The Last Watchdog
The Last Watchdog
S
Schneier on Security
T
Tor Project blog
雷峰网
雷峰网
博客园 - 司徒正美
H
Hacker News: Front Page
I
Intezer
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Help Net Security
Help Net Security
WordPress大学
WordPress大学
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
V
Vulnerabilities – Threatpost
Forbes - Security
Forbes - Security
Google DeepMind News
Google DeepMind News
T
Threatpost

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活 翻译 – CSS Sprites:实用技术还是生厌之物? « 张鑫旭-鑫空间-鑫生活 纯CSS实现易拉罐3D滚动效果 « 张鑫旭-鑫空间-鑫生活 纯CSS实现侧边栏/分栏高度自动相等 « 张鑫旭-鑫空间-鑫生活 CSS+JavaScript实现页面不同布局的切换 « 张鑫旭-鑫空间-鑫生活 JavaScript实现最简单的拖拽效果 « 张鑫旭-鑫空间-鑫生活 自己写的无图片版jQuery zxxbox弹出框插件 « 张鑫旭-鑫空间-鑫生活 中国古代道家思想与网页重构的思考 « 张鑫旭-鑫空间-鑫生活 让所有浏览器支持HTML5 video视频标签 « 张鑫旭-鑫空间-鑫生活 纯CSS实现各类气球泡泡对话框效果 « 张鑫旭-鑫空间-鑫生活 JS HEX十六进制与RGB, HSL颜色的相互转换 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变、高光等文字效果 « 张鑫旭-鑫空间-鑫生活 去除冗余 – 精简您的CSS样式代码 « 张鑫旭-鑫空间-鑫生活 对overflow与zoom”清除浮动”的一些认识 « 张鑫旭-鑫空间-鑫生活 jQuery Pagination Ajax分页插件中文详解 « 张鑫旭-鑫空间-鑫生活 absolute绝对定位的非绝对定位用法 « 张鑫旭-鑫空间-鑫生活 网页布局思想浅议-淘宝新版首页为实例 « 张鑫旭-鑫空间-鑫生活 回流与重绘:CSS性能让JavaScript变慢? « 张鑫旭-鑫空间-鑫生活 CSS float浮动的深入研究、详解及拓展(二) « 张鑫旭-鑫空间-鑫生活 CSS float浮动的深入研究、详解及拓展(一) « 张鑫旭-鑫空间-鑫生活 60个极富创造性的震撼的电影海报设计 « 张鑫旭-鑫空间-鑫生活 jQuery Lightbox(balupton版)图片展示插件讲解 « 张鑫旭-鑫空间-鑫生活 博客内嵌flash音乐播放器代码、下载与使用 « 张鑫旭-鑫空间-鑫生活 CSS3 animate实现图片墙3D翻转效果 « 张鑫旭-鑫空间-鑫生活 图片旋转效果的一些研究、jQuery插件及实例 « 张鑫旭-鑫空间-鑫生活 CSS3 border-image详解、应用及jQuery插件 « 张鑫旭-鑫空间-鑫生活 jQuery-两款不同原理的圆角插件讲解 « 张鑫旭-鑫空间-鑫生活 页面可用性之outline轮廓外框的一些研究 « 张鑫旭-鑫空间-鑫生活 CSS3 transition实现超酷图片墙动画效果 « 张鑫旭-鑫空间-鑫生活 HTML CSS列表元素ul,ol,dl的研究与应用 « 张鑫旭-鑫空间-鑫生活 jQuery图片文本滚动切换插件jCarousel中文翻译与详解 « 张鑫旭-鑫空间-鑫生活 酷酷的jQuery鼠标悬停图片放大切换显示效果 « 张鑫旭-鑫空间-鑫生活 IE6下z-index犯癫不起作用bug的初步研究 « 张鑫旭-鑫空间-鑫生活 checkbox复选框的一些深入研究与理解 « 张鑫旭-鑫空间-鑫生活 jQuery之使用slideToggle实现垂直下拉菜单 « 张鑫旭-鑫空间-鑫生活 jQuery-innerfade内部列表自动淡入淡出插件 « 张鑫旭-鑫空间-鑫生活 jQuery-火焰灯效果导航菜单 « 张鑫旭-鑫空间-鑫生活 IE下css bug集合-翻译自haslayout.net « 张鑫旭-鑫空间-鑫生活 翻译-IE7/8@font-face嵌入字体与文字平滑 « 张鑫旭-鑫空间-鑫生活 jQuery-马化腾产品设计与用户体验的一些技术实现 « 张鑫旭-鑫空间-鑫生活 像素的世界及其在web开发制作中的应用 « 张鑫旭-鑫空间-鑫生活 css行高line-height的一些深入理解及应用 « 张鑫旭-鑫空间-鑫生活 CSS实现圆角六色渐变自适应按钮详解 « 张鑫旭-鑫空间-鑫生活 我熟知的三种三栏网页宽度自适应布局方法 « 张鑫旭-鑫空间-鑫生活 jQuery照片图像剪裁插件Jcrop中文翻译详解 « 张鑫旭-鑫空间-鑫生活 Ajax Upload多文件上传插件翻译及中文演示 « 张鑫旭-鑫空间-鑫生活 告别图片—使用字符实现兼容性的圆角尖角效果beta版 « 张鑫旭-鑫空间-鑫生活 大小不固定的图片、多行文字的水平垂直居中 « 张鑫旭-鑫空间-鑫生活 jQuery boxy弹出层对话框插件中文演示及讲解 « 张鑫旭-鑫空间-鑫生活 JavaScript实现新浪微博文字放大显示动画效果 « 张鑫旭-鑫空间-鑫生活 翻译:让网络更快一些——最小化浏览器中的回流(reflow) « 张鑫旭-鑫空间-鑫生活 jQuery之addClasas与removeClass使用实例 « 张鑫旭-鑫空间-鑫生活 关于Google圆角高光高宽自适应按钮及其拓展 « 张鑫旭-鑫空间-鑫生活 JavaScript实现图片幻灯片滚动播放动画效果 « 张鑫旭-鑫空间-鑫生活 jQuery-鼠标经过显示大图并跟随鼠标效果插件 « 张鑫旭-鑫空间-鑫生活 关于gif图片(或png8)杂边锯齿的问题 « 张鑫旭-鑫空间-鑫生活 对html与body的一些研究与理解 « 张鑫旭-鑫空间-鑫生活 鲜为人知的一个解决兼容性问题的利器——小数 « 张鑫旭-鑫空间-鑫生活 搜狐白社会似iphone短信对话框效果的优化 « 张鑫旭-鑫空间-鑫生活 关于文字内容溢出用点点点(…)省略号表示 « 张鑫旭-鑫空间-鑫生活 jquery之append与insertBefore使用实例 « 张鑫旭-鑫空间-鑫生活 jQuery之图片关联伸缩效果 « 张鑫旭-鑫空间-鑫生活 jquery之图片左右切换动画效果 « 张鑫旭-鑫空间-鑫生活 jQuery之replace字符串替换实现不同尺寸图片切换 « 张鑫旭-鑫空间-鑫生活 jQuery-实现图片的放大镜显示效果 « 张鑫旭-鑫空间-鑫生活 jQuery-单击文字或图片内容放大显示效果插件 « 张鑫旭-鑫空间-鑫生活 reflection.js-实现图片投影倒影效果js插件 « 张鑫旭-鑫空间-鑫生活 jQuery-很酷的弹出层效果js插件 « 张鑫旭-鑫空间-鑫生活 复选框单选框与文字对齐问题的研究与解决 « 张鑫旭-鑫空间-鑫生活 css margin的相关属性,问题及应用 « 张鑫旭-鑫空间-鑫生活 IE6下png背景不透明问题的综合拓展 « 张鑫旭-鑫空间-鑫生活
翻译:CSS中的糟粕 « 张鑫旭-鑫空间-鑫生活
张鑫旭,zhangxinxu · 2012-03-21 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from http://www.zhangxinxu.com
本文地址:http://www.zhangxinxu.com/wordpress/?p=2305

———–以下为翻译正文—————-

每种程序语言都有其精华与糟粕的部分。CSS(我知道,CSS不是程序语言,但又何妨?)也不例外。

本文我除了发牢骚还是发牢骚。我已经给网站敲代码敲了12年了,其中有一半的时间是在折腾CSS布局(没错,哥我大器晚成)。我想到要去认识到CSS中的精华与糟粕,而这里,我要讲的是”糟粕”。

“标准”盒模型

虽然这已经讨论够多的了,还是忍不住多唠叨。比如说宽度,我们在计算元素宽度总要把padding值,这是很头疼的,虽然可能最终我们都习惯了。

box-sizing属性算是及时雨,主流浏览器都支持,实际上IE8也是支持的。因此,我们终于可以把W3C盒模型弃之脑后了。

译者吐槽:某些人不先搭围墙再建房,而是先建房子再搭围墙,结果围墙跑到别人家土地上,还怪围墙的不好——为何增大了面积!

font缩写

这个我之前就讨论过了,font属性可声明的6个属性变成缩写值是没有道理的。

对于大部分的可缩写属性,缩写并不是个问题。您可以声明你想要的,任何选项都可以缺失,如果没有则会应用初始值。例如list-stylebackground没有应用的值99%的时间无论如何都不会被继承的,所以值的设置与否无伤大雅。

但是,很多排版属性都预期从父辈继承。因此,当你使用font缩写,事情会变得混乱。如果你对该属性的复杂性不熟悉,估计你要抓破脑袋了。

换句话说,如果我在<body>元素上声明文字粗体,我可能本希望里面的文字都继承粗体。结果,一旦应用了缺少font-weight缩写属性的font缩写,文字不是粗体显示的了。

译者吐槽:这我赞同,font缩写少用,适合用在无后的特殊文字上。好比江湖仇杀,上一代恩怨上一代解决,牵扯到下一代那剧情就复杂了。

浮动

是的,我们总在使用浮动,我们已经习惯于使用我们知道的唯一方法布局我们的页面。基于浮动的布局要很多基于表格的布局的同样问题——尽管不是很大,也有其优点。

float属性的主要目的是让inline内容包裹block水平元素显示。使用浮动创建列表,某种意义上说属于hack. 类似于我们改变了table原本用途创建整个页面一样,我们现在也同样改变者浮动的本身用途。

话虽如此,毕竟浮动没有基于表格布局的可访问性的问题、维护问题以及性能问题。因此,我们现在更逢源些。

但是,浮动不是省心的主,其会造成内容消失,这显然需要修复。他们是IE很多margin bug的罪魁祸首(但这显然是供应商的问题)。他们总是那么地不听话

尽管CSS Regions以及flexbox已经开始出生了,但是距离我们完全抛弃基于浮动的布局及其怪癖还需要很长一段时间。

译者吐槽:浮动确实不是好东西,我之前就说过“浮动是魔鬼”。至于布局嘛,目前而言,流体布局才是王道。对了,这里提到的flexbox可以参见我先前“CSS box-flex属性…”一文。

私有前缀

这个还需要解释吗?

译者吐槽:作者桑麻,你是不是写这段的时候看《屌丝女士》笑岔气写不动啦。要知道,不是所有的人都见过猪跑的~~~

id和样式同流

是的,你可以继续使用id, 但是,请不要挂钩样式使用它们。很多人仍然不同意我。但是,这里我们没有任何理由使用它们。class可以做id可以做的任何事情,且好处更多。

id应该几乎全部用在片段标识符上,应和脚本挂钩。因此,我的建议是,在你的标记中应该有大量的id, 而与样式挂钩的只能是class, 然后你就会神奇地看到你的CSS文件原来是这样的可亲可耐。最大的好处是,你可以完全忘记特殊性问题

译者吐槽:从管理和维护的角度讲,id牵扯脚本,class牵扯样式,确实不容易产生混乱以及维护。但是,有时候,我们做做demo小页面什么的,怎么顺手怎么来吧。管理50人团队的经验不一定适用于管理5个人的团队。

vertical-align

这是个听上去还蛮简单的属性,实则不然。其只在少部分情况下受用,在大多数情况下,只能坐冷板凳,睡队友沙发。

vertical-align表现不错的一个地方就是表格单元格,因为其与老的valign属性干得类似的事情,所以对于这种情况很好理解。

vertical-align在单元格和其他元素上的表现大相径庭,这使用vertical-align成为了CSS中“360烦恼风(海贼王 索隆 招式)”。

译者吐槽:作者讲得废话比我还多。一句话,vertical-align兼容性差,用处不大。实际上,其还有有很多地方有妙用的。之前我写过分析vertical-align的文章,您可以尝试点击这里查看IE6-8浏览器是如何错误解析vertical-align属性的。

垂直方向margin重叠

这个概念很直观,且我并不知道其发生的原因。但基本上是在某些特定情况下,如一个块状元素的底部margin和另外一个块状元素的顶部margin接触在一起的时候,那个小的margin会被合并成0.

这儿有篇文章可以帮助你理解何时margin重叠会发生,何时不会发生。好的是,它一般不构成什么威胁,但是在极少数情况下,看不出原因的,页面作者明确定义的东西会抽风。

译者吐槽:从这段内容,我感觉出原作者属于经验积累式的开发人员,而非深入研究型,对很多问题缺少甚解。

在我看来,垂直margin重叠原本意义是让具有margin属性的元素们间距等宽,是个很赞的具有创造性的特性。举例而言,一篇文章,每段都是个p标签,默认上下1em margin, 正因垂直margin冲的,才使得每个段落的上下间距都是一模一样的1em. 而我们日后所谓margin重叠问题更多的是我们把飞机上的零配件拿到拖拉机上使用。

还有,作者所说的“margin重叠是小的margin值效果会变得犹如0值一样”是不正确的。举个很简单的例子,1emmargin-bottom值和-1emmargin-top值亲亲我我的时候,较小的-1em margin值会被合并成0吗?显然不是!

关于margin重叠何时发生还可以参见我老早写的“CSS margin相关属性”一文,中文版哦。

width: 100%

类似于vertical-align, 这是另外一个不按照我们想法来的CSS技术。但是,一旦你理解了百分比宽度是如何工作的,那接受它也不是很难。

初学者刚开始使用CSS的时候,他们可能希望盒子能够填满水平空间,他们的第一反应就是设置width:100%。似乎元素会铺满剩余空间,不需要再计算宽度。但这不是100%干的活。

CSS中的百分比通常相对于其他CSS设置(例如父元素)。width:100%确实字面显示的含义,不是填满100%剩余空间,而是100%所有空间,包括marginpadding的设置。

因此,这个属性/值对往往会产生不良的结果,这是为什么它不经常使用的可能原因。

译者吐槽:此处无力吐槽~~

border-image

所有的CSS新特性中,我觉得这个是最没用最应该被舍弃的。我曾经为SitePoint写过文章试图提高该技术的有用性,因为我所看过的大部分border-image的例子都太丑啦。

我越来越觉得我永远不会再使用该属性,如果其从规范中删除,估计大部分的开发者都不会注意到。

如今,即使我写了一整个系列教程,阅读了整个规范,我仍然不能在不咨询参考,我揪自己头发的情况下使用border-image写个box.

译者吐槽:不可否认,要理解个熟练使用border-image确实有一定的门槛。但是,幸运的是国内关于border-image介绍最好的文章就在本站,“CSS3 border-image详解”。至于究竟是精华呢还是糟粕,了解之后您自己判断吧。

CSS计数器

说真的?CSS还有这玩意?对其我另写过篇文章,希望自己的学习可以更上一层楼,希望可以加强对其使用。但我从来没有在任何项目中使用它,我敢打赌,我永远也不会。

代码让人费解又直观,脑袋被闪电狠劈:“这不就是那个<ol>元素干的事吗?”

译者吐槽:不怎么使用的东西并不一定是不好的东西。好比婚纱,就女生穿,而且一辈子就穿1次,但能跟裹脚布比嘛!我先前曾写过“CSS content内容生成技术”一文,我觉得里面计数器应用的例子就蛮有意思的。

CSS注释

再次提醒我,为什么不能使用简单的双斜线做单行注释呢?我敢肯定这与斜线的解析方式有关。要是我们能够像JavaScript一样,在每行的开始使用个双斜线注释或不注释,那我们就会轻松很多哈。

译者吐槽:要是CSS支持双斜线数值,类似于background:url(http://a.com/b.png);的代码该怎么办呢?

双冒号伪元素

为区分为元素和伪类,CSS3中所有伪元素都使用双冒号解析,因此,不是:before, 而是::before.

正如我之前解释的,这完全是无稽之谈。所有浏览器都将无限期支持单冒号语法,遵循良好的设计原则。

这就意味着,直到所有不支持双冒号语法的浏览器(例如现在占大头的IE8浏览器)彻底消失,我们才能使用双冒号语法。这至少需要2年,3年,甚至更久。

译者吐槽:识时务者为俊杰。虽然双冒号语法年迈的IE之流不支持,但是,这并不妨碍我们渐进使用一些技术,例如“改变页面选中文字颜色背景色”等 – ::selection{} .

其他?

哇!我很高兴能把胸中的抑郁都说出来。您会发现,这里的糟粕列表与浏览器不一致没有关系屎(shi)(当前,除了供应商私有前缀部分),更多的是集中在语法功能上。

您也可以一吐你心中CSS带来的不快,以及CSS不直观、不易懂的地方。我们也知道每个人都讨厌IE以及其所有的bug, 但是请把注意力都放在语言实际的特性上,而不是供应商的实现。

译者吐槽:最后一段了,本不想吐槽,但是作者说话实在不够严谨。上述所谓糟粕,vertical-align, margin, float, 以及双冒号伪类,哪个都牵扯到浏览器的不一致性,所谓稀奇的bug多半浏览器原因,而非语法。

———–以上为翻译正文—————-

英语拙劣,翻译水平有限,若有不准确之处,欢迎指正。感谢阅读,嘛喱嘛哩叿~~

本文为原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]
本文地址:http://www.zhangxinxu.com/wordpress/?p=2305

(本篇完)