jquery选择器

1、选择器 x y和选择器 x>y 的区别。

比如 x y选择的是x的后代元素y ,而x>y选择的是x的直接后代元素(不包括后代的后代);

例如:

#container ul{
   border:red 1px solid;
}

<div id="container">
    <ul>
        <li> List Item
            <ul>
                <li> Child </li>
            </ul>
        </li>
        <li> List Item </li>
        <li> List Item </li>
        <li> List Item </li>
    </ul>
</div>
效果如下:

如果修改选择器为:
#container>ul{
    border:red 1px solid;
}
效果如下:

2、相邻选择器 x+y(只是选择紧邻x的第一个y元素):

#container ul+span{
    border:red 1px solid;
}
<div id="container" style="width:300px;">
    <ul>
        <li> List Item
            <ul>
                <li> Child </li>
            </ul>
            <span>
             ul相邻span元素
            </span>
            <span>
             ul相邻span元素的兄弟元素
            </span>
        </li>
        <li> List Item </li>
        <li> List Item </li>
        <li> List Item </li>
    </ul>
    <span>
    我是父ul的相邻元素哦~
    </span>
</div>
效果如下:
3、兄弟选择符x~y(与x+y这个相邻选择符来说,兄弟选择符的范围要广的多,选择的是x后面的任何的y兄弟元素,因为如下图)
    #container ul~span{
        color:lightskyblue;
    }
    span{
        display:inline-block;
    }
<div id="container" style="width:300px;">
    <ul>
        <li> List Item
            <ul>
                <li> Child </li>
            </ul>
            <span>
             ul相邻span元素
            </span>
            <span>
             ul相邻span元素的兄弟元素
            </span>
        </li>
        <li> List Item </li>
        <li> List Item </li>
        <li> List Item </li>
    </ul>

</div>
效果如下:

4、也谈自定义属性的重要性,如果要找到一些图片元素,为图片元素定义相对应的样式,那么一般采用的方法是:
a[href$=".jpg"],
a[href$=".png"],
a[href$=".jpeg"]{
color:red;
}
如果这样写的话,效率低而且会比较麻烦,而另外一种解决方案则是使用自定义属性,如下:
<a href="path/to/image.jpg" data-filetype="image">Image link</a>
a[data-filetype="image"]{
color:red;
}
5、x:before 和x:after伪类元素,这两个伪元素很容易控制选择器周围的内容。常见的x:after使用在对clear:fix进行改进。
例如:
.clearfix:after{
content:"";
display:block;
clear:both;
visibility:hidden;
font-size:0;
height:0;
}
.clearfix{
display:inline-block;
height:1%;
}
这样的改进是对:after伪类元素在元素后面添加一个空间,并且清除它,这个技术使用,特别是在overflow:hidden的时候会显得特别的有用。
6、x::pseudoElement(使用伪类元素来定义元素的样式)
例如:p::first-line{
font-weight:bold;
font-size:22px;
}
举个例子:
    p::first-line{
        font-weight: 800;
        color:red;
    }

<div id="container" style="width:300px;">
        <p>
        what makes you happy ,like the bird like sky ,like
        water like fish ,like people like kongqi .
        </p>
        <p>
        what makes you happy ,like the bird like sky ,like
        water like fish ,like people like kongqi .
        </p>
        <p>
        what makes you happy ,like the bird like sky ,like
        water like fish ,like people like kongqi .
        </p>
        <p>
        what makes you happy ,like the bird like sky ,like
        water like fish ,like people like kongqi .
        </p>

</div>
效果截图如下:

像这样的,我们用::伪元素来定义元素的样式,例如第一行,第一个字符,但是要记住,这样的方法也只能应用在统计元素才有效。
7、用x:nth-child(n)   (选择第几个子元素,用这样的方式,其中子元素的计数不是从0开始计数,如果想选第二个li,则用li:nth-child(2)).
也可以采用x:nth-child(2n),来选择成为2的倍数的元素的选择。
同时,如果选择倒数第几个元素,则可以使用li:nth-last-child(2),这个表达式就可以选择ul下面的倒数第二个li,并对其设置相对应的样式。
8、通过元素的类型来选择元素而不是通过孩子来选择元素。

比如有5个<p>,如果想对第三个p定义样式,但是没有唯一的id或者class来找到它,这个时候就可以使用nth-of-type(3)伪类了,例子:

                           
同理,也可以使用这样的伪类来倒数:nth-last-typeof-child(2),倒数第二个类型为某某的元素。
和此类伪类元素元素相似的元素还有,x:first-child ,x:last-child;
还有,x:only-of-type,这个伪类用来对选择的x元素,在其父节点内没有兄弟节点的元素,比如,我们可以选择只有一个li作为其子孩子的ul元素。ul >li:only-of-type{font-weight:bold;}

参考博客地址:http://www.open-open.com/lib/view/open1429583085104.html;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值