前端---CSS篇(详解CSS)

1.CSS简介

CSS(Cascading Style Sheets)层叠样式表,是用来为结构化文档(HTML、XML等应用)添加样式,比如字体、颜色、大小、间距的计算机语言。CSS目前已经发展到了CSS3.0了。

2.CSS导入方式

CSS有三种导入方式:

1.行内样式:直接在标签元素中编写style属性,在其中编写样式即可:

      <p style="color: paleturquoise">你好,这是CSS</p>

2.内部样式:在头部head标签中,我们写上<style>标签,然后就可以在其中写入CSS样式了:

      <style>
        p{
          color: paleturquoise;
          font-size: 20px;
        }
      </style>

3.外部样式:外部样式就是新建一个.css文件,在其中编写css样式然后引入html文件之中,引入方式有两种:

连接式:

<link type="text/css" rel="stylesheet" href="first.css">

导入式:

<style>
    @import url("first.css");
</style>

3.选择器

可以选择页面中的某一个或者某一类元素,然后设置它们的样式:

3.1. 基本选择器

1.标签选择器:选择一类标签:标签{xxx样式},比如:

/*标签选择器*/
h1{
    color: pink;
    background-color: #eeeeee;
    font-family: 楷体;
}
p{
    color: pink;
    background-color: #eeeeee;
    font-family: 楷体;
}

2.类选择器:可以选择class一致的标签,在class名前面加上一个小点 .className {xxx样式}

/*类选择器*/
.font1{
    color: pink;
    background-color: #eeeeee;
    font-family: 楷体;
}
.font2{
    color: pink;
    background-color: #eeeeee;
    font-family: 楷体;
}

3.Id选择器:这是全局唯一的样式,指定某个id,设置样式,在id名字前加上井号,如:#idName{xxx样式}

/*Id选择器*/
#demo1{
    color: pink;
    background-color: #eeeeee;
    font-family: 楷体;
}
#demo2{
    color: pink;
    background-color: #eeeeee;
    font-family: 楷体;
}

优先级对比:

前面三个的优先级对比:id > class > 标签

3.2.层次选择器:

1.后代选择器:选中某个元素内的元素

/*后代选择器*/
body p{
    background-color: pink;
}

2.子选择器:只选择一代

/*后代选择器*/
body>p{
    background-color: pink;
}

3. 同辈选择器:选择相邻的兄弟选择器

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .d1+.d2{
                background-color: #aaaaaa;
            }
        </style>
    </head>
    <body>
        <div class="d1">你好</div>
        <div class="d2">hello</div>
    </body>
</html>

4.通用选择器:选择这个元素向下的所有同辈元素

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .d1~div{
                background-color: #aaaaaa;
            }
        </style>
    </head>
    <body>
        <div class="d1">你好</div>
        <div class="d2">hello</div>
        <div class="d3">oook</div>
    </body>
</html>

3.3. 结构伪类选择器

(上图引用至:CSS结构伪类选择器-CSDN博客)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--避免使用,class,id选择器-->
    <style>
      /*ul的第一个子元素*/
      ul li:first-child{
        background: firebrick;
      }
      /*ul的最后一个子元素*/
      ul li:last-child{
        background: darkcyan;
      }

      /*选中p1:定位到父元素,选择当前的第一个元素
      选择当前p元素的父级元素,选中父级元素的第一个子元素为p的
      按顺序
      */
      p:nth-child(2){
        background: salmon;
      }

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

      p:nth-child(3){
        background-color: whitesmoke;
      }

      a:hover{
        background: violet;
      }
    </style>
  </head>
  <body>
    <!--<h1>h1</h1>-->
    <p>p1</p>
    <p>p2</p>
    <p>p3</p>
    <ul>
      <li>li1</li>
      <li>li2</li>
      <li>li3</li>
    </ul>

    <a href="">链接标签</a>
  </body>
</html>

4.CSS样式

css能够设计出多种多样的样式,现在我们详细的介绍这些样式。

4.1. 背景:

