Css3入门详解

一、Css基本语法

1.Html和Css没分开

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
  <!--规范,<style>可以编写css的代码,每一个声明,最好使用分号隔开
    语法:
        选择器{
        声明1;
        声明2;
        声明3;
        }
    -->
    <meta charset="UTF-8">
    <title>MyFirstss&#x9875;&#x9762;</title>
    <style>
        h1{
            color:red;
        }
    </style>
</head>

<body>
    <h1>TWQ&#x6807;&#x9898;</h1>
</body>
</html>

运行结果图

Css3入门详解

2.Html和Css分开后

依然可以达到上图的效果

Css3入门详解

3.Css三种导入方式

点击查看代码

<head>
    <meta charset="UTF-8">
    <title>MyFirstss&#x9875;&#x9762;</title>
    <!--规范,<style>可以编写css的代码,每一个声明,最好使用分号隔开
    语法:
        选择器{
        声明1;
        声明2;
        声明3;
        }
    -->

    <!-- 方式二:外部样式-->
    <link rel="stylesheet" href="../css/style.css">

    <!-- 方式三:内部样式   -->
    <style>
        h1{
            color: aqua;
        }
    </style>

</head>

<body>
<!--优先级:就近原则:若没写方式一,则方式二和方式三谁离h1最近就采用谁的样式-->
<!--方式一:行内样式:在标签元素中,编写一个style属性,编写样式即可-->
    <h1 style="color: red">TWQ&#x6807;&#x9898;</h1>
</body>

二、选择器

1.基本选择器

(1)标签选择器

Css3入门详解

(2)类 选择器 class

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
       /*类选择器的格式:.class的名称{}
          好处:可以多个标签归类,是同一个class,可以复用*/
       .title1{
            color: aqua;
       }
       .title2{
           color: red;
       }
    </style>
</head>
<body>
    <h1 class="title1">&#x6211;&#x662F;&#x6807;t</h1>
    <h1 class="title2">&#x6211;&#x662F;&#x6807;t</h1>
<!--    由于p标签的class名和标题1的class名相同,因此会有相同的样式-->
    <p class="title1">&#x6211;&#x662F;&#x6BB5;&#x843D;</p>
</body>
</html>

运行结果如下

Css3入门详解

(3)id 选择器 class

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--
id选择器:id必须要保证全局唯一
#id名称{}
优先级:不遵循就近原则,固定的
id选择器 > class选择器 > 标签选择器

-->
    <style>
        #title3{
            color: aqua;
        }
        .title1{
            color: red;
        }
        .title2{
            color: green;
        }
        h1{
            color: yellow;
        }
    </style>
</head>
<body>

    <h1 class="title1" id="title3">&#x6807;&#x9898;2</h1>
    <h1 class="title2">&#x6807;&#x9898;3</h1>
    <h1>&#x6807;&#x9898;1</h1>
</body>
</html>

运行结果图

Css3入门详解

2.高级选择器

(1)层次选择器

①后代选择器

点击查看代码

<style>
    body p{
      background: green;
    }
  </style>

运行结果图

Css3入门详解
②子代选择器 一代 儿子

点击查看代码

body>p{
      background: aqua;
    }

Css3入门详解
③相邻兄弟选择器

作用于相邻兄弟,只有一个(向下) 点击查看代码

.twq +P{
      background: red;
    }

运行结果图

Css3入门详解
④通用选择器

作用于当前选中元素向下的所有兄弟元素 点击查看代码

 .twq~p{
      background: yellow;
    }

运行结果图

Css3入门详解
并集选择器
div, p{
  color:red
}

上述语法会将div和p标签变成的颜色变成红色

优先级和权重

1⃣️!important>行内>id>类选择器>标签选择器

Css3入门详解
2⃣️复合选择器会有权重叠加的问题,下图结果就是复合选择器的颜色(绿色)会生效,权重会叠加,但是不会进位

Css3入门详解

(2)结构伪类选择器

点击查看代码

<head>
    <meta charset="UTF-8">
    <title>Title</title>

  <style>

    /*ul中的第一个子元素*/
    ul li:first-child{
      background: yellow;
    }

  /*ul中的最后一个子元素*/
    ul li:last-child{
      background: red;
    }

  /*选中p1:定位到父元素,选择当前的第一个元素
    选择当前p元素的父级元素,当选中父级元素的第一个时,只有第一个元素是p标签类型时才会生效
  */
    p:nth-child(2){
      background: aqua;
    }

  /*选中父元素,下的p元素的第二个,类型*/
    p:nth-of-type(1){
      background: green;
    }

  /*当鼠标放到该标签上时可以让其背景颜色变成黑色*/
    a:hover{
      background: black;
    }

  </style>
</head>
<body>
<a href>123</a>
    <p>p1</p>
    <p>p2</p>
    <p>p3</p>
    <ul>
      <li>li1</li>
      <li>li2</li>
      <li>li3</li>
    </ul>
</body>

运行结果图

Css3入门详解
下图表示,鼠标点击了哪个input则其背景颜色变成黄色

Css3入门详解

(3)属性选择器(重点)

点击查看代码

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*后代选择器*/
         .demo a{
             float: left;
             /*以块的形式展示*/
             display: block;
             /*设置块的高和宽*/
             height: 50px;
             width: 50px;
             /*设置块的圆角边框*/
             border-radius: 10px;
             /*设置块的背景颜色*/
             background: blue;
             /*文字设置居中*/
             text-align: center;
             /*文字颜色为灰色*/
             color: gray;
             /*去掉文字的下划线*/
             text-decoration: none;
             /*外边距,每个元素之间的间隙为5px*/
             margin-right: 5px;
             /*bold:粗体 20px为字体大小 因为块是高和宽都是50的正方形所以设置50px行高可以居中*/
             font:bold 20px/50px Arial;
         }
        /*属性名,[属性名 = 属性值(正则)]*/
        /*存在id属性的元素 a[]{}*/
        a[id]{
            background: yellow;
        }
        /*将id等于first的a标签背景颜色设置为红色*/
        a[id=first]{
            background: red;
        }
        /*将class中含有links的元素背景颜色设为天蓝*/
        a[class*="links"]{
            background: aqua;
        }
        /*选中href中一http开头的元素*/
        /* =绝对等于
          *=包含这个元素
          ^=以这个开头
          $=以这个结尾
          */
        a[href^=http]{
            background: aquamarine;
        }

    </style>
</head>
<body>
    <p class="demo">
        <a href="https://www.cnblogs.com/" class="links item first" id="first">1</a>
        <a href class="links item active" target="_blank" title="test">2</a>
        <a href="tw1/123.html" class="links item">3</a>
        <a href="image/12.jpg" class="links item" id="first">4</a>
        <a href="image/12.png" class="links item">5</a>
        <a href="abc">6</a>
        <a href="12">7</a>
        <a href="/a.pdf">8</a>
        <a href="/ab.pdf">9</a>
        <a href class="links item last">10</a>
    </p>
</body>

运行结果图

Css3入门详解

