如何使用jquery创建第一个LI的左上角和左下角以及最后一个li的右上角和右下角?
据我所知,我可以使用border-radius,但这不是一个跨浏览器解决方案。
以下是我的开始:http://jsfiddle.net/c7NyZ/1/
如果您可以将资源添加到jsfiddle并更新它,那就非常了。
HTML:
<div id="new-menu-upper">
<ul id="top-nav">
<li><a href="/t-topnavlink.aspx">menu item 1</a></li>
<li><a href="/t-topnavlink.aspx">menu item 2</a></li>
<li><a href="/t-topnavlink.aspx">menu item 3</a></li>
<li><a href="/t-topnavlink.aspx">menu item 4</a></li>
<li><a href="/t-topnavlink.aspx">menu item 5</a></li>
<li><a href="/t-topnavlink.aspx">menu item 6</a></li>
</ul>
</div>
CSS:
div#new-menu-upper {
border: 0 solid red;
height: 40px;
margin: 0 5px 10px;
padding-top: 63px;
}
ul#top-nav li {
background-image: url("http://i47.tinypic.com/21nqxjc.png");
background-repeat: repeat;
border-right: 2px solid lightgrey;
float: left;
height: 41px;
width: 156px;
}
ul#top-nav li a {
color: White;
display: inline-block;
font-family: Arial;
font-size: 12px;
font-weight: bold;
letter-spacing: 1px;
padding-left: 38px;
padding-top: 12px;
text-transform: uppercase;
}
编辑:它可以成为一个跨浏览器解决方案,意味着它可以与MIN IE7一起使用 * 编辑:添加JQUERY.CORNERS资源到JSFIDDLE并尝试使用角落制作第一个LI RENDER但是不能正常工作 - 请帮助* - http://jsfiddle.net/c7NyZ/4/
解决方案:http://jsfiddle.net/c7NyZ/6/ (我没有申请JS LIBRARY!)
编辑:第一个李似乎与第二李合并,你能解决这个问题吗? - http://jsfiddle.net/c7NyZ/7/答案 0 :(得分:2)
简单,只需使用first-child
和last-child
伪元素
ul#top-nav li:first-child{
border-radius : 10px 0px 0px 10px;
}
ul#top-nav li:last-child{
border-radius : 0px 10px 10px 0px;
}
<强> JSBIN 强>
如果您要使用css3饼,那么
ul#top-nav li{behavior: url(PIE.htc);}
ul#top-nav li:first-child{
border-radius : 10px 0px 0px 10px;
}
ul#top-nav li:last-child{
border-radius : 0px 10px 10px 0px;
}
否则,如果要在IE 6,7,8中合并曲线,则必须使用放置良好的图像或矢量图形库。
结帐css3pie - 它整洁!
答案 1 :(得分:1)
这是我的版本:
ul#top-nav li:first-child {
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
}
ul#top-nav li:last-child {
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
}
编辑适用于最新的Firefox,Opera和Chrome。我正在使用linux,无法讲述IE
答案 2 :(得分:1)
IE9 +,Firefox 4 +,Chrome,Safari 5+和Opera支持border-radius属性。这里是css代码:
.first_li{
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
-moz-border-radius : 10px 0px 0px 10px; /*firefox 3.6 and earlier*/
}
.last_li{
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
-moz-border-radius : 0px 10px 10px 0px;/*firefox 3.6 and earlier*/
}
这是相应的jquery代码:
$(function(){ // use any other event handler like click, hover or others
$('ul#top_nav li:first').addClass('.first_li');
$('ul#top_nav li:last').addClass('.last_li');
});
答案 3 :(得分:1)
将它用于所有浏览器:
ul li:first-child {
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
}
ul li:last-child {
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
}
答案 4 :(得分:1)
在(不那么)美好的旧时代,人们以艰难的方式做到了。这是艰难的方式:
在你的jsfiddle上,代码如下所示:http://jsfiddle.net/Ralt/c7NyZ/5/
这里显示了一个真实的例子:http://www.sitepoint.com/examples/jscorners/four-nested-divs.html
你会在这里看到一个真正的教程:http://webcsstips.wordpress.com/2009/07/17/boxes-with-rounded-corners/它上面有一些不错的链接,就像一个圆角图像生成器。
那就是说,我现在就去找CSS3PIE了。