CSS可以定义的背景效果:

  • background-color  背景颜色。
  • background-image  背景图片。
  • background-repeat  背景图像是否重复。
  • background-attachment  背景图像是否固定或者随着页面的其余部分滚动。
  • background-position  设置背景图像的起始位置。
  • background   属性简写,包含上面的几种写法。
.div1    {
    width: 600px;
    height: 208px;
    background-image: url("../20231115/button.png");
    background-repeat: no-repeat;
    background-size: cover;
}
4.2. 文本

文本的属性:

属性描述
color设置文字颜色
direction文本方向
letter-spacing字符间距
line-height行高
text-align对齐方式
text-decoration设置划线的位置
text-indent缩进
text-shadow设置文本阴影
text-transform控制元素中的字母
vertical-align垂直对齐
white-space设置元素中空白的处理方式
word-spacing设置字间距

写个代码试一试:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
      <style>
          p{
              color: rebeccapurple;
              direction: initial;
              letter-spacing: 10px;
              line-height: 20px;
              text-decoration: line-through;
              text-shadow: darkolivegreen;
              word-spacing: 50px;
          }
      </style>
    </head>
    <body>
        <p>hello world</p>
    </body>
</html>
4.3. 字体

CSS提供了多种属性修改字体的样式:

属性描述
font-family文本的字体系列
font-size字体大小
font- style字体样式
font-variant以小型大型显示文本
font-weight字体粗细
4.4. 链接

CSS可以修改连接的状态样式:

  • a:link - 正常,未访问过的链接
  • a:visited - 用户已访问过的链接
  • a:hover - 当用户鼠标放在链接上时
  • a:active - 链接被点击的那一刻
4.5. 显示状态

CSS中可以使用display和visibility来设置元素的显示与隐藏

visibility:hidden:可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

display:none:可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

display中的inline和block分别会把元素设置为内联元素和块元素。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .hidden {
                visibility: hidden;
            }

            .none {
                display: none;
            }
        </style>
    </head>
    <body>
        <p>hello world</p>
        <p class="none">hello world</p>
        <p>hello world</p>
        <p class="hidden">hello world</p>
        <p>hello world</p>
    </body>
</html>

4.6. 定位 Position

CSS定位Position拥有五个值:static、relative、fixed、absolute、sticky

详细介绍见代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定位</title>
    </head>
  <style>
    .sta{      /*静态定位---默认  静态定位的元素不会受到 top, bottom, left, right影响。*/
      position: static;
      border: 2px solid red;
    }
    .fix{ /*固定位置  元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动:*/
      position: fixed;
      top: 30px;
      left: 50px;
    }
    .rel{ /* 相对定位 相对定位元素的定位是相对其正常位置*/
      position: relative;
      left: -30px;
    }
    .abs{ /* 绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>: */
      position: absolute;
      left: 100px;
      top: 100px;
      z-index: -1;
    }
    .sti{ /* 粘性定位 元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。*/
      position: -webkit-sticky;
      width: 300px;
      height: 50px;
      background-color: whitesmoke;
      position: sticky;
      top: 0;
    }
  </style>
    <body>
      <p class="sta">静态定位</p>
      <p class="rel">相对定位</p>
      <p class="fix">页面固定位置</p>
      <p class="abs">绝对位置</p>
      <div class="sti"></div>
      <p>666666666666666666666666</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>
      <p>777777777777777777777777</p>

    </body>
</html>
4.7.布局--Overflow
描述
visible默认值。内容不会被修剪,会呈现在元素框之外。
hidden内容会被修剪,并且其余内容是不可见的。
scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit规定应该从父元素继承 overflow 属性的值。

