CSS3基础知识学习总结笔记

1.CSS3选择器详解

1.1 属性选择器:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        [id*="div"]{
            color: aqua;
        }
        [id^="div"]{
            color:blue;
        }
        [id$="div"]{
            color:blueviolet;
        }
    </style>
</head>
<body>
    <div id="div1">this is div 1</div>
    <div id="div2">this is div 2</div>
    <div id="div3">this is div 3</div>
    <div id="div4">this is div 4</div>
    <div id="mydiv">this is div 5</div>
</body>
</html>

讲解:
[attr*=val]:只要val中包含了id中有的字段,就会被包括
[attr^=val]:满足attr属性值以val开头,那么久会被包括进来
[attr$=val]: attr属性值的尾字符以val结束,就会被选中

1.2 结构性伪类选择器

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        p:first-line{
            color:blueviolet;
        }
        p:first-letter{
            color:antiquewhite;
        }
        li:before{
            content: "--";
            color: blue;
        }
        li::after{
            content: "description";
            color: gray;
            font-size: 10px;
        }
    </style>
</head>
<body>
    <p>this is the first line <br/> this is the second line.</p>
    <ul>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
    </ul>
</body>
</html>

包含了伪类选择器和伪元素选择器。

1.3 选择器root,not,empty和target

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        /*root*/
        :root{
            background-color: gray;
        }
        body{
            background-color: antiquewhite;
        }
        /*not*/
        .div1 *:not(h1){
            color: red;
        }
        /*empty*/
        :empty{
            background-color: aqua;
        }
        /*target*/
        :target{
            background-color: chartreuse;
        }
    </style>
</head>
<body>
    <div class="div1">
        This is div1.
        <p>this is p.</p>
        <h1>this is h1</h1>
    </div>
    <table border="1">
        <tr>
            <td>item1</td>
            <td>item2</td>
        </tr>
        <tr>
            <td>item1</td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>item2</td>
        </tr>
    </table>
    <a href="#div1">menu1</a>|
    <a href="#div2">menu2</a>|
    <a href="#div3">menu3</a>
    <div id="div1">
        <h1>DIV1</h1>
        <p>div1 content</p>
    </div>
    <div id="div2">
        <h1>DIV1</h1>
        <p>div1 content</p>
    </div>
    <div id="div3">
        <h1>DIV1</h1>
        <p>div1 content</p>
    </div>
</body>
</html>

1.4 选择器:first-child,last-child,nth-child和nth-last-child

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        /*第一个子对象*/
        li:first-child{
            background-color: chartreuse;
        }
        /*最后一个子对象*/
        li:last-child{
            background-color: aqua;
        }
        /*正数第几个子对象*/
        li:nth-child(2){
            background-color: brown;
        }
        /*倒数第几个子对象*/
        li:nth-last-child(2){
            background-color: deeppink;
        }
    </style>
</head>
<body>
    <ul>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
        <li>item5</li>
        <li>item6</li>
    </ul>
</body>
</html>

其中特殊情况,重复样式的设置:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        li:nth-child(4n+1){
            background-color: aqua;
        }
        li:nth-child(4n+2){
            background-color: aliceblue;
        }
        li:nth-child(4n+3){
            background-color: brown;
        }
        li:nth-child(4n){
            background-color: deeppink;
        }
    </style>
</head>
<body>
    <ul>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
    </ul>
</body>
</html>

1.5 选择器:nth-of-type 和 nth-last-of-type

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        /*h2:nth-child(odd){
            background-color: deeppink;
        }*/
        h2:nth-of-type(odd){
            background-color: deeppink;
        }
        h2:nth-last-of-type(odd){
            background-color: aqua;
        }
    </style>
</head>
<body>
    <h2>Title</h2>
    <p>detail content</p>
    <h2>Title</h2>
    <p>detail content</p>
    <h2>Title</h2>
    <p>detail content</p>
    <h2>Title</h2>
    <p>detail content</p>
</body>
</html>

1.6 选择器:only-child
当只有一个子元素的时候,就可以用only-child代替掉nth-child和nth-last-child

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        li:only-child{
            background-color: deeppink;
        }
    </style>
</head>
<body>
    <ul>
        <li>item1</li>
    </ul>
    <ul>
        <li>item1</li>
    </ul>
    <ul>
        <li>item1</li>
        <li>item1</li>
        <li>item1</li>
        <li>item1</li>
        <li>item1</li>
    </ul>
</body>
</html>

1.7 UI元素状态伪类选择器
概念:
指定的样式只有在当元素处于某种状态下时才会起作用,在默认状态时不起作用:css3种一共有17种UI元素状态伪类选择器:E:hover,E:active,E:focus,E:disable,E:read-only,E:checked,E:default,E:indeterminate…等等
示例:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        /*hover focus active*/
        input[type="text"]:hover{
            background-color: deeppink;
        }
        input[type="text"]:focus{
            background-color: aqua;
        }
        input[type="text"]:active{
            background-color: blue;
        }
        input[type="checkbox"]:checked{
            outline: 2px solid deeppink;
        }
    </style>
</head>
<body>
    <input type="text" name="name">
    <input type="text" name="age">
    <br/>
    <input type="checkbox">read
    <input type="checkbox">move
    <input type="checkbox">study
</body>
</html>

