第9章 css3新增选择器(2)

CSS3新特性

1、强大的CSS选择器
2、新的颜色制式和透明设定
3、多栏布局的实现
4、多背景图效果
5、文字阴影效果
6、开放的网络字体类型
7、圆角
8、边框背景图片
9、盒子阴影
10 、媒体查询

浏览器支持情况

image.png

新增选择器

  • 新增选择器(掌握 4种)
  • 属性选择器(掌握)
  • 伪类选择器(掌握 讲过)
  • UI元素伪类选择器(优先级低一些)
  • 伪元素选择器(了解,自学)

通配选择器

  • 选择所有
    E>F 子选择器 (儿子,直接子类 )

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    h1> span{
    color: #8A2BE2;
    }
    </style>
    </head>
    <body>
    <h1>This is a <span>important</span><p><span>p---------important</span></p> heading</h1>
    </body>
    </html>

效果:


image.png

试着将大于号改为空格试试效果

E+F 相邻 紧挨着e的f元素 (第一个兄弟)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #id1+p{
                color: red;
            }
        </style>
    </head>
    <body>
        <p id="id1">11111111</p>
        <p>22222</p>
        <p>333333</p>
        <p>444444</p>
    </body>
</html>

E~F 通用选择器 E后面所有的F (所有兄弟)
上面的代码把+修改成~试试效果

属性选择器

根据指定名称的属性的值查找元素

1、li[class=red] 查询class属性名为red的

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                li[class=red]{
                    text-decoration: underline;
                    color: red;
                }
            </style>
        </head>
        <body>
            <ul>
                <li class="red">red</li>
                <li class="blue">red</li>
                <li class="red">red</li>
                <li class="black">red</li>
                <li class="white">red</li>
            </ul>
        </body>
    </html>
image.png

2、li[class*=red] 包含即可

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                /* li[class=red]{
                    text-decoration: underline;
                    color: red;
                } */
                    
                li[class*=red]{
                    text-decoration: underline;
                    color: red;
                }
            </style>
        </head>
        <body>
            <ul>
                <li class="red">red</li>
                <li class="blue">red</li>
                <li class="red">red</li>
                <li class="black">red</li>
                <li class="white">red</li>
            </ul>
            
            <ul>
                <li class="red1">red</li>
                <li class="01red">red</li>
                <li class="red2">red</li>
                <li class="02red">red</li>
            </ul>
        </body>
    </html>
image.png

学生练习

3、li[class^=red] 以red开头的
4、li[class$=red] 以red开头结尾

伪类选择器(前面章节讲过,此处略)

动态伪类选择器(掌握 一般用在链接,指定链接在不同时机下的样式,比如说链接被点击前,鼠标悬停时,被激活时,被点击后等等)
E:link 链接没有被访问过
E:visited 链接被访问过
E:active 激活时 从悬停到释放之间,按往鼠标不释放 (按住的瞬间)
E:hover 悬停
E:focus 获取焦点
正确的书写顺序: a:link、a:visited、a:hover、a:active

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
        <style>
        /* a:link、a:visited、a:hover、a:active */
        a:link {
            color: black;
            text-decoration: none
        }

        a:visited {
            color: black
        }

        a:hover {
            color: green
        }

        a:active {
            color: red
        }
    </style>
</head>
<body>
<a href="#" target="_blank">测试伪类</a>
</body>
</html>

UI元素伪类选择器