三、美化网页元素

CSS的元素显示模式

块内元素

Css3入门详解

行内元素

Css3入门详解

显示模式转换

a{
  width:150px;
  height:50px;
/*&#x628A;&#x884C;&#x5185;&#x5143;&#x7D20;a&#x8F6C;&#x6362;&#x4E3A;&#x5757;&#x7EA7;&#x5143;&#x7D20;*/
  display:block;
}
div{
/*&#x628A;&#x5757;&#x5185;&#x5143;&#x7D20;div&#x8F6C;&#x6362;&#x4E3A;&#x884C;&#x5185;&#x7EA7;&#x5143;&#x7D20;*/
  display:inline;
}
span{
/*&#x628A;&#x884C;&#x5185;&#x5143;&#x7D20;a&#x8F6C;&#x6362;&#x4E3A;&#x884C;&#x5185;&#x5757;&#x5143;&#x7D20;*/
  display:inline-block;
}

1.span标签

本身并没有多大的作用,约定俗成将span标签作为突出强调一些东西 点击查看代码

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #title1{
            font-size: 50px;
        }
    </style>
</head>
<body>
&#x6B22;&#x8FCE;&#x5B66;&#x4E60;<span id="title1">java</span>
</body>

运行结果图

Css3入门详解

2.字体样式

点击查看代码

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
        font-family:字体
        font-size:字体大小
        font-weight:字体粗细
        color:字体颜色
    -->
    <style>
        body{
            font-family: "Arial Black",楷体;

        }
        h1{
            font-size: 50px;
            color: aqua;
        }
        .p1{
            font-weight: bolder;
        }
        /*字体风格
        oblique:斜体
        bolder:粗细
        12px:字体大小
        "楷体":字体样式
        */
        p{
            font oblique bolder 12px "楷体";
        }
    </style>
</head>
<body>
<h1>&#x6545;&#x4E8B;&#x4ECB;&#x7ECD;</h1>
    <p class="p1">
        &#x300A;&#x9B41;&#x62D4;&#x300B;&#x662F;2008&#x5E74;&#x5317;&#x4EAC;&#x9752;&#x9752;&#x6811;&#x52A8;&#x6F2B;&#x79D1;&#x6280;&#x6709;&#x9650;&#x516C;&#x53F8;&#x4EE5;&#x7CFB;&#x5217;&#x52A8;&#x753B;&#x7535;&#x5F71;&#x7684;&#x7B2C;&#x4E00;&#x90E8;&#x300A;&#x9B41;&#x62D4;&#x4E4B;&#x5341;&#x4E07;&#x706B;&#x6025;&#x300B;&#x4E3A;&#x57FA;&#x7840;&#xFF0C;&#x91CD;&#x65B0;&#x526A;&#x8F91;&#x800C;&#x6210;&#x7684;TV&#x52A8;&#x753B;&#x3002;&#x7531;&#x738B;&#x5DDD;&#x6267;&#x5BFC;&#xFF0C;&#x7530;&#x535A;&#x3001;&#x9A6C;&#x534E;&#x7B49;&#x7F16;&#x5267;&#xFF0C;&#x5218;&#x5A67;&#x8366;&#xFF0C;&#x7AF9;&#x5185;&#x987A;&#x5B50;&#x7B49;&#x914D;&#x97F3;&#x3002;
        TV&#x7248;&#x5B8C;&#x6574;&#x4FDD;&#x7559;&#x4E86;&#x7535;&#x5F71;&#x7684;&#x4E16;&#x754C;&#x89C2;&#x3001;&#x4EBA;&#x7269;&#x8BBE;&#x5B9A;&#x3001;&#x6545;&#x4E8B;&#x5185;&#x5BB9;&#x548C;&#x60C5;&#x8282;&#x4E3B;&#x7EBF;&#xFF0C;&#x4F46;&#x91CD;&#x5236;&#x4E86;&#x7247;&#x5934;&#x66F2;&#x3002;&#x300A;&#x9B41;&#x62D4;&#x5996;&#x4FA0;&#x4F20;&#x300B;&#x662F;&#x9B41;&#x62D4;&#x7CFB;&#x5217;&#x7535;&#x5F71;&#x7684;&#x524D;&#x4F20;&#xFF0C;&#x4E3B;&#x8981;&#x8BB2;&#x8FF0;&#x7684;&#x662F;&#x6709;&#x5173;&#x5361;&#x62C9;&#x8096;&#x514B;&#x6F58;&#x5BB6;&#x65CF;&#x7684;&#x6545;&#x4E8B;&#xFF0C;&#x4E0E;&#x7535;&#x5F71;&#x5173;&#x7CFB;&#x5E76;&#x4E0D;&#x5927;&#x3002;&#x5927;&#x5BB6;&#x6240;&#x8BF4;&#x7684;&#x9B41;&#x62D4;&#x901A;&#x5E38;&#x6307;&#x9B41;&#x62D4;&#x7CFB;&#x5217;&#x52A8;&#x753B;&#x7535;&#x5F71;&#x3002;TV&#x7248;&#x5B8C;&#x6574;&#x4FDD;&#x7559;&#x4E86;&#x7535;&#x5F71;&#x7684;&#x4E16;&#x754C;&#x89C2;&#x3001;&#x4EBA;&#x7269;&#x8BBE;&#x5B9A;&#x3001;&#x6545;&#x4E8B;&#x5185;&#x5BB9;&#x548C;&#x60C5;&#x8282;&#x4E3B;&#x7EBF;&#xFF0C;&#x4F46;&#x91CD;&#x5236;&#x4E86;&#x7247;&#x5934;&#x66F2;&#x3002;&#x300A;&#x9B41;&#x62D4;&#x5996;&#x4FA0;&#x4F20;&#x300B;&#x662F;&#x9B41;&#x62D4;&#x7CFB;&#x5217;&#x7535;&#x5F71;&#x7684;&#x524D;&#x4F20;&#xFF0C;&#x4E3B;&#x8981;&#x8BB2;&#x8FF0;&#x7684;&#x662F;&#x6709;&#x5173;&#x5361;&#x62C9;&#x8096;&#x514B;&#x6F58;&#x5BB6;&#x65CF;&#x7684;&#x6545;&#x4E8B;&#xFF0C;&#x4E0E;&#x7535;&#x5F71;&#x5173;&#x7CFB;&#x5E76;&#x4E0D;&#x5927;&#x3002;&#x5927;&#x5BB6;&#x6240;&#x8BF4;&#x7684;&#x9B41;&#x62D4;&#x901A;&#x5E38;&#x6307;&#x9B41;&#x62D4;&#x7CFB;&#x5217;&#x52A8;&#x753B;&#x7535;&#x5F71;&#x3002;
    </p>