代码展示了这几种情况:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .all{
                display: flex;
                flex-direction: row;
            }
            #visible {
                background: #4CAF50;
                color: black;
                padding: 15px;
                width: 100px;
                height: 100px;
                overflow: visible;
                border: 1px solid #ccc;
            }

            #hidden{
                background: #4CAF50;
                color: black;
                padding: 15px;
                width: 100px;
                height: 100px;
                overflow: hidden;
                border: 1px solid #ccc;
            }

            #scroll {
                background: #4CAF50;
                color: black;
                padding: 15px;
                width: 100px;
                height: 100px;
                overflow: scroll;
                border: 1px solid #ccc;
            }
            #auto {
                background: #4CAF50;
                color: black;
                padding: 15px;
                width: 100px;
                height: 100px;
                overflow: auto;
                border: 1px solid #ccc;
            }

        </style>
    </head>
    <body>
        <div class="all">
            <div id="visible">
                <p>第一种: visible</p>
                <p>visible</p>
                <p>visible</p>
                <p>visible</p>
                <p>visible</p>
                <p>visible</p>
                <p>visible</p>
                <p>visible</p>
                <p>visible</p>
                <p>visible</p>
            </div>

            <div id="hidden">
                <p>第二种: hidden</p>
                <p>hidden</p>
                <p>hidden</p>
                <p>hidden</p>
                <p>hidden</p>
                <p>hidden</p>
                <p>hidden</p>
                <p>hidden</p>
                <p>hidden</p>
            </div>

            <div id="scroll">
                <p>第三种:scroll</p>
                <p>scroll</p>
                <p>scroll</p>
                <p>scroll</p>
                <p>scroll</p>
                <p>scroll</p>
                <p>scroll</p>
                <p>scroll</p>
                <p>scroll</p>
            </div>

            <div id="auto">
                <p>第四种:auto</p>
                <p>auto</p>
                <p>auto</p>
                <p>auto</p>
                <p>auto</p>
                <p>auto</p>
                <p>auto</p>
                <p>auto</p>
                <p>auto</p>
            </div>
            

        </div>

    </body>
</html>

如图所示,会溢出来。

4.8. 浮动 --- Float
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
      <style>
        .image{
          float: left;
          width: 300px;
          height: 300px;
        }
      </style>
    </head>
    <body>
      <h2>图片库</h2>
      <p>调整串口试一试</p>
      <div>
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
        <img src="dog.jpg" class="image">
      </div>
    </body>
</html>

4.9. 居中方式

