网站首页 > 技术文章 正文
一般last-child都是用在菜单或者列表用边框分隔的时候,把最后面一个border的设定去掉。
一种方法是给最后一项添加一个class,例如.last-child,把border设为none值。(这个不便于数据绑定,不然又得判断最后一个,麻烦)。
IE6、IE7不支持 first-child 属性,不过可以用其他办法替代。
#sidebar li:first-child{
border-top-style:none;
}
#sidebar li{
border-top:1px solid #DAD3D0;
*border-top-style:expression(this.previousSibling==null?"none":"solid");
}
代码解析
*border-top-style:expression(this.previousSibling==null?’none’:"solid’);
只有IE6和IE7能识别此行代码,第一个值’none’就是first-child的值,第二个值’solid’则是其他元素的值。
last-child原理相同,代码如下
#sidebar li:last-child{
border-bottom-style:none;
}
#sidebar li{
border-bottom:1px solid #DAD3D0;
*border-bottom-style:expression(this.nextSibling==null?"none":"solid");
}
现在,IE6和IE7是不是相当于实现了first-child的功能了,CSS就是那么强大!
但此方法不支持IE8,JS的方法,达到last-child的目的:
if ($('html').hasClass('lt-ie9')) {
$('[data-fix-last-child]').each(function(){
var $me = $(this);
var element = $me.data('fix-last-child');
$me.find(element).last().css({ 'border': 'none','background': 'none' });
});
}
但是上面两种方法都是所有浏览器下都生效,也就是不用last-child都可以了。当然也可以判断是IE678的时候才使用上面的方法,但没什么必要。
纯css2方法:
有一种很简单的方法,纯CSS实现。
就是使用element+element即一个元素紧接着另一个元素选择器。因为last-child元素是没有紧跟这的元素的,element+element为CSS2选择器。
举个栗子:
<ul>
<li>sample text</li>
<li>sample text</li>
<li>sample text</li>
<li>sample text</li>
<li>sample text</li>
<li>sample text</li>
</ul>
我们希望在每条记录之间加上分隔符,一般会加border-bottom属性,但是最后一个<li>下面不能有,我们可以使用li+li选择符,改用border-top属性即可实现。
li+li{border-top:1px dotted #999;}
效果图:
- 上一篇: Less 延伸 延伸定义是什么
- 下一篇: 一文看懂CSS3动画 css3的动画
猜你喜欢
- 2024-11-09 「项目实战」.作家管理系统之Web应用(四)
- 2024-11-09 jQuery 单引号和双引号区别 js单双引号转义
- 2024-11-09 jQuery的DOM操作 jquery对象和dom对象
- 2024-11-09 CSS2与CSS3中常用的伪类汇总大全 css伪类hover
- 2024-11-09 自动化测试:Selenium八大元素定位简单介绍
- 2024-11-09 想让AI 驱动 UI 测试?大佬推荐这个自动化工具!
- 2024-11-09 CSS怎么选择除了第一个子元素外的其余同级子元素
- 2024-11-09 js函数--倒计时模块+无缝滚动 js实现倒计时60秒的简单代码
- 2024-11-09 Web前端开发-CSS中伪类和伪元素 css3伪类和伪元素
- 2024-11-09 CSS 中的最后一个子级选择器与最后一个类型选择器
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-