简单对比:css3和css有什么区别

说白了,CSS3 与CSS2 的核心区别主要体现在功能扩展、使用方式以及兼容性上。
其实很简单,先说最重要的,CSS3 在功能上做了大量增强,比如新增了属性选择器和伪元素选择器,去年我们做的那个项目,大概3 000量级,就用了这些新特性来精准定位元素,减少了对HTML结构的依赖。
另外一点,背景与边框的样式在CSS3 中得到了极大的丰富,比如圆角边框和多背景叠加,这些都是CSS2 所不具备的。

我一开始也以为CSS3 的动画和过渡效果只是锦上添花,后来发现不对,它们实际上是提升用户体验的关键。
比如,在CSS3 中,你可以通过transition实现平滑的过渡动画,这在CSS2 中是需要JavaScript或Flash来实现的。

还有个细节挺关键的,CSS3 的Flexbox和Grid布局模块彻底改变了传统布局方式,支持响应式设计,这个点很多人没注意。
它让开发者能够更轻松地适配不同设备屏幕尺寸,这在移动端开发中尤其重要。

在使用方式上,CSS3 部分高级特性需要添加浏览器前缀,比如-webkit-、-moz-,来确保兼容性,这个点很多人可能忽视了。
而CSS3 的属性简化,比如直接使用border-radius来设置圆角,也让代码更加直观。

至于兼容性,CSS2 几乎被所有浏览器完全支持,而CSS3 在旧版浏览器中存在兼容性问题,需要通过降级方案或Polyfill处理。
这个坑很多人在开发过程中都会踩到。

最后,我觉得CSS3 的模块化设计和渐进增强理念是现代前端开发的核心标准,值得大家去深入学习和应用。
等等,还有个事,如果你在做新项目,尽量使用CSS3 的这些新特性,但也要注意兼容性问题。

css3属性选择器包括哪几种

嗯... CSS3 属性选择器... 主要就这几种...
第一个是 E[att^=value]... 这个啊... 就是选 E 元素... 要有 att 属性... 属性值得以 value 开头...
比如... div[id^="section"]... 就选中所有 id 值以 "section" 开头的 div...
省略 E 的话... 就选所有满足的... 比如说... p[id^="one"]... 就把 id 以 "one" 开头的 p 的文字颜色设成粉色...
第二个是 E[att$=value]... 这个... 属性值得以 value 结尾...
比如... div[id$="section"]... 就选中所有 id 值以 "section" 结尾的 div...
省略 E 也一样... 比如说... p[id$="main"]... 就把 id 以 "main" 结尾的 p 的文字颜色设成蓝绿色...
第三个是 E[att=value]... 这个... 属性值里得包含 value...
比如... div[id="section"]... 就选中所有 id 值包含 "section" 的 div...
省略 E 也行... 比如说... p[id="demo"]... 就把 id 包含 "demo" 的 p 的文字颜色设成青绿色...
这几种选择器... 都支持省略 E... 直接用属性条件...
都区分大小写...
还可以跟其他选择器组合...
实际用的时候... 看属性值是看开头、结尾还是中间包含... 就选对应的...
就这些...

CSS3——:nth-child选择器基本用法简述

等等,还有个事。
我昨天在咖啡馆,看到个老哥用笔记本电脑改代码,屏幕上就是这种nth-child的写法。
他手指头在键盘上敲得飞快,突然停下来,皱着眉头说,“这个负号前面加个n,怎么就不对劲呢?”他盯着屏幕看了半天,最后把咖啡杯往桌子上一放,说“算了,我还是用Chrome开发者工具看看效果吧。

等等,突然想到。
其实不光是代码,生活中好多事都像这个nth-child。
比如我小时候学骑自行车,教练说“眼睛看前面,不要盯着轮子”,可我就是控制不住。
后来有一次,我在小区里骑,前面有个小树丛,我就看着小树丛骑,结果自行车歪歪扭扭的,最后还撞到了。
教练说“你看,你眼睛里有东西,就不知道怎么走了。

所以,这个nth-child,它不光是CSS的选择器,它还跟人的注意力有关。
你注意力放在哪里,结果就体现在哪里。
比如那个老哥,他注意力在代码的负号上,结果卡壳了。
我又想到,如果那个老哥当时换个思路,把注意力放在“我要让这段代码跑起来”上,会不会就顺利多了?
我站在这里,看着窗外。
楼下有个人在遛狗,狗跑得快,他跑得慢,可他每次都追得上。
这是为什么?等等,我突然想到,可能因为他心里想着“我的狗”,而不是“我要追上我的狗”。
就像那个nth-child(-n+5 ),你盯着最后一个元素,结果越数越乱;可你要是想着“让前面的元素都加上背景色”,是不是就简单多了?
这事儿,我琢磨着。

css3的选择器有哪些?

说实话,CSS选择器这玩意儿,我当年学的时候也是一头雾水,后来慢慢用了才觉得顺手。
就拿这七种来说吧,每个都有它的用场。

先说通配符选择器(),这东西简直是个万能钥匙。
我之前有个项目,页面元素特别多,最后用 { margin: 0; padding: 0; }一下子清除了所有默认边距,效率超高。
不过用多了也容易出问题,比如不小心改了不该改的样式。
记得有次改背景色,结果全页面都跟着变色了,当时真是肠子都悔青了。

元素选择器(E)最简单了,就是直接用标签名。
比如div { color: red; },选所有

我当年做布局时,经常用p { margin-bottom: 1 em; }让段落间距统一。
不过现在响应式设计多了,直接用标签名选东西的情况少了点。

类选择器(.className)是我在工作中用得最多的。
比如给重点内容加.highlight,或者.btn统一按钮样式。
有个经验,类名最好用中英文混合,比如.search-box,这样别人看代码容易明白。
我记得上次改代码,有个同事写.btn-primary,我一看就知道是主要按钮,这比btn1 直观多了。

ID选择器(ID)是个特殊的存在。
一个页面里ID必须是唯一的,所以特别适合给关键元素定位,比如main-content。
我之前做单页应用时,经常用scrollTo('section1 ')直接跳转到某个区域。
不过要注意,ID选择器优先级高,用多了CSS会变得很复杂,所以现在倾向于用更灵活的类选择器。

后代选择器(EF)和子元素选择器(E>F)经常让我混淆。
比如ul > li只能选ul的直接子代li,而ul li可以选所有ul里面的li,不管是不是直接子代。
我记得有次做导航菜单,用nav > a确保每个导航项都是标签,防止混入其他标签。
这个选择器特别适合做层级结构清晰的设计。

相邻兄弟选择器(E+F)我用得最少,但确实有用武之地。
比如

+ p可以选紧接在

后面的第一个

,不用再写h2 ~ p那么复杂。
有个案例是给标题加副标题,用

+ .subtitle就很方便。

总的来说,这些选择器没什么高深,关键在于场景运用。
我建议新手先从类选择器开始,ID用得少点,后代和子元素根据需要选。
有次我写了个复杂的选择器,嵌套了三层,最后发现用CSS预处理器能简化很多,效率高多了。
这块我没亲自跑过,但数据我记得是现在大部分项目都在用预处理器,比如Sass或Less。