手打了一遍代码,详细的介绍了多种方式,也写清注释了。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>居中方式</title>
      <style>
        *{
          margin: 0;
          padding: 0;
        }
        h4{
          margin: 10px 0 10px 0;
        }
        .all{
          width: auto;
          height: 100vh;
          background-color: whitesmoke;
          display: flex;
          flex-direction: row;
          justify-content: space-around;
        }
        .shuiping, .chuizhi, .shuipingcuizhi{
          height: 100%;
          width: 30%;
        }
        .content{
          width: 300px;
          height: 100px;
          background-color: salmon;
          border: 1px solid black;
        }
        .item{
          background-color: #4CAF50;
          width: 100px;
          height: 100px;
        }
        /*    ===============1===============*/
        /* 使用 margin:auto 实现居中 */
        .margin-center{
          margin: auto;
        }
        /*    ===============2===============  */
        .content2{
          text-align: center;
        /* 这里的text-align:center子元素会继承该属性 */
        /* 我们的目的是将元素居中而不是文本居中 */
        }
        .block-center{
          display: inline-block;
        }
        /*    ================3================  */
        .content3{
          position: relative;
        }
        .absolute-center{
          position: absolute;
          left: 50%;
          transform: translateX(-50%);
        }

      /*   ==================4===================   */
        .content4{
          display: flex;
          justify-content: center;
        }

      /*  ======================垂直居中=======================*/
        .Ccontent{
          width: 300px;
          height: 100px;
          background-color: olive;
          border: 1px solid black;
        }
        .item2{
          width: 300px;
          height: 30px;
          background-color: gold;
        }
        /*    ========== 1 =========*/
        .Ccontent1{
          display: table-cell;
          vertical-align: middle;
        }

      /*  =============2=================*/
        .Ccontent2{
          line-height: 100px;
        }
        .vertical-center{
          display: inline-block;
          vertical-align: middle;
        }

      /*  ==========3===================*/
        .Ccontent3{
          display: flex;
          align-items: center;
        }

      /*  =========4================= */
        .Ccontent4{
          position: relative;
        }
        .abs-center{
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
        }

      /*  ==============================水平垂直居中====================*/
        .SCcontent{
          background-color: paleturquoise;
          width: 100px;
          height: 100px;
        }
        .item3{
          background-color: lightgoldenrodyellow;
          width: 50px;
          height: 50px;
        }

      /*  ===================1 =================*/
        .SCcontent1{
          position: relative;
        }
        .abso-center{
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50% , -50%);
        }
      /*  ====================2==================*/
       .SCcontent2{
         display: flex;
         justify-content: center;
         align-items: center;
       }
      /*================ 3 ========================*/
        .SCcontent3{
          text-align: center;
          line-height: 100px;
        }
        .SCitem3{
          display: inline-block;
          vertical-align: middle;
        }
      /*  ===================== 4 =========================*/
        .SCcontent4{
          display: table-cell;
          text-align: center;
          vertical-align: middle;
        }
        .SCitem4{
          display: inline-block;
        }


      </style>
    </head>
    <body>
      <div class="all">
        <div class="shuiping">
          <h3>水平居中方式:</h3>
          <h4>第一种方式: margin:auto</h4>
          <div class="content">
            <div class="margin-center item"></div>
          </div>

          <h4>第二种方式: 使用inline-block 和 text-align实现 </h4>

          <div class="content content2">
            <div class="item block-center"></div>
          </div>

          <h4>第三种方式: 使用绝对定位 实现 </h4>

          <div class="content content3">
            <div class="item absolute-center"></div>
          </div>

          <h4>第四种方式: 使用flex布局 实现 </h4>

          <div class="content content4">
            <div class="item"></div>
          </div>
        </div>
        <div class="chuizhi">
          <h3>垂直居中方式:</h3>
          <h4>第一种方式:使用display:table-cell来实现</h4>
          <div class="Ccontent Ccontent1">
            <div class="item2"></div>
          </div>
          <h4>第二种方式:使用line-height、 inline-block 来实现</h4>
          <div class="Ccontent Ccontent2">
            <div class="item2 vertical-center"></div>
          </div>
          <h4>第三种方式:使用flex布局 来实现</h4>
          <div class="Ccontent Ccontent3">
            <div class="item2"></div>
          </div>

          <h4>第四种方式:使用 绝对定位 来实现</h4>
          <div class="Ccontent Ccontent4">
            <div class="item2 abs-center"></div>
          </div>

        </div>

        <div class="shuipingcuizhi">
          <h3>水平 + 垂直居中方式:</h3>
          <h4>第一种方式:使用absolute绝对定位 来实现</h4>
          <div class="SCcontent SCcontent1 ">
            <div class="item3 abso-center"></div>
          </div>

          <h4>第二种方式:使用flex布局来实现</h4>
          <div class="SCcontent SCcontent2 ">
            <div class="item3"></div>
          </div>

          <h4>第三种方式:用inline-block.text-align和vertical-align来实现</h4>
          <div class="SCcontent SCcontent3 ">
            <div class="item3 SCitem3"></div>
          </div>

          <h4>第四种方式:table-cell+display: inline-block来实现</h4>
          <div class="SCcontent SCcontent4 ">
            <div class="item3 SCitem4"></div>
          </div>

        </div>
      </div>


    </body>
</html>

4.10.提示框

实现一个提示框,练练手

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
  <style>
    .main{
      position: relative;
      display: inline-block;
    }
    .main:hover .jian{
      visibility: visible;
    }
    .jian{
      color: white;
      text-align: center;

      visibility: hidden;
      top: -5px;
      left: 120%;
      padding-top: 5px;
      background-color: black;
      border-radius: 6px;
      width: 200px;
      height: 30px;
      position: absolute;
    }
    .jian::after{
      position: absolute;
      content: "";
      top: 50%;
      right: 100%;
      transform: translateY(-50%);
      z-index: 1;
      border-width: 5px;
      border-style: solid;
      border-color: transparent black transparent transparent;
    }

  </style>
    <body>
      <h1>提示框</h1>
      <div class="main">
        显示我
        <div class="jian">
          提示框成功了
        </div>
      </div>
    </body>
</html>

5. 盒子模型 Box Model

        我们可以把每一个标签元素看成一个盒子,盒子中包括了边距、边框、填充和实际内容,盒子模型允许在盒子周围的空间放置其他元素。

 6. CSS3

