查看: 606|回复: 13
打印 上一主题 下一主题

[求助] 【提问】关于css中组合选择式的表达方法

[复制链接]
  • TA的每日心情
    无聊
    2018-8-11 10:00
  • 签到天数: 39 天

    [LV.5]常住居民I

    62

    主题

    176

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11988

    QQ 章灌水大神章笑傲江湖章

    跳转到指定楼层
    1
    发表于 2018-4-27 13:22:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 sunset 于 2018-4-27 20:04 编辑

    如下面的三张图:
    图中选择的是柯林斯词典中不同模块中的中文字段,这三个地方的中文全都是由span.chinese-text 控制的。选中了其中的一个,对其样式进行修改,其他两处的样式也会跟随着一起变动。有没有什么办法,能将这三个地方的中文样式分开控制?附件中提供了html、css文件,麻烦各位大神了。

    截图00.png (118.42 KB, 下载次数: 0)

    截图00.png

    截图01.png (20.66 KB, 下载次数: 0)

    截图01.png

    截图02.png (130.68 KB, 下载次数: 0)

    截图02.png

    求助.rar

    27.16 KB, 下载次数: 6, 下载积分: 米 -5 粒

  • TA的每日心情

    2018-6-16 18:13
  • 签到天数: 158 天

    [LV.7]常住居民III

    22

    主题

    255

    回帖

    6055

    积分

    禁止发言

    积分
    6055

    灌水大神章

    推荐
    发表于 2018-4-29 09:24:14 | 只看该作者
    本帖最后由 Yyang. 于 2018-4-29 09:31 编辑

    我写了可以单独控制,你试试吧
    .note.type-note.no-before.example li p {
        color: black;
    }


    .collins_en_cn.example .chinese-text {
        color: slategray;
    }

    span.def_cn.cn_after .chinese-text {
        color: #e05e00;
        font-size: 90%;
        font-weight: bold;
    }

    span.def_cn.cn_after {
        color: #e05e00;
        font-size: 95%;
        font-weight: bold;
    }

    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2020-10-25 03:32
  • 签到天数: 395 天

    [LV.9]以坛为家II

    16

    主题

    721

    回帖

    4万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    49801

    灌水大神章笑傲江湖章翰林院专用章管理组专用章

    2
    发表于 2018-4-27 14:10:50 | 只看该作者
    提供一个思路:

    这个可以通过找出这3处chinese-text的规律,然后使用正则替换,分别替换为chinese-text1,chinese-text2,chinese-text3,或者保留一处不变,替换其他两处,分别为chinese-text,chinese-text1,chinese-text2

    然后再分别写出css

    关键是找出规律。

    评分

    1

    查看全部评分

  • TA的每日心情
    无聊
    2018-8-11 10:00
  • 签到天数: 39 天

    [LV.5]常住居民I

    62

    主题

    176

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11988

    QQ 章灌水大神章笑傲江湖章

    3
     楼主| 发表于 2018-4-27 14:59:28 | 只看该作者
    hyqq2015 发表于 2018-4-27 14:10
    提供一个思路:

    这个可以通过找出这3处chinese-text的规律,然后使用正则替换,分别替换为chinese-text1, ...

    好吧,原来还是必须要去修改原html
  • TA的每日心情
    奋斗
    2022-6-1 19:02
  • 签到天数: 377 天

    [LV.9]以坛为家II

    27

    主题

    556

    回帖

    15万

    积分

    状元

    喜欢折腾,但能力有限

    Rank: 9Rank: 9Rank: 9

    积分
    150901

    灌水大神章笑傲江湖章管理组专用章

    4
    发表于 2018-4-27 15:42:28 | 只看该作者
    往上找不同的父元素或祖先元素,然后组合选择,我试了,这个是可以的。

    评分

    1

    查看全部评分

  • TA的每日心情
    无聊
    2018-8-11 10:00
  • 签到天数: 39 天

    [LV.5]常住居民I

    62

    主题

    176

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11988

    QQ 章灌水大神章笑傲江湖章

    5
     楼主| 发表于 2018-4-27 15:49:16 | 只看该作者
    须佐之男 发表于 2018-4-27 15:42
    往上找不同的父元素或祖先元素,然后组合选择,我试了,这个是可以的。

    我就是组合选择的格式不会写,你能举个例子吗?
    比如父元素是div.1,子元素是span.2,我想修改span.2的样式,应该怎么写?
  • TA的每日心情
    奋斗
    2022-6-1 19:02
  • 签到天数: 377 天

    [LV.9]以坛为家II

    27

    主题

    556

    回帖

    15万

    积分

    状元

    喜欢折腾,但能力有限

    Rank: 9Rank: 9Rank: 9

    积分
    150901

    灌水大神章笑傲江湖章管理组专用章

    6
    发表于 2018-4-27 16:02:17 | 只看该作者
    本帖最后由 须佐之男 于 2018-4-27 16:04 编辑
    sunset 发表于 2018-4-27 15:49
    我就是组合选择的格式不会写,你能举个例子吗?
    比如父元素是div.1,子元素是span.2,我想修改span.2的样 ...


    对应你上面的问题,你这个例子举得不对
    正确的例子应该是,不同父元素的,比如
    <div class="ex1"><p >测试1</p></div>
    <div class="ex2"><p >测试2</p></div>
    .ex1 p {}这个选定第一个p标签
    .ex2 p {}这个选中第二个p标签


    你可以搜索组合选择符去了解下

    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2020-10-25 03:32
  • 签到天数: 395 天

    [LV.9]以坛为家II

    16

    主题

    721

    回帖

    4万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    49801

    灌水大神章笑傲江湖章翰林院专用章管理组专用章

    7
    发表于 2018-4-27 16:53:32 | 只看该作者
    须佐之男 发表于 2018-4-27 15:42
    往上找不同的父元素或祖先元素,然后组合选择,我试了,这个是可以的。

    这个方法效率更高。
  • TA的每日心情
    无聊
    2018-8-11 10:00
  • 签到天数: 39 天

    [LV.5]常住居民I

    62

    主题

    176

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11988

    QQ 章灌水大神章笑傲江湖章

    8
     楼主| 发表于 2018-4-27 19:10:16 | 只看该作者
    本帖最后由 sunset 于 2018-4-27 19:14 编辑
    须佐之男 发表于 2018-4-27 16:02
    对应你上面的问题,你这个例子举得不对
    正确的例子应该是,不同父元素的,比如
    测试1


    这两个Chinese-text我实在区分不开来,你能不能帮我看看应该怎么加以区分?
    他俩都是<p>里面的<span>标签,并且span的class也一样,该怎么办

    截图04.png (82.36 KB, 下载次数: 0)

    截图04.png

    截图05.png (101.3 KB, 下载次数: 0)

    截图05.png
  • TA的每日心情
    奋斗
    2022-6-1 19:02
  • 签到天数: 377 天

    [LV.9]以坛为家II

    27

    主题

    556

    回帖

    15万

    积分

    状元

    喜欢折腾,但能力有限

    Rank: 9Rank: 9Rank: 9

    积分
    150901

    灌水大神章笑傲江湖章管理组专用章

    9
    发表于 2018-4-27 19:38:13 | 只看该作者
    本帖最后由 须佐之男 于 2018-4-27 20:13 编辑
    sunset 发表于 2018-4-27 19:10
    这两个Chinese-text我实在区分不开来,你能不能帮我看看应该怎么加以区分?
    他俩都是里面的标 ...


    .note .chinese-text {},只选定你图一的内容,意思就是类名note下的chinese-text类,不在类名note下的就不选中。
    不直接给出选择器是想着你自己看看相关文档自己就会了,而且会学到其他方法。注:选中这个有多种办法,这只是其中一个。

    看我4楼的回复,不同的父元素或祖先元素,父元素相同就往上找(至少在你给的这个例子里是能找到不同的)。

    评分

    1

    查看全部评分

  • TA的每日心情
    无聊
    2018-8-11 10:00
  • 签到天数: 39 天

    [LV.5]常住居民I

    62

    主题

    176

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11988

    QQ 章灌水大神章笑傲江湖章

    10
     楼主| 发表于 2018-4-27 20:51:44 | 只看该作者
    须佐之男 发表于 2018-4-27 19:38
    .note .chinese-text {},只选定你图一的内容,意思就是类名note下的chinese-text类,不在类名note下的就 ...

    纠正了自己的一个错误之后全部分清楚了。
    原来我之前写的表达式一直没反应是因为我把图中的高亮部分整个地都复制了过去,原来只要复制前面的那一部分就可以了。
    这里面有什么规定吗?不能带空格?
  • TA的每日心情
    奋斗
    2022-6-1 19:02
  • 签到天数: 377 天

    [LV.9]以坛为家II

    27

    主题

    556

    回帖

    15万

    积分

    状元

    喜欢折腾,但能力有限

    Rank: 9Rank: 9Rank: 9

    积分
    150901

    灌水大神章笑傲江湖章管理组专用章

    11
    发表于 2018-4-27 21:13:31 | 只看该作者
    本帖最后由 须佐之男 于 2018-4-27 21:26 编辑
    sunset 发表于 2018-4-27 20:51
    纠正了自己的一个错误之后全部分清楚了。
    原来我之前写的表达式一直没反应是因为我把图中的高亮部分整个 ...


    图上你选中的部分,在html中意思是同时有两个类名,css中你单独使用哪一个都能选中它,同时使用且加空格就变成后代选择了,.def_cn .cn_after选定的是def_cn类下的cn_after类。

    去看看这个http://www.runoob.com/css/css-combinators.html,还能直接在线看效果

    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2019-1-18 23:55
  • 签到天数: 230 天

    [LV.7]常住居民III

    72

    主题

    1027

    回帖

    11万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    117972

    QQ 章

    12
    发表于 2018-4-28 19:09:29 | 只看该作者
    通用点说,不改动html情况下,主要是两种办法。
    一个是找父元素,一层层往上找。写css时写精确些。不同情况下写法的区别,可以参照别人的css揣摩、搜索,自己试试就知道了。比如<div class="a">写作“div.a”(没空格),<a><b></b></a>中的b写作“a b”,<span class="a"><span class="b"></span></span>中的b写作“.a .b” (有空格)。类似的自己揣摩吧,再结合浏览器检查看看有没有生效,如果是被哪一个style覆盖了(那就写得更精细点),或是写错了。
    另一个是利用选择器。比如同一级下紧跟在a后面的b,可以用a + b来控制;同一级下a后面的所有b,可以用a ~ b来控制。如此种种,但感觉上多用于比较精细的控制,或是词典结构复杂/混乱造成的无奈选择。

    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2018-8-30 07:34
  • 签到天数: 135 天

    [LV.7]常住居民III

    29

    主题

    680

    回帖

    2370

    积分

    禁止发言

    你们可以都来加我好友吗~~~!

    积分
    2370

    推广专家QQ 章灌水大神章笑傲江湖章

    14
    发表于 2018-4-29 15:25:13 | 只看该作者
    Yyang. 发表于 2018-4-29 09:24
    我写了可以单独控制,你试试吧
    .note.type-note.no-before.example li p {
        color: black;

    给力啊,看起来好多代码