css学习:css选择器

在前端开发中,样式是不可或缺的,在进行html样式优化时,总共有三种方式可以选择,分别为:行内样式、内部样式、外部样式。其中,行内样式的优先级最高,其次为外部样式和内部样式,其中,外部样式和内部样式的优先级主要是看谁的代码靠前,越靠前的优先级越高。

行内样式:在标签内部设置的样式,优先级最高。

<div style="color: red;background: blue;">hello</div>

内部样式:在html文件内head中用style设置样式。

<style>
        div{
            color: pink;
            background: gold;
        }
 </style>

外部样式:即css文件,利用link将css文件与html进行连接,实现样式优化,多页面设置样式使用此方法会很方便。

<link rel="stylesheet" href="css/css选择器.css">

利用以下简单的html代码进行css选择器样式优化演示

<div style="color: red;background: blue;">hello</div>
    <div id="xx">文本标签</div>
    <div id="xxcc">文本标签</div>
    <div id="aaxx">文本标签</div>
    <div id="aaxxcc">文本标签</div>
    <div id="aacc">文本标签</div>
    <div>文本标签</div>
    <p class="aa">段落标签</p>
    <p>段落标签</p>
    <p>aa标签</p>
    <span class="aa">demo</span>
    <span>demo</span>
    <span>demo</span>
    <p>此处演示包含选择器(在div之外的p标签)</p>
    <div>
        <p>此处演示包含选择器(在div内的p标签)</p>
        <h4>
            这是在div标签里面h4标签里的p标签
        </h4>
    </div>
    <ul>
        <li class="aa">演示兄弟选择器</li>
        <li>演示兄弟选择器</li>
        <li class="aa">演示兄弟选择器</li>
        <li class="cc">演示兄弟选择器</li>
        <li>演示兄弟选择器</li>
        <li class="aa">演示兄弟选择器</li>
    </ul>
    <ol>
        <li>演示伪类选择器1</li>
        <li class="java">演示伪类选择器2</li>
        <li>演示伪类选择器3</li>
        <li class="pjp">演示伪类选择器4</li>
        <li>演示伪类选择器5</li>
        <li class="java">演示伪类选择器6</li>
        <li>演示伪类选择器7</li>
    </ol>
    <input type="text">

初始页面效果如下:

css选择器语法:本质就是根据条件选择对应的内容,进行样式优化。

选择器{
    属性1:值1;
    属性2:值2;
}

在css学习中,css选择器主要分成三类,下面根据以下三类介绍css选择器的应用。

一、基本选择器

1、元素选择器

用元素名称直接去做选择,进行样式设置。

如下代码,给div元素进行样式设置。

div{
    color: purple;
    background: greenyellow;
}

演示效果如下:

特例:选择所有元素进行样式优化。(会全面覆盖,一般加一些不太明显但是全部标签都需要有的样式)

**{
    color: purple;
    background: greenyellow;
}

演示效果如下:

2、属性选择器

属性选择器可以看成是对元素选择器的一种强化,可以更精确地找到样式优化的对象,属性不只有id,也有class等,哪怕自己造的属性一样可以进行选择。

div[id] 有id属性的div元素
div[id=xx] 有id属性,且id属性值为xx的div元素
div[id*=xx] 有id属性,且id属性值包含xx的div元素
div[id^=xx] 有id属性,且id属性值开头为xx的div元素
div[id$=xx] 有id属性,且id属性值结尾为xx的div元素
div[id$==xx]{
    color:purple;
    background:greenyellow;
}

演示效果如下:

3、id选择器#id

因为id和class属性经常被用到,所以有专门的选择器,当然,也可以用属性选择器。

id选择器不像属性选择器一样灵活,只能是等号。

#xx{
    color: purple;
    background: greenyellow;
}

演示效果如下:

4、class选择器.class

id是唯一的,class不是,可能其他标签里面也有相同的class。因为有更精确的需求,所以产生了结合选择器。