CSS3是CSS的技术新版本,拥有很多新的特性,下面是新的特性介绍:

6.1. CSS3边框

由三个新的边框属性:border-radius、box-shadow、border-image

border-radius:圆角

使用border-radius:10px 就可以轻易实现圆角了,值越大圆角的弧度越大。

box-shadow:阴影:使用它就可以实现阴影效果。

border-image:边界图片

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css3边框</title>
      <style>
        .css3-border{
          /*width: 400px;*/
          /*height: 400px;*/
          /*background-color: #4CAF50;*/
          /*border-radius: 100px;*/
          border: 15px solid transparent;
          border-image: url(border.png) 30 30 stretch;

          /*box-shadow: 10px 10px 30px #4CAF50;*/
        }
      </style>
    </head>
    <body>
      <div class="css3-border" >
        你好
      </div>
    </body>
</html>
6.2. 渐变

CSS3提供了新的渐变属性:linear-gradient

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
      <style>
        .jianBian1{
          width: 300px;
          height: 100px;
          /*上到下*/
          background-image: linear-gradient(to bottom, black , pink);
        }
        .jianBian2{
          width: 300px;
          height: 100px;
          /*从右到左*/
          background-image: linear-gradient(to left, orange , blue);
        }
        .jianBian3{
          width: 300px;
          height: 100px;
          /*对角线*/
          background-image: linear-gradient(to bottom right, blanchedalmond , purple);
        }
        .jianBian4{
          width: 300px;
          height: 100px;
          /* 使用角度 */
          background-image: linear-gradient(-30deg, lawngreen , palegoldenrod);
        }
      </style>
    </head>
    <body>
      <div class="jianBian1">
      </div>

      <div class="jianBian2">
      </div>

      <div class="jianBian3">
      </div>

      <div class="jianBian4">
      </div>

    </body>
</html>
6.3. 文本效果

1.文本阴影:text-shadow

2. 文本溢出属性:text-overflow

3. text-outline

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>文本效果</title>
      <style>
        p{
          width: 200px;
          overflow: hidden;
          white-space: nowrap;
          text-shadow: 10px 10px 5px red;
        }
        .ellipsis{
          /*添加省略号*/
          text-overflow: ellipsis;
        }
        .clip{
          /*直接断开*/
          text-overflow: clip;
        }
      </style>
    </head>

    <body>
      <p class="ellipsis"> 你好,如果超出的话会怎么样呢??? </p>
      <p class="clip"> 你好,如果超出的话会怎么样呢??? </p>

    </body>
</html>
6.4. 过渡

CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。

要实现这一点,必须规定两项内容:

  • 指定要添加效果的CSS属性
  • 指定效果的持续时间。

使用transition: 变化的属性 时间

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>过渡</title>
      <style>
        .transition{
          width: 100px;
          height: 100px;
          background-color: #4CAF50;
          transition: background-color 2s, width 2s, height 2s, transform 2s;
        }
        .transition:hover{
          width: 200px;
          height: 200px;
          background-color: purple;
          transform: rotate(90deg);

        }
      </style>
    </head>
    <body>
      <div class="transition">
        哥们你好
      </div>
    </body>
</html>
6.5.动画

要创建 CSS3 动画,你需要了解 @keyframes 规则。

@keyframes 规则是创建动画。

@keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
      <style>
        .animation{
          width: 100px;
          height: 100px;
          background-color: red;
          position: relative;
          /*动画名称*/
          animation-name: move;
          /*动画运行时间*/
          animation-duration: 5s;
          /*速度曲线*/
          animation-timing-function: linear;
          /*动画何时开始*/
          animation-delay: 2s;
          /*动画运行次数*/
          animation-iteration-count: infinite;
          /*动画再下一个周期是否逆向运行*/
          animation-direction: alternate;
          /*规定是否运行*/
          animation-play-state: running;
        }
        /*设置动画*/
        @keyframes move {
          0% {background-color: red; left: 0px; top: 0px;}
          25% {background-color: yellow; left: 200px; top: 0px;}
          50% {background-color: blue; left: 200px; top: 200px;}
          75% {background-color: green; left: 0px; top: 200px;}
          100% {background-color: red; left: 0px; top: 0px;}
        }
      </style>
    </head>
    <body>
      <div class="animation">

      </div>
    </body>
