css工作组在其官方WIKI总结了这些年CSS在设计上犯的46条失误。这些错误大体可以概括为5类:
本文会选一些我觉得有意思的失误来讲讲。完整的失误列表见上述官方WIKI。
!important语法用来增加样式的权重,毕竟,感叹号通常表达强调的意思。但在编程语言中,!通常是取反的意思,比如:
const isValid = true;
!isValid // false
初次接触CSS的工程师很可能会觉得!important是不important的意思,这与该语法实际想表达的意思完全相反。
所以,工作组认为!important是个糟糕的语法。
z-index属性用于设置定位元素及其后代元素或flex元素的Z轴层叠顺序,z-index较大的元素会叠在较小元素的上面。
在编程语言中,index是索引的意思,并没有表达出层叠的意思。所以,工作组认为叫z-order或干脆叫depth(深度)会更好。
同时,他们也认为,这个属性应该对所有元素有效(而不是只对定位元素及其后代,以及flex元素有效)。
margin坍塌是CSS中的基础特性,假设有2个上下重叠的块级元素:
按照直觉来看,他们之间的margin应该是50px(20px + 30px),但是由于margin坍塌,他们之间的margin为其中较大的值(30px)。
上面是2个块级元素之间的margin坍塌。
对于单个块级元素,也存在margin坍塌 —— 如果一个元素内部没有内容,或者它的内容被清除(clear)了,那么这个元素的上下margin会发生塌陷。
这意味着,即使你为元素的顶部和底部都设置了margin,但实际上他们会合并成一个(值等于两者中的最大者,而不是它们的总和)。
这种塌陷行为可能会导致一些让人懵逼的布局问题。比如,你试图通过增加一个元素的margin-bottom来增加它下面的空间,但不起作用,可能就是因为增加的 margin塌陷掉了。
所以,CSS工作组认为这不是个好设计。
rgba与hsla都是设置颜色的属性,相比于rgb与hsl,他们还可以设置alpha值(透明度)。
所以,为啥不直接让rgb与hsl能够接收第四个参数(alpha值)呢?工作组很费解 自己当初咋想的。
border-radius直译为边界半径,当初应该取名叫corner-radius(拐角半径)。
毕竟,这就是设置元素拐角处圆角的半径的啊~~
所谓替换元素,是指外观和尺寸由外部资源决定的元素,比如:
工作组认为,当替换元素被绝对定位时,偏移属性不应该改变元素的位置,而应该改变尺寸。
比如,当对绝对定位的img设置left: 20px; right: 20px;,那么他应该被拉伸到从左侧20px到右侧20px的长度,而不是移动到距离左侧20px的位置。
这个规则对于响应式布局是非常有用的,因为它允许元素自动调整其大小以适应不同的视口宽度。
上面只是挑了几个我觉得有意思的失误来聊。除此之外,还有很多是使用习惯上的设计失误,个人认为比较主观。比如:
// 当前的子孙选择器
div p {
color: green;
}
// 期望的子孙选择器
div » p {
color: green;
}
// 当前的兄弟选择器
div ~ p {
color: green;
}
// 期望的兄弟选择器
div ++ p {
color: green;
}
不知道上述改动,你能接受么?
来源:https://segmentfault.com/a/1190000044293179
网页开发过程中经常会遇到需要把多行文字溢出显示省略号,这篇文章将总结通过多种方法实现文本末尾省略号显示。
word-spacing 属性增加或减少单词间的空白(即字间隔)。 letter-spacing 属性增加或减少字符间的空白(字符间距)。
满屏div之css最容易中枪的二十条规则,你中枪了吗?一、float:left/right 或者 position: absolute 后还写上 display:block?二、认为布局就是 Float,所有的地方都是 Float,全家都是 Float!
我想每个人都应该归纳总结工作中的常见需求,编写一套适合自己的 CSS 框架。大多数的轻量级框架只是 CSS 框架,不涉及 JS 部分,主要用于网页的布局。
定义简洁的CSS规则:CSS的每条规则中都包含了规则的属性及属性值。定义简洁的CSS规则主要是指合并相关规则和定义简洁的属性值。
css完美解决iphonX白条,网站扩展到整个屏幕,CSS Shapes中有个CSS属性名为shape-outside实现元素滚动自动环绕iPhone X刘海
我们都知道需要给html和body标签设置了高度height:100%之后,再给内部的div设置height:100%的时候,内部div的高度100%才会起到作用。这是由于:%是一个相对父元素计算得来的高度,要想使他有效,我们需要设置父元素的height。
clip-path属性可以创建一个只有元素的部分区域可以显示的剪切区域。区域内的部分显示,区域外的隐藏。剪切区域是被引用内嵌的URL定义的路径或者外部svg的路径,或者作为一个形状例如circle().。clip-path属性代替了现在已经弃用的剪切 clip属性。
这篇文章整理css中无继承性的属性、继承性的属性、所有元素可以继承的属性、内联元素可以继承的属性、块级元素可以继承的属性
编写CSS的时候,经常会用到百分比赋值(%)实现自适应。像我们最常使用的流式布局设计模式,基本所有的column的宽度都是通过%来取值的。或者比如经常会遇到的元素水平垂直居中问题
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!