<p>
    &#x300A;&#x9B41;&#x62D4;&#x300B;&#x662F;2008&#x5E74;&#x5317;&#x4EAC;&#x9752;&#x9752;&#x6811;&#x52A8;&#x6F2B;&#x79D1;&#x6280;&#x6709;&#x9650;&#x516C;&#x53F8;&#x4EE5;&#x7CFB;&#x5217;&#x52A8;&#x753B;&#x7535;&#x5F71;&#x7684;&#x7B2C;&#x4E00;&#x90E8;&#x300A;&#x9B41;&#x62D4;&#x4E4B;&#x5341;&#x4E07;&#x706B;&#x6025;&#x300B;&#x4E3A;&#x57FA;&#x7840;&#xFF0C;&#x91CD;&#x65B0;&#x526A;&#x8F91;&#x800C;&#x6210;&#x7684;TV&#x52A8;&#x753B;&#x3002;&#x7531;&#x738B;&#x5DDD;&#x6267;&#x5BFC;&#xFF0C;&#x7530;&#x535A;&#x3001;&#x9A6C;&#x534E;&#x7B49;&#x7F16;&#x5267;&#xFF0C;&#x5218;&#x5A67;&#x8366;&#xFF0C;&#x7AF9;&#x5185;&#x987A;&#x5B50;&#x7B49;&#x914D;&#x97F3;&#x3002;
    TV&#x7248;&#x5B8C;&#x6574;&#x4FDD;&#x7559;&#x4E86;&#x7535;&#x5F71;&#x7684;&#x4E16;&#x754C;&#x89C2;&#x3001;&#x4EBA;&#x7269;&#x8BBE;&#x5B9A;&#x3001;&#x6545;&#x4E8B;&#x5185;&#x5BB9;&#x548C;&#x60C5;&#x8282;&#x4E3B;&#x7EBF;&#xFF0C;&#x4F46;&#x91CD;&#x5236;&#x4E86;&#x7247;&#x5934;&#x66F2;&#x3002;&#x300A;&#x9B41;&#x62D4;&#x5996;&#x4FA0;&#x4F20;&#x300B;&#x662F;&#x9B41;&#x62D4;&#x7CFB;&#x5217;&#x7535;&#x5F71;&#x7684;&#x524D;&#x4F20;&#xFF0C;&#x4E3B;&#x8981;&#x8BB2;&#x8FF0;&#x7684;&#x662F;&#x6709;&#x5173;&#x5361;&#x62C9;&#x8096;&#x514B;&#x6F58;&#x5BB6;&#x65CF;&#x7684;&#x6545;&#x4E8B;&#xFF0C;&#x4E0E;&#x7535;&#x5F71;&#x5173;&#x7CFB;&#x5E76;&#x4E0D;&#x5927;&#x3002;&#x5927;&#x5BB6;&#x6240;&#x8BF4;&#x7684;&#x9B41;&#x62D4;&#x901A;&#x5E38;&#x6307;&#x9B41;&#x62D4;&#x7CFB;&#x5217;&#x52A8;&#x753B;&#x7535;&#x5F71;&#x3002;
</p>
</body>

运行结果图 下图是上面所有样式合在一起的最终结果,如果想单独实现某一效果,可以将其他代码注释掉

Css3入门详解

font 复合属性写法


    div{
      /*font-style: italic;*/
      /*font-weight: bold;*/
      /*font-size: 16px;*/
      /*font-family: 'Microsoft Sans Serif';*/
      /*复合属性:简写的方式 节约代码 下面这种复合写法的顺序不能颠倒*/
      /*font: font-style font-weight font-size/line-height font-family;*/
      font: italic bold 16px 'Microsoft Sans Serif';
    }

Css3入门详解

Css3入门详解

3.文本样式

(1)颜色

①单词

color: red;

②RGB: FF0000表示红色、00FF00表示绿色、0000FF表示黑色

color: #0073ff;
color: rgb(0,2,3);

③RGBA 透明度:数值在0-1之间

color: rgba(0,2,3,0.5);

(2)文本对齐方式

text-align:排版,居中

text-align:center;

(3)首行缩进

2em表示首行缩进两个汉字

text-indent:2em

(4)行高

Css3入门详解
改变行高的大小就是在改变上下间距的大小
块高和行高一致的时候可以实现文本的上下居中
height:300px;
line-height:300px

(5)decoration

①下划线

text-decoration:underline;

②中划线

text-decoration:line-through;

③上划线

text-decoration:overline;

④超链接a标签默认有下划线去除方法

text-decoration:none;

(6)文本和图片水平对齐


    Title

        img,span{
            vertical-align:middle;
        }

《魁拔》是2008年北京青青树动漫科技有限公司以系列动画

Css3入门详解

Css3入门详解

4.超链接伪类

点击查看代码

<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    /*默认的颜色*/
    a{
      text-decoration: none;
      color: black;
    }
    /*鼠标悬浮的状态*/
    a:hover{
      color: aqua;
      font-size: 50px;
    }
    /*鼠标按住未释放的状态*/
    a:active{
      color: yellow;
    }
    /*!*鼠标点击完之后的颜色*!*/
    /*a:visited{*/
    /*  color: red;*/
    /*}*/
    /*text-shadow:阴影颜色 ,水平偏移,垂直偏移,阴影半径*/
    #price{
      text-shadow: aqua 10px 10px 2px;
    }
  </style>
</head>
<body>

<p>
  <a href="#">&#x83DC;&#x9E1F;&#x5B66;&#x4E60;Java</a>

</p>
<p>
  <a href>&#x4F5C;&#x8005;&#xFF1A;Twq</a>
</p>
<p id="price">&#xFFE5;99</p>
</body>

运行结果图

Css3入门详解

5.列表样式练习

(1).list-style: 的使用

①去掉无序列表前面的黑点

点击查看代码

ul li{
    height: 30px;
    list-style: none;
}

运行结果图

Css3入门详解
②黑点变成空心圆

list-style: circle;

③黑点变成数字

list-style: decimal;

④黑点变成正方形

list-style: square;

(2)修改整个ul的背景颜色

点击查看代码

ul{
background:red;
}

(3)小练习

目的:实现效果

Css3入门详解
HTML代码:

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="../../css/style.css">
</head>
<body>
<div id="nav">

    <h2 class="title">&#x5168;&#x90E8;&#x5546;&#x54C1;</h2>
    <ul>
    <li><a href="#">&#x56FE;&#x4E66;</a>&#xA0;&#xA0;<a href="#">&#x6570;&#x5B57;&#x5546;&#x54C1;</a>&#xA0;&#xA0;<a href="#">&#x97F3;&#x50CF;</a></li>
    <li><a href="#">&#x5BB6;&#x7528;&#x7535;&#x5668;</a>&#xA0;&#xA0;<a href="#">&#x624B;&#x673A;</a>&#xA0;&#xA0;<a href="#">&#x978B;&#x5E3D;</a></li>
    <li><a href="#">&#x65C5;&#x884C;</a>&#xA0;&#xA0;<a href="#">&#x5BB6;&#x88C5;</a>&#xA0;&#xA0;<a href="#">&#x98DF;&#x54C1;</a></li>
    </ul>
</div>
</body>
</html>

Css代码 点击查看代码

