html点击更改div的class,css能不能做到改变首个class="A"的div的样式_html/css_WEB-ITnose...

5268f80b9b1e01f982625ef6fac83ca1.png

xxx

我想要改变这里的样式(即首个class="A"的div)

不用jquery,能不能做到?

回复讨论(解决方案)

你再给他设置一个class,就像这样xxx

我想要改变这里的样式(即首个class="A"的div)

然后这样子写

.A.div1{color:red;}

.main .A:first-child{

background-color:yellow;

}

搞定!!

楼上正解:

:first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。

正解个毛线,请问你们有测过吗,你都说了:first-child 是取其父元素的首个子元素,你确定他那样子可以?你确定他找得到?

@风中的少年 ,你确定你写对了?@转角遇到我得爱

.main:first-child .A{background-color:yellow;}这样子才对

也不对,我还是坚持我最初的方法

function getByClass(cls){ if(!document.getElementsByClassName){ return document.getElementsByClassName(cls); } else { var all = document.getElementsByTagName('*'), reg = new RegExp('(^|\\s)' + cls + '(\\s|$)'), arr = []; for (var i = 0; i < all.length; i++) { if(reg.test(all[i].className)){ arr.push(all[i]); } }; return arr; }}getByClass('A')[0].style.color = 'red';

正解个毛线,请问你们有测过吗,你都说了:first-child 是取其父元素的首个子元素,你确定他那样子可以?你确定他找得到?

@风中的少年 ,你确定你写对了?@转角遇到我得爱

哥们你能不能去测测呀

所以你改变一下方式就好了,让其成为父类的首个子元素。变通。。。。。。。Jslet - Template

可以曲线救国:选择器

xxx

我想要改变这里的样式(即首个class="A"的div)

222222222

222222222

222222222

222222222

222222222

:first-child

:nth-child(1)

:first-of-type

:nth-of-type(1)

都是行不通的,

10楼写得很麻烦, 和下面效果差不多

div.A:nth-of-type(1)

但都是行不通的选择器

xxx

我想要改变这里的样式(即首个class="A"的div)

222222222

222222222

222222222

222222222

222222222

否定10楼

222222222

222222222

222222222

222222222

222222222

否定:nth-of-type(1)

:first-child

:nth-child(1)

:first-of-type

:nth-of-type(1)

都是行不通的,

10楼写得很麻烦, 和下面效果差不多

div.A:nth-of-type(1)

但都是行不通的

[/code]

你用的是什么浏览器?

http://test.ddcat.net/test/brotherSelector.html

你用的是什么浏览器?

http://test.ddcat.net/test/brotherSelector.html

对楼主要求的理解是整个页面只能让唯一第一个 class="A" 的 div 的样式生效, 任何其他地方也生效则不符要求.

我没有找到仅用 CSS 达到要求的办法

你的方式均会让 "否定10楼" 也变成红色, 测试浏览器: chrome 44.0, firefox 39.0.3, safari 5.1.7, ie8

样式优先级问题?

1、首先优先级

内联样式表 > 内部样式表 > 外部样式表 > 浏览器缺省样式表

2、 在优先级相同时 考虑css权重值

大概就是 行内 > id > class 比较多 可以百度下慢慢研究

3、再然后就是考虑远近了

浏览器从左向右 从上到下的执行一个网页 后面的会覆盖前面的

分给我把

妈呀 有必要考虑那么深么 用内联可好

都是神啊,给第一个一个id不就可以了!!!!

都是神啊,给第一个一个id不就可以了!!!!

他就不给弄个 id, 难道去咬么??

无语

如果整个页面仅有这个一个class=A需要处理,给其一个唯一ID或 特殊 class 即可

-----------------------------------------------------

如果非要折腾,使用css选择:

如果你的 首个 class=A 始终处于 .main 的 第二个元素( 或已知固定位置),且浏览器支持 nth-child,这个问题相对简单:

关键就是 首个 class=A 的位置是已知的,改变 nth-child(2) 即可;

1、所有.main 的第二个元素(即首个 class=A)改变样式

.main>:nth-child(2){color:#fff; background:#B32B2D;}

2、仅页面第一个.main 的第二个元素(即首个 class=A)改变样式

.main:nth-child(1)>:nth-child(2){color:#fff; background:#B32B2D;}

妈呀 有必要考虑那么深么 用内联可好

都是神啊,给第一个一个id不就可以了!!!!

居然忘了来看了,主要这个

是后台一起循环遍历的,所以才没法内联合设ID。这个jquery能实现。就是想问问有没有css可以实现。一开始也是感觉好像css可以,但细想好像行不通。所以想问问大家的想法~

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值