1.8 disabled和enabled

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        input[type="text"]:disabled{
            background-color: grey;
        }
        input[type="text"]:enabled{
            background-color: aqua;
        }
    </style>
    <script>
        function changeText(){
            var radio1=document.getElementById("radio1");
            var radio2=document.getElementById("radio2");
            var text=document.getElementById("text");
            if(radio1.checked){
                text.disabled="";
            }
            if(radio2.checked){
                text.value="";
                text.disabled="disabled";
            }
        }
    </script>
</head>
<body>
    <input type="radio" id="radio1" name="radio" onchange="changeText()">可用
    <input type="radio" id="radio2" name="radio" onchange="changeText()"  checked >不可用
    <input type="text" id="text" disabled>
</body>
</html>

1.9 通用兄弟元素选择器

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        /*有效果*/
        .sdiv ~ p{
            background-color: aqua;
        }
        /*无效果*/
        .maindiv ~ p{
            background-color: aqua;
        }
    </style>
</head>
<body>
    <div class="maindiv">
        <div class="sdiv">
            <p>sssssssssss</p>
            <p>sssssssssss</p>
        </div>
        <p>sssssssssss</p>
        <p>sssssssssss</p>
        <p>sssssssssss</p>
        <p>sssssssssss</p>
    </div>
</body>
</html>

2. CSS3文字与字体样式

2.1 给文字添加阴影:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            /*这里可以加多个阴影*/
            text-shadow: 5px 5px 5px #ff00ff,10px 10px 5px #ff00ff,15px 15px 5px #ff00ff;
            font-size: 50px;
            font-weight: bold;
            font-family: fantasy;
        }
    </style>
</head>
<body>
    <div>
        Text
    </div>
</body>
</html>

2.2 使用服务器端字体

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        @font-face {
            font-family: MyWebFont;
            /*如果客户端没有这个字体,就会去加载服务器上的字体*/
            src:local("MyWebFont"),
                url("impact.ttf");
        }
        div{
            font-family: MyWebFont;
        }
    </style>
</head>
<body>
    <div>This is my page</div>
</body>
</html>

利用font-size-adjust修改字体种类而保持字体大小不变
利用font-size-adjust属性,微调字体大小,最终可以获取到想要的效果

3. CSS3盒子相关样式

3.1 盒子的类型:display属性
一般有:inline,block,inline-block,inline-table,list-item
inline是没法设置宽度的,block可以设置宽度,但是如果既想要inline的不换行效果,又要block可以设置宽度的效果,这时就要用到inline-block了;
inline-table是给table标签使用的,使得table也变成内联元素;
list-item可以将一般的元素变成列表的形式展现。

3.2 盒子容不下内容的展示:overflow属性
hidden:超过的文字就会被隐藏,看不到
scroll:看不到的文字可以通过滚动 看到
auto:会根据内容自动的增加水平或者竖直的滚动条
visible:与设置此属性效果一样,会影响布局
另外还有:overflow-xoverflow-y

3.3 盒子阴影:box-shandom属性
使用这个属性可以未盒子设置出想要的阴影效果。

3.4 盒子大小设置:box-sizing
一共有两个:border-box;content-box
第一个表示整个元素的宽度和高度包括在整个盒子当中;而第二个表示只有内容部分包括在整个盒子当中;

4. CSS3盒子背景样式

盒子背景样式:backgroud-clip:

  1. border-box:内边距,边框和内容都会有效果
  2. padding-box:只有内边距和内容有背景效果
  3. content-box:只有内容会有背景效果

圆角边框:border-radius 属性设置
图像边框:border-image

5. CSS3变形处理

transform属性:
rotate(角度):旋转
scale(缩放比例) :缩放
skew (水平方向倾斜角度,垂直方向倾斜角度):倾斜
translate(x轴移动距离,y轴移动距离) :移动

一个元素多种变形方法添加:
只要在transform属性中后面,添加多个变形效果即可;
多个变形方法添加的顺序不同,会导致最后元素所在的位置会有不一样的效果,因此要注意这些细节。

改变缩放的基准点:transform-origin属性
通过改变基准点,可以使变形产生不一样的效果

6. CSS3动画效果

6.1 Transition动画效果

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            background-color: magenta;
            /*transition: background-color 1s linear;*/
            width: 100px;
            color: black;
            transition: transform 1s linear,width 1s linear,color 1s linear;
        }
        div:hover{
            width: 200px;
            color: blanchedalmond;
            background-color: aqua;
            transform:rotate(180deg);
        }
    </style>
</head>
<body>
    <div>动画效果transtion</div>
</body>
</html>

6.2 Animations更复杂的动画效果

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            background-color: red;
        }
        @-webkit-keyframes mycolor {
            /*使用这种方式可以定位更多的动画方式*/
            0%{
                background-color: red;
            }
            40%{
                background-color: yellow;
            }
            70%{
                background-color: aqua;
            }
            100%{
                background-color: red;
            }
        }
        div:hover{
            -webkit-animation: mycolor 5s linear;
        }
    </style>
</head>
<body>
    <div>示例文字</div>
</body>
</html>

6.3 实现动画的方法
linear :匀速变化
ease-in :由慢到快
ease-out :由快到慢
ease与ease-in-out:由慢到快再到慢的效果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值