前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >响应式设计之子元素的数目检测

响应式设计之子元素的数目检测

作者头像
用户9127725
发布于 2022-08-08 00:35:30
发布于 2022-08-08 00:35:30
5380
举报

响应式设计中,通用做法是根据屏幕尺寸,显示不用的样式。如果碰到需求,希望根据子节点的个数,显示不同的样式呢?

<ul>

    <li>1</li>

    <li>2</li>

    <li>3</li>

    <li>4</li>

    <li>5</li>

</ul>

js 判断

js 判断,比较简单,使用场景是:可以先用js 判断,然后再根据判断结果渲染

css 判断

还能通过css 来判断?

直接来结果

有2个节点

li:first-child:nth-last-child(2),

li:first-child:nth-last-child(2) ~{

    // 有两个节点的样式

}

原理,第一行,选择的节点是: 第一个,并且是倒数第二个

第二行,选择的节点是: 第一个,并且是倒数第二个的后面的兄弟节点

大于2个节点

li:first-child:nth-last-child(3+n),

li:first-child:nth-last-child(3+n) ~{

    // 大于两个节点的样式

}

原理,同上

scss 封装

抽象成scss 的mixin ,如下:

@mixin child-equal($childTag,$count){

    #{$childTag}:first-child:nth-last-child(#{$count}),

    #{$childTag}:first-child:nth-last-child(#{$count}) ~ #{$childTag}{

        @content;

    }

}

@mixin child-more-than($childTag,$count){

    #{$childTag}:first-child:nth-last-child(n+ #{$count+1}),

    #{$childTag}:nth-last-child(n+ #{$count+1}) ~#{$childTag}{

        @content;

    }

}

使用方法:

当li 个数多余5个时,宽度为15%;

    @include child-more-than(li,5){

        width: 15%;

    }

