css能不能做到改变首个class="A"的div的样式

test2500 2015-08-18 09:30:53

<div class="main">
<div class="title">
xxx
</div>
<div class="A">我想要改变这里的样式(即首个class="A"的div)</div>
<div class="A"></div>
</div>

不用jquery,能不能做到?
...全文
457 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
test2500 2015-09-01
  • 打赏
  • 举报
回复
引用 15 楼 u010849322 的回复:
妈呀 有必要考虑那么深么 用内联可好
引用 16 楼 qq_15167261 的回复:
都是神啊,给第一个一个id不就可以了!!!!
居然忘了来看了,主要这个<div class="A">是后台一起循环遍历的,所以才没法内联合设ID。这个jquery能实现。就是想问问有没有css可以实现。一开始也是感觉好像css可以,但细想好像行不通。所以想问问大家的想法~
datarrow 2015-08-31
  • 打赏
  • 举报
回复
如果整个页面仅有这个一个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;}
neorobin 2015-08-30
  • 打赏
  • 举报
回复
引用 16 楼 qq_15167261 的回复:
都是神啊,给第一个一个id不就可以了!!!!
他就不给弄个 id, 难道去咬么?? 无语
可能黑客 2015-08-29
  • 打赏
  • 举报
回复
都是神啊,给第一个一个id不就可以了!!!!
仅小鱼 2015-08-29
  • 打赏
  • 举报
回复
妈呀 有必要考虑那么深么 用内联可好
venvivo 2015-08-27
  • 打赏
  • 举报
回复
样式优先级问题? 1、首先优先级 内联样式表 > 内部样式表 > 外部样式表 > 浏览器缺省样式表 2、 在优先级相同时 考虑css权重值 大概就是 行内 > id > class 比较多 可以百度下慢慢研究 3、再然后就是考虑远近了 浏览器从左向右 从上到下的执行一个网页 后面的会覆盖前面的 分给我把
ddcatlee 2015-08-20
  • 打赏
  • 举报
回复
引用 11 楼 neorobin 的回复:
: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
neorobin 2015-08-20
  • 打赏
  • 举报
回复
引用 12 楼 ddcatlee 的回复:
你用的是什么浏览器? http://test.ddcat.net/test/brotherSelector.html
对楼主要求的理解是整个页面只能让唯一第一个 class="A" 的 div 的样式生效, 任何其他地方也生效则不符要求. 我没有找到仅用 CSS 达到要求的办法 你的方式均会让 "否定10楼" 也变成红色, 测试浏览器: chrome 44.0, firefox 39.0.3, safari 5.1.7, ie8
ddcatlee 2015-08-19
  • 打赏
  • 举报
回复
可以曲线救国:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>选择器</title>
<style>
.main .A {color:#F00;}
.main .A ~ .A {color:#000;}
</style>
</head>

<body>
<div class="main">
    <div class="title">
        xxx
    </div>
    <div class="A">我想要改变这里的样式(即首个class="A"的div)</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
</div>
</body>
</html>

风中的少年 2015-08-19
  • 打赏
  • 举报
回复
所以你改变一下方式就好了,让其成为父类的首个子元素。变通。。。。。。。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Jslet - Template</title>
	<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js"></script>
	
	<style>
		.test .A:first-child{
				background-color:yellow;
		}
	</style>
	
</head>
<body>
<div class="main">
    <div class="title">
        xxx
    </div>
	<div class="test">
		<div class="A">我想要改变这里的样式(即首个class="A"的div)</div>
		<div class="A">sad</div>
	</div>
</div>
</body>
</html>
neorobin 2015-08-19
  • 打赏
  • 举报
回复
:first-child :nth-child(1) :first-of-type :nth-of-type(1) 都是行不通的, 10楼写得很麻烦, 和下面效果差不多 div.A:nth-of-type(1) 但都是行不通的
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>选择器</title>
<style>
.main .A {color:#F00;}
.main .A ~ .A {color:#000;}

div.A:nth-of-type(1){background: green;}
</style>
</head>

<body>
<div class="main">
    <div class="title">
        xxx
    </div>
    <div class="A">我想要改变这里的样式(即首个class="A"的div)</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
</div>

<div class="main">
    <div class="A">否定10楼</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
    <div class="A">222222222</div>
</div>
<div>
    <div class="A">否定:nth-of-type(1)</div>
</div>

</body>
</html>

纯洁袜子 2015-08-18
  • 打赏
  • 举报
回复
你再给他设置一个class,就像这样
<div class="main">
    <div class="title">
        xxx
    </div>
    <div class="A div1">我想要改变这里的样式(即首个class="A"的div)</div>
    <div class="A"></div>
</div>
然后这样子写
.A.div1{color:red;}
  • 打赏
  • 举报
回复
引用 4 楼 zyb112211 的回复:
正解个毛线,请问你们有测过吗,你都说了:first-child 是取其父元素的首个子元素,你确定他那样子可以?你确定他找得到? @风中的少年 ,你确定你写对了?@转角遇到我得爱
哥们你能不能去测测呀
豪情 2015-08-18
  • 打赏
  • 举报
回复

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';
纯洁袜子 2015-08-18
  • 打赏
  • 举报
回复
也不对,我还是坚持我最初的方法
纯洁袜子 2015-08-18
  • 打赏
  • 举报
回复
.main:first-child .A{
background-color:yellow;
}
这样子才对
纯洁袜子 2015-08-18
  • 打赏
  • 举报
回复
正解个毛线,请问你们有测过吗,你都说了:first-child 是取其父元素的首个子元素,你确定他那样子可以?你确定他找得到? @风中的少年 ,你确定你写对了?@转角遇到我得爱
风中的少年 2015-08-18
  • 打赏
  • 举报
回复
楼上正解: :first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。
  • 打赏
  • 举报
回复
.main .A:first-child{ background-color:yellow; } 搞定!!

61,110

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