#nav{
    width: 300px;

}
.title{
    font-size: 30px;
    font-weight: bold;
    text-indent: 1em;
    line-height: 35px;
    /*&#x989C;&#x8272;,&#x56FE;&#x7247;&#xFF0C;&#x56FE;&#x7247;&#x4F4D;&#x7F6E;&#xFF0C;&#x5E73;&#x94FA;&#x65B9;&#x5F0F;*/
    background: red url("../resource/Image/img_2.png") 259px -3px no-repeat;
}

ul{
    background: gray;
}
ul li{
    height: 30px;
    list-style: none;
    background: url("../resource/Image/img_1.png") 218px -12px no-repeat;

}

运行结果图

Css3入门详解

6.背景图片

点击查看代码

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*border:边框的粗细 边框的样式 边框的颜色*/
        div{
            width: 1000px;
            height: 700px;
            border: 1px solid red;
            /*默认是全部平铺的 repeat*/
            background-image: url("../../resource/Image/img.png");
        }
        /*自动横向平铺*/
        .div1{
            background-repeat: repeat-x;
        }
        /*自动纵向平铺*/
        .div2{
            background-repeat: repeat-y;
        }
        /*不平铺*/
        .div3{
            background-repeat: no-repeat;
        }
    </style>
</head>
<body>

</body>

运行结果图

Css3入门详解

背景图片的位置

Css3入门详解
如果参数是方位名词,两个值的顺序为center right 和right center效果一样,都是将图片在水平方向靠右,在竖直方向居中

Css3入门详解

背景图像固定

Css3入门详解

背景的复合写法

Css3入门详解

背景颜色半透明

Css3入门详解

背景总结

Css3入门详解

7.渐变

https://www.grabient.com/

看这个网站即可,可以进行复制渐变的css代码

Css3入门详解

8.行高的继承

Css3入门详解

四、盒子模型

1.什么是盒子模型

Css3入门详解
margin:外边距
padding:内边距
border:边框

2.边框

Css3入门详解
border-style:solid;/*&#x5B9E;&#x7EBF;&#x8FB9;&#x6846;*/
border-style:dashed;*&#x865A;&#x7EBF;&#x8FB9;&#x6846;*/
border-style:dotted;*&#x70B9;&#x7EBF;&#x8FB9;&#x6846;*/

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*h2,ul,l,a,body{*/
        /*    !*body总有一个默认的外边距margin:0,常见操作*!*/
        /*    margin: 0;*/
        /*    padding: 0;*/
        /*    text-decoration: none;*/
        /*}*/
        #box{
            width: 300px;
            border:1px solid red;
        }
        form{
            background: #3b403b;
        }
        h2{
            font-size:16px;
            background: yellow;
            line-height: 30px;
            color: wheat;
            margin: 0;
        }
        div:nth-of-type(1)>input{
            border:1px solid black;
        }
        div:nth-of-type(2)>input{
            border:1px dashed #bf2d2d;
        }
        div:nth-of-type(3)>input{
            border:1px dashed #60e767;
        }
    </style>
</head>
<body>
<div id="box">
    <h2>&#x4F1A;&#x5458;&#x767B;&#x5F55;</h2>
    <form action="#">
        <div>
            <span>&#x7528;&#x6237;&#x540D;&#xFF1A;</span>
            <input type="text">
        </div>
        <div>
            <span>&#x5BC6;&#x7801;&#xFF1A;</span>
            <input type="text">
        </div>
        <div>
            <span>&#x90AE;&#x7BB1;&#xFF1A;</span>
            <input type="text">
        </div>
    </form>
</div>
</body>
</html>

运行结果图

Css3入门详解

3.内外边距

内外边距可以通过如下方式区调节内外边距的大小,以及调节内外边距代码的写法

Css3入门详解

内边距


    div{
        width: 200px;
        height: 200px;
        background: deepskyblue;
        padding-left: 20px;
        padding-top:30px;
        /*保证在调整内边距的时候盒子大小不会变*/
        box-sizing: border-box;
    }

Css3入门详解
padding属性值总结

Css3入门详解
padding值的应用
<style>
    .nav {
        border-top: 3px solid #ff8500;
        border-bottom: 1px solid #edeef0;
        height: 41px;
        background: #fcfcfc;
    }
    .nav a{
        display: inline-block;
        height: 41px;
        color: #4c4c4c;
        /*上下距离为0,左右为20*/
        padding: 0 20px;
        text-decoration: none;
        text-align: center;
        line-height: 41px;

    }
    .nav a:hover{
        background: #fcfcfc;
        color: #ff8500;
    }
  </style>

Css3入门详解

外边距

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>&#x5916;&#x8FB9;&#x8DDD;</title>
  <style>
    div{
      width: 200px;
      height: 200px;
      background: #ff8500;
    }
    /*.one{*/
    /*  margin-bottom: 10px;*/
    /*}*/
    /*上下两种写法实现的作用是一样的*/
    .two{
      margin-top: 10px;
    }
  </style>
</head>
<body>
<!--使得两个div之间有一些空隙-->
<div class="one">1</div>
<div class="two">2</div>
</body>
</html>

Css3入门详解

Css3入门详解
外边距让盒子居中

Css3入门详解

点击查看代码

<style>
    div{
      width: 200px;
      height: 200px;
      background: #ff8500;
      margin: 0 auto;
    }
  </style>

Css3入门详解
外边距塌陷

Css3入门详解

点击查看代码

<style>
    .father{
      width: 200px;
      height: 200px;
      background: #ff8500;
      margin: 50px 0px;
      /*解决塌陷的方法*/
      /*法一:transparent边框是透明的*/
      /*border:1px solid transparent;*/
      /*法二*/
      /*padding: 1px;*/
      /*法三*/
      overflow: hidden;
    }
    .son{
      width: 100px;
      height: 100px;
      background: deepskyblue;
      margin: 60px 0px;
    }
  </style>

Css3入门详解

4.圆角边框

Css3入门详解

Css3入门详解

5.盒子阴影

Css3入门详解

6.文字阴影

Css3入门详解
效果图

Css3入门详解

五、浮动

1.float

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="father">

    <div class="layer04">fasdfsdfsdfffudong&#x53D1;of&#x5F88;&#x8D39;&#x65F6;&#x95F4;</div>
</div>
</body>
</html>

Css代码 点击查看代码