当然也有缺点,css 选择器,只能修改子节点本身的样式,不能修改父元素的样式。碰到这种情况,还是得靠万能的js。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-10-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第91天:CSS3 属性选择器、伪类选择器和伪元素选择器
除了以前学过的:link、:active、:visited、:hover,CSS3又新增了其它的伪类选择器。
半指温柔乐
2018/09/11
1.6K0
CSS 选择器 nth-child 的几种用法
例如使列表中的第一项或者最后一项显示不同的样式 、列表中的奇数或者偶数项显示不同的背景色 . . .  等等。
德顺
2019/11/13
4.6K0
python学习之selenium~css定位完整版,附代码
.class:           .intro,选择class=‘intro’的所有元素
吾爱乐享
2019/12/30
1.7K0
常用的CSS3选择器
CSS选择器的作用就是从HTML页面中找出特定的某类元素。常用的几类CSS选择器如下表所示。
全栈程序员站长
2022/09/14
4.2K0
常用的CSS3选择器
8则未必知道且超级实用的纯CSS布局排版技巧 | 网易4年实践
前言 开发每一张网页都离不开布局排版,基于良好布局排版打下基础,才能使后续的开发更顺利。当然不能停留在IExplorer时代那种局限思维上,没办法解决的布局排版都用JS实现😂。今时不同往日,现代CSS属性能更好地快速实现各种布局排版,节约更多时间去摸鱼😉。 不过按照笔者目前了解的情况来看,大部分同学即使在无需兼容IExplorer的情况下还是遵循CSS+JS的方式完成一些常见或特殊的布局排版。从HTML/CSS/JS前端三剑客的定位来看,HTML映射网页的「结构」,CSS映射网页的「表现」,JS映射网页
用户6835371
2021/10/27
3.4K0
8则未必知道且超级实用的纯CSS布局排版技巧 | 网易4年实践
CSS选择器详解
最近在做一些面试的工作,我经常会问的一个问题就是:CSS中有哪些选择器。我往往得到的答案就是id选择器啊、class选择器啊,再追问下去就没了,这让我很是意外! 看来这基础的东西,大家都说很重要,可真正能静下心来去看的并不多,更别说在项目中灵活使用了! 元素选择器 通配选择器 * { sRules } 选定文档所有的元素 /** 设置所有元素为红色 **/ * {   color: red; } <div>我是div</div> <p>我是p</p> 类型选择器 E { sRules } 选定指定的文
laixiangran
2018/04/11
2.9K0
[读书笔记]响应式web设计 转
@media screen and (max-device-width:400px){ 
LeoXu
2018/08/15
3.7K0
能用HTML/CSS解决的问题就不要使用JS
为什么说能使用html/css解决的问题就不要使用JS呢?两个字,因为简单。简单就意味着更快的开发速度,更小的维护成本,同时往往具有更好的体验,下面介绍几个实例。 1. 导航高亮 导航高亮是一种很常
用户1667431
2018/04/18
3.8K0
能用HTML/CSS解决的问题就不要使用JS
这30个CSS选择器,你必须熟记(下)
在上两篇文章里,《这30个CSS选择器,你必需熟记(上)》和 《这30个CSS选择器,你必需熟记(中)》这两篇文章里,我们一起学习了前20个,本篇文章我们一起学习剩下的10个选择器。
前端达人
2019/11/03
7720
这30个CSS选择器,你必须熟记(下)
这30个CSS选择器,你必须熟记(下)
在上两篇文章里,《这30个CSS选择器,你必需熟记(上)》和 《这30个CSS选择器,你必需熟记(中)》这两篇文章里,我们一起学习了前20个,本篇文章我们一起学习剩下的10个选择器。
前端达人
2019/11/07
5660
这30个CSS选择器,你必须熟记(下)
结构伪类选择器的分类以及使用语法
结构伪类选择器,可以根据元素在文档中所处的位置,来动态选择元素,从而减少HTML文档对ID或类的依赖,有助于保持代码干净整洁。
岳泽以
2022/10/26
5070
html+css学习笔记015-H5新选择器0文字阴影
Author:Mr.柳上原 付出不亚于任何的努力 愿我们所有的努力,都不会被生活辜负 不忘初心,方得始终 ‘ 男儿本应走四方,不遇温柔不回首 ’ 有时候,在一个城市里生活久了 就想要逃离 想要去一个陌生的城市重新开始 无关生存,也不为逃避 而是觉得没有留下来的理由和牵挂吧 毕竟生活中不会像电影《向左走向右走》那样 电影的最后终会相遇 而现实中 或许永远不会相见 陌生的城市,熟悉的角落 日复一日 日复又一日...... 不说我了 能让你们在一个地方留下来的又是什么呢? <!DOCTYPE html> <!--
Mr. 柳上原
2018/09/05
5020
CSS选择器
标签选择器 : 元素名称 |div{...}|使用标签选择元素,优先级最低,使用最广泛|
王凡汎
2020/03/08
2.6K0
CSS 基础系列:伪类和伪元素
CSS 引入伪类和伪元素的概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。
Chor
2019/11/07
2K0
【CSS】636- 你必须记住的30个css选择器
星状选择符会在页面上的每一个元素上起作用。web设计者经常用它将页面中所有元素的margin和padding设置为0。*选择符也可以在子选择器中使用。
pingan8787
2020/07/02
9150
常用的 jQuery 选择器-笔记
例如,$("#myDiv .myClass") 选择 ID 为 myDiv 的元素内所有类名为 myClass 的元素。
云峥百宝箱
2025/04/16
740
前端学习(15)~css3学习(九):选择器详解
CSS3在CSS2基础上,增强或新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷。
Vincent-yuan
2020/03/19
5290
我可能学到了“假”的CSS:伪类伪元素
==在*-child系列伪类中,索引是相对于所有同级兄弟元素计算的,而非特定类型==
江米小枣
2020/06/15
1.5K0
总结伪类和伪元素(转)
先说一说为什么css要引入伪元素和伪类,以下是css2.1 Selectors章节中对伪类与伪元素的描述:
山河木马
2019/03/05
1.5K0
总结伪类和伪元素(转)
Web 自动化实战经验硬核总结
用法:"//button[@class='ant-btn ng-star-inserted']"
Wu_Candy
2023/03/06
9760
Web 自动化实战经验硬核总结
相关推荐
第91天:CSS3 属性选择器、伪类选择器和伪元素选择器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档