Maison  >  Questions et réponses  >  le corps du texte

javascript - css3选择器和jq选择器的比较?

css3的某个属性里
.p_f_color:first-of-type
{
background:#ff0000;
}

jq选择器
$(document).ready(function(){
$("p p").first().css('background','#ff0000');
});

小弟好奇两者的存在的区别//

大家讲道理大家讲道理2718 Il y a quelques jours616

répondre à tous(3)je répondrai

  • ringa_lee

    ringa_lee2017-04-11 12:49:55

    个人感觉区别主要还是在于浏览器的解析吧.

    浏览器->解析HTML->构成DOM树____>构成渲染树(呈现树)->...
    浏览器->解析CSS->CSS规则树 /

    • CSS的选择器其实是在浏览器解析阶段提供信息用于构成渲染树.

    • jq选择器,由于我学艺不精,还没读源码,也不太清楚.其中用到了各种正则表达式,但是也离不开HTML DOM才对.

    • javascript的getElementByID应该是通过HTML DOM接口来进行DOM树的访问的.

    要是说不同的话,其实本质CSS选择器是解析的规则,而JS选择器获取到的则是DOM树的节点.如果用js选择器对样式进行修改的话其实是通过DOM树->呈现树的关系进行修改的

    动态变化
    在发生变化时,浏览器会尽可能做出最小的响应。因此,元素的颜色改变后,只会对该元素进行重绘。元素的位置改变后,只会对该元素及其子元素(可能还有同级元素)进行布局和重绘。添加DOM节点后,会对该节点进行布局和重绘。一些重大变化(例如增大“html”元素的字体)会导致缓存无效,使得整个呈现树都会进行重新布局和绘制。

    一点拙见...希望有大神能给出更加详尽和规范的解释
    我觉得应该一看的资料:
    http://coolshell.cn/articles/...
    http://www.html5rocks.com/zh/...

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-11 12:49:55

    个人见解,同候大神
    CSS 为元素设置默认样式,元素的各项基本外观都由 CSS 展现。
    JavaScript 为元素动态改变外观,变更通过修改 CSS 实现。
    在网页展现时 CSS 被优先显示,JavaScript 被稍后加载(选择方式稍慢?加载顺序靠后?本人不知)。
    至于选择器,你所说 “存在的区别” ,
    大致是 CSS 选择快,选择性差(如没有父元素选择器);
    JavaScript 选择慢,可选择性好。
    如果你所问的是 “为什么会有两个选择器?”(作者没搞清楚你要问啥)
    那么大致是因为两个模块,两个团队,两个选择方式导致的吧。
    略知皮毛,不知其因;
    个人见解,同候大神。

    répondre
    0
  • 怪我咯

    怪我咯2017-04-11 12:49:55

    css3的选择器是浏览器中 的 渲染进程 去查找的。jq里面是通过浏览器的 js进程 去查找。我是这样认为的,新手一枚,请大神指点

    répondre
    0
  • Annulerrépondre