E:checked 匹配用户界面上处于选中状态的元素E(input type=radio/ checkbox)
E:enabled 匹配用户界面上处于可用状态的元素
E:disabled 匹配用户界面上处于禁用状态的元素

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS 用户界面(UI)元素状态伪类选择符 checked选择器-CSS教程</title>
<meta name="author" content="Joy Du(飘零雾雨), dooyoe@gmail.com, www.doyoe.com" />
<style>
input:checked+span{background:#f00;}
input:checked+span::after{content:" 我被选中了";}
</style>
</head>
<body>
<form method="post" action="#">
<fieldset>
    <legend>选中下面的项试试</legend>
    <ul>
        <li><label><input type="radio" name="colour-group" value="0" /><span>蓝色</span></label></li>
        <li><label><input type="radio" name="colour-group" value="1" /><span>红色</span></label></li>
        <li><label><input type="radio" name="colour-group" value="2" /><span>黑色</span></label></li>
    </ul>
</fieldset>
<fieldset>
    <legend>选中下面的项试试</legend>
    <ul>
        <li><label><input type="checkbox" name="colour-group2" value="0" /><span>蓝色</span></label></li>
        <li><label><input type="checkbox" name="colour-group2" value="1" /><span>红色</span></label></li>
        <li><label><input type="checkbox" name="colour-group2" value="2" /><span>黑色</span></label></li>
    </ul>
</fieldset>
</form>
</body>
</html>

结构伪类选择器

image.png
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                
                li:first-child{
                    color:blue;
                }
            </style>
        </head>
        <body>
            <ul>
                <li class="red">red</li>
                <li class="blue">red</li>
                <li class="red">red</li>
                <li class="black">red</li>
                <li class="white">red</li>
            </ul>
            
            <ul>
                <li class="red1">red</li>
                <li class="01red">red</li>
                <li class="red2">red</li>
                <li class="02red">red</li>
            </ul>
        </body>
    </html>
image.png

其他的学生练习

伪元素选择器(建议了解-自学)

1、伪元素选择器与content配合使用

<style type="text/css">
    p::before {
        content: "《";
        color: blue;
    }

    p::after {
        content: "》";
        color: blue;
    }
</style>

<body>
    <p>平凡的世界</p>
</body>
image.png

2、如果想为伪元素设置宽高,必须把元素变为块级元素display:block 或position或float


image.png

例子:制作如下效果

image.png

step1-先构建基本div

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            .child01{
                width:200px;
                height: 100px;
                float:left;
                background-color: red;
            }
            .child02{
                width:100px;
                height: 100px;
                float:left;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="child01">
            
        </div>
        <div class="child02">
            
        </div>
    </body>
</html>
image.png

step2:.child02前后加伪元素,调整位置和设定效果

        <style type="text/css">
            .child01{
                width:200px;
                height: 100px;
                float:left;
                background-color: red;
            }
            .child02{
                width:100px;
                height: 100px;
                float:left;
                background-color: blue;
                position: relative;
            }
            .child02::before{
                /* 必须添加*/
                content:"";
                /*转换成块级元素*/
                position: absolute;
                top:-10px;
                left:-10px;
                width:20px ;
                height: 20px;
                background-color: white;
                border-radius: 10px;
            }
            .child02::after{
                /* 必须添加*/
                content:"";
                /*转换成块级元素*/
                position: absolute;
                bottom:-10px;
                left:-10px;
                width:20px ;
                height: 20px;
                background-color: white;
                border-radius: 10px;
            }   
        </style>
image.png

关键代码:

image.png

::first-letter第一个字符

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style type="text/css">
                p::first-letter{
                    color:red;
                }
            </style>
        </head>
        <body>
            <p>UP主自己创建的前端交流群:865712069,有时会分享一些课程资料,for free。</p>
        </body>
    </html>

::first-line

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style type="text/css">
                p::first-letter{
                    color:red;
                }
                    
                .con:first-line{
                    color:blue;
                }
            </style>
        </head>
        <body>
            <p>UP主自己创建的前端交流群:865712069,有时会分享一些课程资料,for free。
            
            </p>
            
            <div class="con">UP主自己创建的前端交流群:865712069,有时会分享一些课程资料,for free。<br>
            UP主自己创建的前端交流群:865712069,有时会分享一些课程资料,for free。
            </div>
        </body>
    </html>

效果:


image.png

::selection

改变元素被选中时的样式

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style type="text/css">
                p::selection{
                    background-color: red;
                }
            </style>
        </head>
        <body>
            <p>UP主自己创建的前端交流群:865712069,有时会分享一些课程资料,for free。</p>
        </body>
    </html>

用鼠标选中部分文本看样式

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容

  • 选择器 元素选择符 关系选择符 属性选择符 伪类选择符 伪对象选择符 一、元素选择符 通配选择符 (*):选择所有...
    云外之境阅读 1,860评论 0 0
  • 一、CSS选择器常见的有几种? 基本选择器 通配选择器~选择文档中所有的html元素,用一个*表示 元素选择器~选...
    dengpan阅读 962评论 0 3
  • 可以参考:1、https://blog.csdn.net/q1056843325/article/details/...
    碎碎先生阅读 201评论 0 0
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,631评论 0 7
  • 1.CSS 元素选择器 最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。如果设置 H...
    饥人谷_小侯阅读 862评论 0 1