*.aa{
    color: purple;
    background: greenyellow;
}

演示效果如下:

结合选择器:穿着红衣服的人有很多,穿着红衣服的小明只有一个。

/* 特例:结合选择器 */

*p.aa{
    color: purple;
    background: greenyellow;
}

演示效果如下:

5、包含选择器 selector1 selector2 强调包含(一切后代都算)

* div p{
    color: purple;
    background: greenyellow;
}

演示效果如下:

6、子选择器 selector1>selector2 强调父子

* div>p{
    color: purple;
    background: greenyellow;
}

演示效果如下:

7、兄弟选择器 selector1~selector2

只找弟弟,不找哥哥

* .cc~.aa{
    color: purple;
    background: greenyellow;
}

演示效果如下:

所有弟弟

*.cc~*{
    color: purple;
    background: greenyellow;
}

演示效果如下:

8、选择器组合 selector1,selector2,selector3...

*p,
div a,
span{
    color: purple;
    background: greenyellow;
}

演示效果如下:

二、伪元素选择器

伪元素的意思是:好像添加了一个元素(好像多形成了一个新的空间),其实没添加。

1、首字母 ::first-letter 只能用于块级元素(块级元素暂定为只能用着竖着布局的元素)

div::first-letter{
    color: blue;
    font-size: 30px;
    background: greenyellow;
}

演示效果如下:

2、首行 ::first-line 只能用于块级元素(无论浏览器多大,都是第一行,汉字会随着屏幕大小自动换行,全连贯的英文会只有第一行,因为网页会默认为一个单词,解决此问题可以用单词裂开)

div::first-line{
    color: blue;
    font-size: 30px;
    background: greenyellow;
}

演示效果如下:

单词裂开:

* div{
    word-break: break-all;
}

3、在前边插入::before

div::before{
    content: "aaa";
    color: blue;
    font-size: 30px;
    background: greenyellow;
}

演示效果如下:

4、在后面插入::after

div::after{
    content: "aaa";
    color: blue;
    font-size: 30px;
    background: greenyellow;
}

演示效果如下:

三、伪类选择器

1、结构性伪类选择器

    :nth-child()
    括号里可以是数字n n从1开始
    可以是英文单词 odd奇数 even偶数
    括号里可以是表达式 5n+2 n从1开始
    找第一个:nth-child(1)=first-child
    找最后一个:last-child=nath-last-child(1)
    倒着数:nth-last-child()
    只认数字,如果类型刚好符合,则被选中,即对应数字位置上的类型刚好符合要求类型,则被选中
    :nth-of-type()
    括号里可以是数字n n从1开始
    可以是英文单词 odd奇数 even偶数
    括号里可以是表达式 5n+2 n从1开始
    找第一个:first-of-type=nth-of-type(1)
    找最后一个:last-of-type=nth-last-of-type(1)
    倒着数:nth-last-of-type()
    既认数字也认类型,找同类型下的第n个元素

演示代码如下:

ol li:nth-last-of-type(3n+2){
    color: blue;
    background: greenyellow;
}

演示效果如下:

2、ui状态伪类选择器

    :hover 鼠标悬停状态
    :focus 焦点状态
    :checked 选中状态

演示代码如下:

ol li:hover{
    color: blue;
    background: greenyellow;
}

演示效果如下:

演示代码如下:

input:hover{
    color: blue;
    background: greenyellow;
}

演示效果如下:

3、其他伪类选择器

not()排除,即过滤掉某些元素。

ol li:not(.java):not(.php){
    color: blue;
    background: greenyellow;

演示效果如下:

四、选择器的优先级规则

    1、选择器写的越长(越准确),优先级越高
    2、优先级高低:id选择器>class选择器>元素选择器
    3、同级别长度下,class代码按照顺序执行,后面的效果会把前面覆盖
    4、终极规则:以上规则适用于大部分场景,特殊场景不适合,需要自行测试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值