</html>
6.6. CSS3图片

CSS3对图片样式有了新的属性:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
      <style>
        .yuan{
          /*  圆形图片  */
          width: 100px;
          border: solid black;
          border-radius: 50%;
        }
        /*如果你需要自由缩放图片,且图片放大的尺寸不大于其原始的最大值,则可使用以下代码:*/
        .xiangYing{
          max-width: 100%;
          height: auto;
        }
      /*  卡片式图片*/
        div.polaroid{
          width: 200px;
          background-color: white;
          box-shadow: 0 4px 8px 0 gray, 0 10px 20px 0 lightgray;
          margin-bottom: 25px;
        }
        img.dog:hover{
          opacity: 0.7;
        }
        div.container{
          text-align: center;
          padding: 5px 10px;
        }


      </style>
    </head>
    <body>
      <a href="../20231118/dog.jpg">
        <img src="../20231118/dog.jpg" class="yuan" />
      </a>
      <h1>响应式图片</h1>
      <img src="../20231118/border.png" class="xiangYing">

      <h1>这是响应式卡片</h1>
      <div class="polaroid">
        <img src="../20231118/dog.jpg" alt="Norway" class="dog" style="width:100%;">
        <div class="container">
          <p>The Troll's tongue in Hardanger, Norway</p>
        </div>
      </div>
    </body>
</html>

7. 总结

通过对CSS的学习,我们可以使得html页面变得更加好看了,接下来我们就要开始学习JavaScript来操控页面元素了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/198029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

信测转债上市价格预测

信测转债-123231 基本信息 转债名称&#xff1a;信测转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.45亿元。 正股名称&#xff1a;信测标准&#xff0c;今日收盘价&#xff1a;37.5元&#xff0c;转股价格&#xff1a;36.89元。 当前转股价值 转债面…

求和(打表题)

题目 打个表发现当 n 时答案为 p &#xff0c;否则为 1 &#xff0c;然后套板子。 #include <iostream> #include <algorithm> #include <vector> #include <cstring> #include <cmath>using namespace std;#define int long long using i64 …

uniapp地图基本使用及解决添加markers不生效问题?

uniapp地图使用 App端 通过 nvue 页面实现地图 文章目录 uniapp地图使用效果图templatejs添加 marker使用地图查看位置移到到当前位置 效果图 template <template><view class"mapWrap"><!-- #ifdef APP-NVUE --><map class"map-containe…

P9231 [蓝桥杯 2023 省 A] 平方差(拆分问题)

分析&#xff1a;x(yz)*(y-z); yz 与 y-z 同奇偶性&#xff08;x要么为奇数&#xff0c;要么为偶数&#xff09; 奇数&#xff1a;1 与 其本身 乘积 偶数&#xff1a;2 与 x/2 乘积(为4的倍数) #include<bit…

分析:为什么有些pdf打开之后无法编辑?

pdf文件大家应该都经常接触&#xff0c;但是不知道大家会遇到这种情况&#xff1a;有些PDF文件打开之后无法编辑&#xff1f;是什么原因呢&#xff1f;今天我们来分析一下都是那些原因导致的。 首先我们可以考虑一下&#xff0c;PDF文件中的内容是否是图片&#xff0c;如果确认…

Blender动画导入Three.js

