网站首页 > 知识剖析 正文
1.first-child(IE7兼容)、last-child(IE8不兼容)
html:
<body>
<h2>列表</h2>
<ul>
<li>列表项目1</li>
<li>列表项目2</li>
<li>列表项目3</li>
<li>列表项目4</li>
</ul>
</body>
css:
<style>
ul {list-style: none;}
li:first-child {/*给第一个列表项目设置样式 兼容IE7*/
background-color: pink;
}
li:last-child { /*给最后一个列表项目设置样式 IE8不兼容*/
background-color: red;
}
</style>
解析:
一个页面中无论有几个ul列表,只要设置first-child、last-child,那么所有ul列表项的第一个和最后一个列表项目都会有设置的样式。
2.nth-child、nth-last-child (IE8不兼容)
html:
<body>
<h2>列表</h2>
<ul>
<li>列表项目1</li>
<li>列表项目2</li>
<li>列表项目3</li>
<li>列表项目4</li>
<li>列表项目5</li>
<li>列表项目6</li>
</ul>
</body>
css:
<style>
ul {list-style: none;}
li:nth-child(3) { /*表示li元素中,第三个元素 IE8不兼容*/
background-color: pink;
}
li:nth-last-child(2) { /*表示li元素中,倒数第二个元素 IE8不兼容*/
background-color: red;
}
</style>
3.对奇数、偶数使用样式
html:
<ul>
<li>列表项目1</li>
<li>列表项目2</li>
<li>列表项目3</li>
<li>列表项目4</li>
<li>列表项目5</li>
<li>列表项目6</li>
</ul>
css:
<style>
ul {list-style: none;}
li:nth-child(odd) {/*表示li元素中,从1开始 奇数为pink*/
background-color: pink;
}
li:nth-child(even) {/*表示li元素中,从1开始 偶数为灰色*/
background-color: #ccc;
}
</style>
解析: li:nth-child(odd)含义:li的父元素ul儿子中,从1开始数,奇数儿子设置样式为xxx;
当父元素为列表时,因为只有列表项目一种子元素,不会出现问题;当父元素是div时,就不止一种子元素,会引起问题。如下:
例如:设置div元素中为奇数标题h2背景颜色
html:
<div>
<h2>文章标题A</h2>
<p>我是一个小段落。。。</p>
<h2>文章标题B</h2>
<p>我是一个小段落。。。</p>
<h2>文章标题C</h2>
<p>我是一个小段落。。。</p>
<h2>文章标题D</h2>
<p>我是一个小段落。。。</p>
</div>
css:
h2:nth-child(odd) {
background-color: pink;
}
解析: h2:nth-child(odd)含义是:h2的父元素div的所有儿子中为奇数的儿子设置背景颜色;而不是所有h2中为偶数的h2设置样式;
解决方法: nth-of-type可以避免问题产生。
4.nth-of-type(IE8不兼容):只针对同类型的元素进行计算
css:
h2:nth-of-type(odd) { /*所有h2标签中为奇数的设置样式*/
background-color: pink;
}
h2:nth-of-type(even) { /*所有h2标签中为偶数的设置样式*/
background-color: #ccc;
}
解析: h2:nth-of-type(odd)含义:在所有h2标签中,只要是奇数h2就设置样式;只针对h2标签,与父元素无关;
5、循环使用样式 li:nth-child(4n+1)
html:
<ul>
<li>列表项目1</li>
<li>列表项目2</li>
<li>列表项目3</li>
<li>列表项目4</li>
<li>列表项目5</li>
<li>列表项目6</li>
<li>列表项目7</li>
<li>列表项目8</li>
<li>列表项目9</li>
<li>列表项目10</li>
<li>列表项目11</li>
<li>列表项目12</li>
</ul>
css:
<style>
ul {list-style: none;}
li:nth-child(4n+1) { /*表示li元素中,4个li为一组循环 第一个li设置为*/
background-color: red;
}
li:nth-child(4n+2) { /*表示li元素中,4个li为一组循环 第二个li设置为*/
background-color: pink;
}
li:nth-child(4n+3) {
background-color: #ccc;
}
li:nth-child(4n+4) {
background-color: yellow;
}
</style>
解析:
- 4n含义:四个li元素为一组循环;
- 4n+1含义:这一组循环中,第一个样式;
- 4n+2含义:这一组循环中,第二个样式;
- 4n+3含义:这一组循环中,第三个样式;
- 4n+4含义:这一组循环中,第四个样式;
- 上一篇: 再次认识CSS中的伪类
- 下一篇: 作为Web开发人员应避免的10种CSS做法
猜你喜欢
- 2024-11-21 Chrome:2023年CSS增加了哪些功能?
- 2024-11-21 WEB基础面试题——HTML、CSS
- 2024-11-21 手风琴特效这么飒,你能用 JavaScript 实现吗?
- 2024-11-21 css篇四 文本样式(上)
- 2024-11-21 Python Web全栈之旅12--Web前端●CSS扩展知识点汇总,建议收藏
- 2024-11-21 自己动手打造工具系列之自动刷新简历
- 2024-11-21 web前端:CSS的常用属性速查表
- 2024-11-21 css操作之常用技巧
- 2024-11-21 《锋利的jQuery》观后记
- 2024-11-21 了解CSS Flex:解析实例、用法和案例研究
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)