div{
    margin: 10px;
    padding:5px;
}
#father{
    border: 1px #000 solid;
}
.layer01{
    border:1px #00f dashed;
    /*&#x65E2;&#x662F;&#x884C;&#x5143;&#x7D20;&#x4E5F;&#x662F;&#x5757;&#x5143;&#x7D20;*/
    display: inline-block;
}
.layer02{
    border:1px #2b9e2d dashed;
    /*&#x65E2;&#x662F;&#x884C;&#x5143;&#x7D20;&#x4E5F;&#x662F;&#x5757;&#x5143;&#x7D20;*/
    display: inline-block;
}
.layer03{
    border:1px #7916d0 dashed;
    /*&#x65E2;&#x662F;&#x884C;&#x5143;&#x7D20;&#x4E5F;&#x662F;&#x5757;&#x5143;&#x7D20;*/
    display: inline-block;
    float: left;/*&#x7D27;&#x8D34;&#x8FB9;&#x6846;&#x5DE6;&#x4FA7;*/
}
.layer04{
    border:1px #7916d0 dashed;
    /*&#x65E2;&#x662F;&#x884C;&#x5143;&#x7D20;&#x4E5F;&#x662F;&#x5757;&#x5143;&#x7D20;*/
    font-size: 12px;
    line-height: 23px;
    display: inline-block;
    float:right;/*&#x7D27;&#x8D34;&#x8FB9;&#x6846;&#x53F3;&#x4FA7;*/
}

运行结果图

Css3入门详解
由上图知当第一张图片浮动起来之后就越过了边框的长度
父级边框塌陷的解决方法:
①增加父级元素的高度
缺点:代码中避免使用div

Css3入门详解

②增加一个空的div标签来清除浮动
缺点:元素假设有了固定的高度,就会被限制

Css3入门详解
③在父级元素中增加一个overflow
缺点:下拉的一些场景避免使用

Css3入门详解
④父类中添加一个伪类:after
优点:推荐使用

Css3入门详解

2.浮动的特性

1.脱标

设置了浮动 ( float )的元素最重要特性 : 1.脱离标准普通流的控制(浮) 移动到指定位置(动),( 俗称脱标) 2.浮动的盒子不再保留原先的位置如下图,如果只给粉色的盒子加了浮动,那么原来处于粉色盒子下方的标准流的盒子,就会占用粉色盒子原来的位置

Css3入门详解

2.排列方式

如果多个盒子都设置了浮动,则它们会按照离性值一行内显示并且顶端对齐排列.

Css3入门详解

3.具有行内块元素

如果行内元素有了浮动,这不需要转化为块内元素就可以直接给高度和宽度

任何元系都可以浮动。不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性.

如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定

浮动的盒子中间是没有缝隙的,是紧挨着一起的

行内元素同理

3.浮动元素经常搭配标准流的父元素

为了约束浮动元素位置我们网页布局一般采取的策略是:先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置,符合网页布局第一准侧

可以使用标准流的元素来约束浮动元素,比如有两个浮动的div,为了不让他以浏览器为准进行浮动,可以将这两个div,放进一个标准流的div中,这样就可以让浮动的div在标准流的div内部进行浮动,从而限制他们浮动的范围

Css3入门详解

练习1

目标浮动样式

Css3入门详解

点击查看代码

<style>
    .box{
      width: 1230px;
      height: 460px;
      background: deepskyblue;
      margin: 0 auto;
    }
    .left,.right{
      float: left;
    }
    .left{
      width: 240px;
      height: 460px;
      background: pink;
    }
    .right{
      width: 990px;
      height: 460px;
      background: #ff8500;
    }
  </style>

<body>
  <div class="box">
    <div class="left">&#x5DE6;&#x4FA7;</div>
    <div class="right">&#x53F3;&#x4FA7;</div>
  </div>
</body>

结果样式:

Css3入门详解

练习2

目标样式

Css3入门详解

点击查看代码

<style>
        /*清除ul li的默认内外边距*/
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 1960px;
            height: 600px;
            background: deepskyblue;
            margin: 0 auto;
        }
        .box li{
            width: 468px;
            height: 600px;
            background: pink;
            float: left;
            list-style: none;
            margin-right: 29px;
        }
/*这里要注意权重的问题,如果只写.last则不会生效*/
        .box .last{
            margin-right: 0px;
        }
    </style>
<body>
    <ul class="box">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li class="last">4</li>
    </ul>
</body>

结果样式:

Css3入门详解

4. 清除浮动

为什么需要清除浮动 ?

由于父级盒子很多情况下,不方便给高度(就是想让他有多少子盒子,父盒子的高度就为多少,但是如果有浮动的话,浮动的盒子又不会占用父盒子的高度,会导致后面的盒子出现问题),但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响下面的标准流盒子。

1.清除浮动的本质

清除浮动的本质是清除浮动元素造成的影响

如果父盒子本身有高度,则不需要清除浮动

清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

Css3入门详解

由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响

2.清除浮动的方法

(1)添加额外的标签

点击查看代码

  <style>
    .box{
      width: 800px;
      margin: 0 auto;
      border: 2px solid blue;
    }
    .damao{
      float: left;
      width: 80px;
      height: 80px;
      background: pink;
    }
    .ermao{
      float: left;
      width: 80px;
      height: 80px;
      background: pink;
    }
    .box .clear{
      clear:both;
    }
    .footer{
      width: 200px;
      height: 200px;
      background: black;
    }
  </style>
<body>

  <div class="box">
    <div class="damao">&#x5927;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <!--在最后一个浮动元素之后额外添加一个元素,额外添加的元素必须是块级元素,而不能是行内元素,否则无法清除浮动-->

  </div>

</body>

Css3入门详解

Css3入门详解
总结:

1.清除浮动本质是?

清除浮动的本质是清除浮动元素脱离标准流造成的影响

2.清除浮动策略是?

闭合浮动,只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子

3.额外标签法?

隔墙法,就是在最后一个浮动的子元素后面添加一个额外标签,添加 清除浮动样式实际工作可能会遇到,但是不常用

(2)父级添加overflow

对于第一种方法里的代码可以通过在父级元素里添加overflow这一行代码

可以给父级添加overflow 属性,将其属性值设置为 hidden、auto或 scroll

子不教父之过,注意是给父元素添加代码

点击查看代码

.box{
      overflow: hidden;
      width: 300px;
      margin: 0 auto;
      border: 2px solid blue;
    }
(3):after伪元素法

:after方式是额外标签法的升级版。也是给父元素添加
优点:没有增加标签,结构更简单

点击查看代码

/*&#x8FD9;&#x91CC;&#x8FD8;&#x6709;&#x5F88;&#x591A;c s s&#x4EE3;&#x7801;&#xFF0C;&#x53C2;&#x89C1;&#x7B2C;&#x4E00;&#x79CD;&#x65B9;&#x6CD5;&#x8FD9;&#x91CC;&#x53EA;&#x5199;&#x4E86;&#x4FEE;&#x6539;&#x540E;&#x7684;*/
.clerfix:after{
      content:"";
      display:block;
      height: 0;
      clear:both;
      visibility: hidden;
    }
    .clerfix{
      *zoom:1;
    }
<body>

  <div class="box clerfix">
    <div class="damao">&#x5927;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <div class="ermao">&#x4E8C;&#x6BDB;</div>
    <!--额外添加的元素必须是块级元素,而不能是行内元素,否则无法清除浮动-->
<!--    <div class="clear"></div>-->
  </div>

</body>
(4)双伪元素清除浮动

也是给父元素添加 点击查看代码

/*&#x53CC;&#x4F2A;&#x7C7B;*/
    .clerfix:before,
    .clerfix:after {
      content: "";
      display: table;
    }
    .clerfix:after{
      clear: both;
    }
    .clerfix{
      *zoom:1;
    }