你是否在把 Blender 动画导入你的 ThreeJS 游戏(或项目)中工作时遇到问题? 您的 .glb (glTF) 文件是否正在加载,但没有显示任何内容? 你的骨骼没有正确克隆吗? 如果是这样,请阅读我如何使用 SkeletonUtils.js 解决此问题 1、前提条件 你正在使用 Blender 3.1+(此版本…

[MySQL--基础]函数、约束

hello! 这里是欧_aita的频道。 今日语录:不管你觉得自己能做什么&#xff0c;或者你觉得你不能做什么&#xff0c;你都是对的。 祝福语&#xff1a;愿你的程序像太阳一样明亮&#xff0c;给世界带来温暖和光明。 大家可以在评论区畅所欲言&#xff0c;可以指出我的错误&#xf…

纯cpp如何模拟qt的信号与槽

纯cpp如何模拟qt的信号与槽 我之前是如何使用bind的?一.demo示例二.简单来讲,c自带的bind与function函数,如何实现类似信号与槽的机制1. 简单语法2. function与bind联动尝试1尝试2真正实现流程图 自我反思 我之前是如何使用bind的? 一.demo示例 using MsgHander std::funct…

力扣2.两数相加

题目描述 把题读懂后&#xff0c;这道题存在两个需要解决的问题&#xff1a;1.进位问题&#xff1b;2.两个链表长度不一 代码 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//创建新链表的伪指针&#xff0c;指向链表的头结点ListNode prev n…

Go字符串类型

一、字符串 1、字符串 Go 语言里的字符串的内部实现使用 UTF-8 编码字符串带的值为双引号&#xff08;"&#xff09;中的内容&#xff0c;可以在 Go 语言的源码中直接添加非ASCII 码字符 s1 : "hello" s2 : "您好" 2、字符串转义符 Go 语言的字符…

android开发:安卓13Wifi和热点查看与设置功能

近日对安卓热点功能做了一些技术验证&#xff0c;目的是想利用手机开热点给设备做初始化&#xff0c;用的是安卓13&#xff0c;简言之&#xff1a; 热点设置功能不可用&#xff0c;不可设置SSID和密码&#xff0c;不可程序控制开启关闭&#xff0c;网上的代码统统都过时了Loca…

图书管理系统源码,图书管理系统开发,图书借阅系统源码整体功能演示

用户登录 基础资料 操作员管理 超期罚金设置 读者分类 读者管理 图书分类 图书管理 图书借还管理 图书借取 图书还去 图书借还查询 读者借书排行 用户登录 运行View目录下Login文件夹下的Index.csthml出现登录界面&#xff0c;输入用户名密码分别是admin密码admin12…

网络安全小白自学

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…

【数据结构】排序效率最优解之一:二叉树-堆

Hello everybody!今天打算给大家介绍一个功能比较强大的数据结构的基础&#xff0c;它不仅具有很高的应用价值而且排序效率很高。冒泡排序都知道叭&#xff0c;它的时间复杂度为O(n^2)&#xff0c;而堆排序的时间复杂度为O(n*logn)。堆排序直接碾压冒泡排序。在c语言阶段&#…

线性系统理论 -- 降阶观测器的设计

定理&#xff1a; 若系统能观测&#xff0c;且rankCm&#xff0c;则系统的状态观测器的最小维数是(n-m)。 线性定常时不变系统方程如下&#xff08;以三阶(n3)单入单出系统为例&#xff0c;有mrankC1&#xff09;&#xff1a; 取变换阵P&#xff0c;有&#xff1a; 对上述系统…

易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC]

文章目录 易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章…

前端量子纠缠 效果炸裂 multipleWindow3dScene

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…

免交互语法expect

目录 前瞻 相关命令 范例一&#xff1a;免密登录另外一台主机并创建用户 范例二&#xff1a;免密登录另外三台主机并创建用户 前瞻 expect是建立在tcl&#xff08;tool command language&#xff09;语言基础上的一个工具&#xff0c;常被用于进行自动化控制和测试&#xf…

HbuilderX 项目打包文件过大问题优化

文章目录 HbuilderX 项目打包文件过大问题优化主要操作收效甚微&#xff0c;但又有那么点用的方法使用 gulp 压缩&#xff08;最后一步&#xff09;使用与配置 网上找的 gulp 优化压缩配置还未尝试可能有用的方法 尝试过程中看到的一些优质文章 HbuilderX 项目打包文件过大问题…

ubuntu配置免密登录vscode

1、配置免密登录 &#xff08;1&#xff09;在windows系统cmd下运行命令 ssh-keygen 一路回车&#xff0c;将会在C:\Users\用户名\.ssh目录下生成两个文件&#xff1a;id_rsa和id_rsa.pub。如下图所示。 &#xff08;2&#xff09;进入.ssh目录。如果想使用root用户&#xff0…