Page 210 - css揭秘
P. 210

图 7-7
                                                                                         随着色块数量的不断增加,可用
                                                                                         空间也相应减少,我们需要不断
                                                                                         地缩减控件的尺寸。请注意,当
                                                                                         调色板中只有一个色块时,我
                                                                                         们做了特殊处理:隐去了删除
                                                                                         按钮。图中的颜色取自 Adobe
                                                                                         Color(http://color.adobe.com)
                                                                                         网站的下列调色 板:Agave
                                                                                        (http://color.adobe.com/agave-
                                                                                         color-theme-387108);Sushi Maki
                                                                                        (https://color.adobe.com/Sushi-
                                                                                         Maki-color-theme-350205)





















                        接下来的想法可能就是把 :nth-child() 和兄弟选择符(~)结合起来,
                    比如 li:nth-child(4),  li:nth-child(4)  ~  li。不过,这个选择符只能
                    命中第四个列表项以及在它之后的所有列表项(参见图 7-8),这跟列表项的
                    总数没有什么关系。由于并没有一种组合式选择符可以用“回头看”的方式
                    选中之前的兄弟元素,那么这个任务对 CSS 来说就注定要失败了吗?千万                                  图 7-8
                    不要轻易放弃!                                                              选择符 li:nth-child(4), li:nth-
                                                                                         child(4) ~ li 会选中哪些元素
                    解决方案


                        对于只有一个列表项的特殊场景来说,解决方案显然就是 :only-
                    child,这个伪类选择符就是为这种情况而设计的。它不仅可以成为一个很好
                    的起点,而且这个属性在某些场景下确实可以派上用场,因此可以在规范中
                    占有一席之地。举例来说,在图 7-7 中你可以发现,当列表中只有一个列表
                    项时,我们把删除按钮隐藏起来了;这个需求是可以由 :only-child 选择
                    符来完成的:

                        li:only-child {
                            /* 只有一个列表项时的样式 */
                        }




                                                                           38 根据兄弟元素的数量来设置样式                  179







          ඀ࠡ  JOEC
   205   206   207   208   209   210   211   212   213   214   215