3.清除浮动总结

Css3入门详解

PS 切图

最简单的切图方式: 石击图层 >快速导出为 PNG.

但是很多情况下,我们需要合并图层再导出:

1.选中需要的图层: 图层菜单 > 合并图层(ctrl+e)

2.右击 >快速导出为 PNG

利用切片工具导出图片
文件菜单->导出 ->存储为 web 设备所用格式->选择我们要的图片格式->存储
存储的过程中要注意选择选中的切片

六、定位

1.浮动可以让多个块级盒子一行没有缝隙排列显示,经常用于横向排列盒子 2.定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子。

定位的组成

定位:将盒子定在某一个位置,所以定位也是在摆放盒子按照定位的方式移动盒子

定位 = 定位模式 + 边偏移。

定位模式用于指定一个元素在文档中的定位方式。边偏移则决定了该元素的最终位置.

Css3入门详解

1.相对定位

相对定位是元素在移动位置的时候,是相对于它原来的位置来说的 语法:

&#x9009;&#x62E9;&#x5668;:{position:relative}

相对定位的特点:(务必记住)
1.它是相对于自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置)
2.原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它。( 不脱标,继续保留原来位置 )

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            /*外边距*/
            margin: 10px;
            /*内边距*/
            padding: 5px;
            font-size: 12px;
            line-height: 25px;
        }
        #father{
            border: 1px solid #d712e5;
        }
        #first{
            background: tan;
            border: 1px solid #b87f0d;
            /*相对定位,开启后就可以对该块进行移动
            相对于自己原来的位置进行偏移
            */
            position: relative;
            /*从当前位置距离上面-22,也就是向上移动*/
            top: -22px;
            /*从当前位置距离左边20,也就是向右移动*/
            left: 20px;
        }
        #second{
            background: #14af28;
            border: 1px solid #10c1c1;
        }
        #third{
            background: #084c9e;
            border: 1px solid #1d27b1;
            position: relative;
            /*以当前位置为基准距离下方-10,也就是向下移动*/
            bottom: -10px;
            /*以当前位置为基准距离右边20,也就是向做移动*/
            right: -20px;
        }
    </style>
</head>

<body>
<div id="father">
    <div id="first">&#x7B2C;&#x4E00;&#x4E2A;&#x76D2;&#x5B50;</div>
    <div id="second">&#x7B2C;&#x4E8C;&#x4E2A;&#x76D2;&#x5B50;</div>
    <div id="third">&#x7B2C;&#x4E09;&#x4E2A;&#x76D2;&#x5B50;</div>
</div>

</body>
</html>

运行结果图

Css3入门详解
小练习见下图

Css3入门详解
平移之前的状态

Css3入门详解

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    #box{
      border: 1px solid red;
      width: 300px;
      height: 300px;
      padding: 10px;
    }
    a{
      display: block;
      width: 100px;
      height: 100px;
      background: pink;
      text-decoration: none;
      line-height: 100px;
      text-align: center;
      color: white;
    }
    a:hover{
      background: #8d8dc6;
    }
    .a2,.a4{
      position: relative;
      left: 200px;
      top: -100px;
    }
    .a5{
      position: relative;
      top: -300px;
      right: -100px;
    }
  </style>
</head>
<body>
<div id="box">
  <a href="#" class="a1">&#x94FE;&#x63A5;1</a>
  <a href="#" class="a2">&#x94FE;&#x63A5;2</a>
  <a href="#" class="a3">&#x94FE;&#x63A5;3</a>
  <a href="#" class="a4">&#x94FE;&#x63A5;4</a>
  <a href="#" class="a5">&#x94FE;&#x63A5;5</a>
</div>
</body>
</html>

运行结果图

Css3入门详解

2.绝对定位

①在没有父级元素定位的前提下,相对于浏览器定位 ②假设父级元素存在定位,我们通常会相对于父级元素进行偏移

Css3入门详解
③在父级范围内移动,相对于父级或浏览器的位置,进行指定的偏移,绝对定位后,它不在标准的文档流中,原来的位置不会被保留

如果一个元素有子元素,则子元素使用绝对定位(以便可以在父元素内自由摆放,并且不占有原来的位置),而父元素使用相对定位(为了占有原来的位置)

3.固定定位

固定定位的特点:(务必记住)

1.以浏览器的可视窗口为参照点移动元素

跟父元系没有任何关系

不随滚动条滚动

2.固定定位不在占有原先的位置

固定定位也是脱标的,其实固定定位也可以看做是一种特殊的绝对定位.

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            height: 2000px;
        }
        div:nth-of-type(1){/*绝对定位:相对于浏览器*/
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
            left: 0;
            bottom: 0;
        }
        div:nth-of-type(2){/*fixted,固定定位*/
            width: 50px;
            height: 50px;
            background: blue;
            position: fixed;
            left: 0;
            bottom: 300px;
        }
    </style>
</head>
<body>
<div>div1</div>
<div>div2</div>
</body>
</html>

运行结果图

Css3入门详解

4.z-index

Css3入门详解
在使用定位布局时,可能会出现盒子重叠的情况,此时,可以使用z-index来控制盒子的前后次序(z轴)

语法:

&#x9009;&#x62E9;&#x5668;{z-index:1;}

数值可以是正整数、负整教或0,默认是 auto,数值越大,盒了越靠上

如果属性值相同,则按照书写顺序,后来居上

数字后面不能加单位

只有定位的盒子才有z-index属性

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #content{
            padding: 0px;
            margin: 0px;
            width: 300px;
            height: 300px;
            border: red solid 1px;
            overflow: hidden;
            line-height: 25px;
            font-size: 12px;
        }
        /*父级元素相对定位*/
        #content ul{
            position: relative;
        }
        ul,li{
            margin: 0px;
            /*无序列表的黑点是存放在内边距中的,一旦padding设为零,可能会直接去掉黑点*/
            padding: 0px;
            /*手动去掉黑点的方法*/
            list-style: none;
        }
        .tipText,.tipBg{
            position: absolute;
            width: 300px;
            height: 25px;
            top: 275px;
        }
        .tipText{
            color: white;
            /*设置层级,层级越大,显示在最外层*/
            z-index: 0;
        }
        .tipBg{
            background: black;
            /*设置透明度*/
            /*opacity: 0.5;*/
        }
    </style>
</head>
<body>
<div id="content">
    <ul>

        <li class="tipText">&#x65B0;&#x624B;&#x5B66;&#x4E60;Java&#xFF0C;&#x770B;TWQ&#x7684;&#x535A;&#x5BA2;&#xFF0C;&#x7B80;&#x5355;&#x6613;&#x61C2;</li>

        <li>&#x65F6;&#x95F4;&#xFF1A;2099-01-01</li>
        <li>&#x5730;&#x70B9;&#xFF1A;&#x6708;&#x7403;&#x4E00;&#x53F7;&#x57FA;&#x5730;</li>
    </ul>
</div>
</body>
</html>

运行结果图

Css3入门详解

5.粘性定位

粘性定位的特点 1.以浏览器的可视窗口为参照点移动元系(固定定定位特点)

2.粘性定位占有原先的位置(相对定位特点)

3.必须添加top、left、right、bottom其中一个才有效兼容性较差,正不支持。跟页面滚动搭配使用。

如下图所示当一个盒子碰到浏览器顶部之后就开始不再滑动

Css3入门详解

6.定位的拓展

1.绝对定位的盒子居中

加了绝对定位的盒子不能通过 margin:0auto 水平居中,但是可以通过以下计算方法实现水平和垂直居中。

加了绝对定位的盒子不能通过 margin:0auto 水平居中,但是可以通过以下计算方法实现水平和垂直居中。

1⃣️ left: 50%;: 让盒子的左侧移动到父级元素的水平中心位置

2⃣️margin-left;-100px;: 让盒子向左移动自身宽度的一半

2.定位的特殊特性

绝对定位和固定定位也和浮动类似

1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度.

2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。

3.脱标的盒子不会出发外边距塌陷

浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题

4.绝对定位会完全压住盒子

浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片)

但是绝对定位( 固定定位)会压住下面标准流所有的内容。

浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。文字会围绕浮动元素

七、元素的显示与隐藏

类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现!

本质:让一个元素在页面中隐藏或者显示出来。

1.display属性

display属性用于设置一个元素应如何显示

display:none ;隐藏对象

display: block;除了转换为块级元素之外,同时还有显示元素的意思

display 隐藏元素后,不再占有原来的位置

后面应用及其广泛,搭配JS 可以做很多的网页特效

2.visibility

visibility 属性用于指定一个元素应可见还是隐藏

visibility : visible;元素可视

visibility : hidden; 元素隐藏

visibility 隐藏元素后,继续占有原来的位置.

3.overflow

overflow 属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度)时,会发生什么。

Css3入门详解
一般情况下,我们都不想让溢出的内容显示出来,因为溢出的部分会影响布局

但是如果有定位的盒子,请慎用overflow:hidden 因为它会隐藏多余的部分(有时有些定位会故意多处一部分,如果写了,这部分也会隐藏)

八、精灵图

一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度.

因此,为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,出现了CSS 精灵技术(也称CSS Sprites、CSS 雪碧)。

核心原理:将网页中的一些小背景图像整合到一张大图中,这样服务器只需要一次请求就可以了.

精灵技术目的:

为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度

九、字体图标

推荐下载字体图标的网站:
https://icomoon.io/app/#/select

上述网站所有图标就相当于各种字体,可以在css中设置大小,颜色等属性 使用方法

Css3入门详解

Css3入门详解

Css3入门详解
以下为固定代码可以将其复制到css中,这段代码可以在下载的icomoon文件的style.css中找到
@font-face {
  font-family: 'icomoon';
  src:  url('fonts/icomoon.eot?gvuhdh');
  src:  url('fonts/icomoon.eot?gvuhdh#iefix') format('embedded-opentype'),
    url('fonts/icomoon.ttf?gvuhdh') format('truetype'),
    url('fonts/icomoon.woff?gvuhdh') format('woff'),
    url('fonts/icomoon.svg?gvuhdh#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

打开icomoon文件里的demo.html文件

Css3入门详解
想要哪个图标就将哪个图标后面的东西选中并复制,(window电脑后面有显示,不知道苹果为啥不显示,但是能选中,不过也不影响)

Css3入门详解

点击查看代码

<style>
    /*字体声明*/
    @font-face {
      font-family: 'icomoon';/*这里icomoon可以换成其他的值,但是要注意后面在用的时候也要换成对应的值*/
      src:  url('fonts/icomoon.eot?gvuhdh');
      src:  url('fonts/icomoon.eot?gvuhdh#iefix') format('embedded-opentype'),
      url('fonts/icomoon.ttf?gvuhdh') format('truetype'),
      url('fonts/icomoon.woff?gvuhdh') format('woff'),
      url('fonts/icomoon.svg?gvuhdh#icomoon') format('svg');
      font-weight: normal;
      font-style: normal;
      font-display: block;
    }
    span{
        font-family: 'icomoon';
        font-size: 30px;
        color: red;
    }
  </style>

<body>
  <span>&#xE901;</span>
</body>

Css3入门详解
运行结果

Css3入门详解

十一、三角形

点击查看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    .box{
      width: 0;
      height: 0;
      border: 50px solid transparent;
      border-left-color: #ff8500;
    }
  </style>
</head>
<body>

</body>
</html>

三角形的大小通过border的值来调节

Css3入门详解

十二、用户界面样式

1.鼠标样式

li {cursor:pointer;}

设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标的形状。

Css3入门详解

2.轮廓线outline

给表单添加 outline:0;或者 outline:none; 样式之后,就可以去掉默认的蓝色边框(就是一般点击表单之后就会出现默认的蓝色边框).

input {outline: none; }

3.防止拖拽文本域

texxtarea {resize : none;}

4.行内块和文字垂直居中对齐

CSS 的 vertical-align属性使用场景: 经常用于设置图片或者表单(行内块元素)和文字垂直对齐。

官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效

vertical-align:baseline | top | middle | bottom

Css3入门详解

1.解决图片底部默认空白缝隙问题

bug : 当给图片添加一个边框之后,图片底侧与边框之间会有一个空白缝隙,原因是行内块元素会和文字的基线对齐

主要解决方法有两种

1.给图片添加vertical-align:middle l top l bottom等。 (提倡使用的 )

2.把图片转换为块级元素 display:block;

5溢出的文字省略号显示

1.单行文本溢出显示省略号

必须满足三个条件

/*1.&#x5148;&#x5F3A;&#x5236;&#x4E00;&#x884C;&#x5185;&#x663E;&#x793A;&#x6587;&#x672C;*/
white space: nowrap;/*(&#x9ED8;&#x8BA4; norma1 &#x81EA;&#x52A8;&#x6362;&#x884C;*/
/*2.&#x8D85;&#x51FA;&#x7684;&#x90E8;&#x5206;&#x9690;&#x85CF;*/
overflow: hidden;
/*3.&#x6587;&#x5B57;&#x6EA2;&#x51FA;&#x7684;&#x65F6;&#x5019;&#x7528;&#x7701;&#x7565;&#x53F7;&#x66FF;&#x4EE3;*/
text-overflow: ellipsis;

2.多行文本溢出显示省略号

多行文本溢出显示省略号,有较大兼容性问题,适合于webKit浏览器或移动端(移动端大部分是webkit内核)

overflow: hidden;
text-overflow: ellipsis;
/*&#x5F39;&#x6027;&#x4F38;&#x7F29;&#x76D2;&#x5B50;&#x6A21;&#x578B;&#x663E;&#x793A;*/
display: -webkit box;
/*&#x9650;&#x5236;&#x5728;&#x4E00;&#x4E2A;&#x5757;&#x5143;&#x7D20;&#x663E;&#x793A;&#x7684;&#x6587;&#x672C;&#x7684;&#x884C;&#x6570;,&#x8D85;&#x51FA;&#x7684;&#x90E8;&#x5206;&#x5728;&#x7B2C;&#x4E8C;&#x884C;&#x663E;&#x793A;&#x7701;&#x7565;&#x53F7; */
webkit-line-clamp: 2
/*&#x8BBE;&#x7F6E;&#x6216;&#x68C0;&#x7D22;&#x4F38;&#x7F29;&#x76D2;&#x5BF9;&#x8C61;&#x7684;&#x5B50;&#x5143;&#x7D20;&#x7684;&#x6392;&#x5217;&#x65B9;&#x5F0F;*/
webkit-box-orient: vertical;

十三、常见布局技巧

1.margin负值的巧妙运用

当所有盒子靠左浮动之后,如果盒子有边框,则会出现边框重叠导致边框线变粗,以下是解决方法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    ul li{
      float:left;
      list-style: none;
      width: 150px;
      height: 200px;
      border: 1px solid red;
      /*这里不要以为每个盒子都向左移动1px,而导致没起效果
      事实上,是每个lī  标签先后执行,当第一个li向左移动1px,之后
      第二个li是先浮动到第一个li的右侧,浮动是会紧贴没有空隙,所以第二li向左移动1px之后就会压住第一个li
      */
      margin-left: -1px;
    }
  </style>
</head>
<body>
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
  </ul>
</body>
</html>

运行结果

Css3入门详解
以上方法会带来另外一个问题,就是现在如果有一种需求是当鼠标经过某一个盒子的时候外边框变成另外一种颜色,这时候由于上述解法后面的盒子向左移动压住了前面的盒子导致前面的盒子部分边框无法显示。如下图所示

Css3入门详解
解决方法如下:

鼠标经过某个盒子的时候,提高当前盒子的层级即可(如果没有有定位,则加相对定位(保留位置),如果有定位,则加z-index)

法一:没有定位的时候

ul li:hover{
      position: relative;
      border: 1px solid blue;
}

法二:都有定位的时候,用z-index提高层级

<style>
    ul li{
      position: relative;
      float:left;
      list-style: none;
      width: 150px;
      height: 200px;
      border: 1px solid red;
      margin-left: -1px;
    }
    ul li:hover{
      /*position: relative;*/
      z-index: 1;
      border: 1px solid blue;
    }
  </style>

效果图:

Css3入门详解

Original: https://www.cnblogs.com/twq46/p/16461546.html
Author: 剑断青丝ii
Title: Css3入门详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620027/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 重新学习数据库(1)

    单元概述 通过本章的学习能够了解MySQL结构查询语言的概念,掌握SELECT查询语句的基本语法,掌握SELECT查询语句中过滤条件的使用,掌握过滤条件中比较运算符和逻辑运算符的使…

    数据库 2023年5月24日
    060
  • 【黄啊码】这种PHP验证码你值得拥有(注:支持中文)

    csharp;gutter:true; width = $width; $this->height = $height; $this->codeNum = $codeN…

    数据库 2023年6月16日
    084
  • Java基础六—Java集合框架Map

    HashMap HashMap使用hash数组+单链表实现,数组中的每个元素都是链表,由Node内部类实现,当链表长度超过8时,转化为红黑树。 HashMap实现了Map接口,即允…

    数据库 2023年6月6日
    068
  • Dev-tools使用遇到的小问题

    Dev-tools使用遇到的小问题 间隔长时间后重新打开某网页,提示Failed to load data:No resource with given identifier fo…

    数据库 2023年6月6日
    074
  • Redis安装

    Redis For Windows 安装 Redis 官方只提供源码包,不支持Windows 老版本 Windows 版本下载地址(最高版本为3)老版本地址 新版本 Windows…

    数据库 2023年6月6日
    081
  • 代码随想录-数组篇

    上次刷没刷完整,和李哥做字节的题感觉先前刷的题白刷了,故打算从头到尾完整走一遍。 二分法 1-1.二分查找 力扣题目链接 给定一个 n 个元素有序的(升序)整型数组 nums 和一…

    数据库 2023年6月14日
    099
  • MySQL学习(3)—MySQL常用命令

    ps:此随笔基于mysql 5.7.*版本。 准备 net start mysql 启动MySQL服务 net stop mysql 关闭MySQL服务 mysql [-h exi…

    数据库 2023年6月14日
    064
  • mysqldump 在 StoneDB 中的使用注意事项

    此场景是利用mysqldump从InnoDB导出,然后再导入StoneDB,在导入StoneDB前,需要对导出文件做如下修改。1)修改存储引擎 CREATE TABLE t_use…

    数据库 2023年5月24日
    090
  • Redis-缓存雪崩,击穿,穿透

    小结 布隆过滤器 工作原理:布隆过滤器是一个由初值为0的长度为L的bit数组和N个哈希函数组成。当有向数据库写入操作时,对键进行N次哈希值计算,并对计算后的值取L的模,对数组相应位…

    数据库 2023年6月11日
    054
  • Tomcat总体架构(一)

    目录 一、Server 二、Connector 和 Container(实际为Engine) 三、Context 四、Host 五、Wrapper 六、Container(真正的C…

    数据库 2023年6月11日
    083
  • 学习笔记——Django项目中的请求

    2022-10-03 url中的位置参数 位置参数存放的位置 是子应用中的自定义的”urls.py”文件中的路由中。 位置参数的设置: 如果位置参数很多,那…

    数据库 2023年6月14日
    049
  • MySQL – 日志

    WAL机制 Write-Ahead Logging,预写日志系统即当有数据更新请求的时候,先写日志,再改内存,等”有空”的时候再落磁盘(刷脏页)。WAL机制…

    数据库 2023年5月24日
    077
  • Python 垃圾回收总结

    前言 最近在阅读《垃圾回收的算法与实现》,里面将讲到了一些常用的垃圾回收(Garbage Collect)算法,如:标记-清除、引用计数、分代回收等等。后面讲到了 Python 的…

    数据库 2023年6月6日
    093
  • 解决.net6 Docker容器 DateTime.Now 获取时间相差8小时问题(转载)

    .net6项目中使用DateTime.Now获取到的时间比本地时间要差8小时,但是docker容器中,使用date获取的时间是正确的,网上提供了很多种方法,主要有以下三种方法,其中…

    数据库 2023年6月9日
    0131
  • Typora 开始收费,改用好玩的MarkText

    收费…… 可以考虑使用: MarkText 简述MarkText MarkText 这个工具侧重于”命令”,导航栏都被收起来了。有些…

    数据库 2023年6月6日
    0111
  • MySQL实战45讲 15

    15 | 答疑文章(一):日志和索引相关问题 日志相关 binlog(归档日志)和redo log(重做日志)配合崩溃恢复,在两阶段提交的不同瞬间,MySQL如果发生异常重启,是怎…

    数据库 2023年6月16日
    0128
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球