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

news2024/9/21 22:45:24

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来操控页面元素了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的电商购物网站设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

类和对象——(2)类

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 只虽然夜晚很长&#xff0c;但天…

鸿蒙4.0开发笔记之ArkTS语法基础@Entry@Component自定义组件的使用(九)

文章目录 一、自定义组件概述1、什么是自定义组件2、自定义组件的优点 二、创建自定义组件1、自定义组件的结构2、自定义组件要点3、成员变量的创建4、参数传递规则 三、练习案例 一、自定义组件概述 1、什么是自定义组件 在ArkUI中&#xff0c;UI显示的内容均为组件&#xf…

CodeTON Round #7 (Div. 1 + Div. 2)

A.jagged Swaps 题意&#xff1a; 给出一个包含 n n n个数字的序列&#xff0c;每次可以选择一个同时大于左右两边相邻的数字&#xff0c;将这个数字与它右边的数字交换&#xff0c;问能否在经过若干次操作后使序列变为升序。 分析&#xff1a; 由于交换只能向后进行&#…

OpenCV | 模版匹配

import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline 模版匹配 模版匹配和卷积原理很像&#xff0c;模版在原图像上从原点开始滑动&#xff0c;计算模版与&#xff08;图像被模版覆盖的地方&#xff…

SAP VL01N Error VL 367

在VL01N 创建交货单的时候&#xff0c;报错&#xff1a;An item with no delivery quantity is not permitted. Item will be deleted. 第一种情况&#xff1a; 1.首先MMBEcheck 可用库存&#xff0c;非限制使用库存是否充足 注意&#xff1a;这里框出来的交货库存也是非限制…

HMM预习中文版

马尔可夫模型 在之前的笔记中&#xff0c;我们讨论了贝叶斯网络&#xff0c;以及它们如何被用于紧凑地表示随机变量之间的关系。现在&#xff0c;我们将介绍一个与之紧密相关的结构&#xff0c;称为马尔可夫模型&#xff0c;对于本课程的目的&#xff0c;可以将其视为类似于链…

位运算算法【1】

文章目录 &#x1f34a;面试题 01.01. 判定字符是否唯一&#x1f96d;题目&#x1f351;算法原理&#x1f95d;解法一&#xff1a;哈希表&#x1f95d;解法二&#xff1a;位图 &#x1f951;代码实现 &#x1f33d;268. 丢失的数字&#x1f96c;题目&#x1f344;算法原理&…

多线程(补充知识)

STL库&#xff0c;智能指针和线程安全 STL中的容器是否是线程安全的? 不是. 原因是, STL 的设计初衷是将性能挖掘到极致, 而一旦涉及到加锁保证线程安全,会对性能造成巨大的影响. 而且对于不同的容器, 加锁方式的不同, 性能可能也不同(例如hash表的锁表和锁桶). 因此 STL 默认…

(Linux2.6内核)进程调度队列与切换

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 我们首先来了解几个概念 1. 进程在CPU上运行的时候&#xff0c;一定要运行完才行吗&#xff1f;答案是否定的&#xff0c;我们大部分的操作系统&#xff0c;主流就是分时操作系统&#xff0c;即基于时间片进程轮转执行的。 …

吃火锅(Python)

题目描述 吃火锅 以上图片来自微信朋友圈&#xff1a;这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”&#xff0c;那就厉害了&#xff0c;我们的故事就开始了。 本题要求你实现一个程序&#xff0c;自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。…

单片机复位电路

有时候我们的代码会跑飞,这个时候基本上是一切推到重来.”推倒重来”在计算机术语上称为复位.复位需要硬件的支持,复位电路就是在单片机的复位管脚上产生一个信号&#xff0c;俗称复位信号.这个信号需要持续一定的时间,单片机收到该信号之后就会复位,从头执行。 复位原理: 那么…

python基于YOLOv8全系列模型【n/s/m/l/x】开发构建不同参数量级的钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中&#xff0c;我们已经以钢铁产业产品缺陷检测数据场景为基准&#xff0c;陆续开发构建了多款目标检测模型&#xff0c;感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否&#xff1f;基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统&#xf…

人工智能原理复习--知识表示(一)

文章目录 上一篇知识概述命题逻辑谓词逻辑谓词逻辑的应用 下一篇 上一篇 人工智能原理复习–绪论 知识概述 知识就是人类认识自然界的精神产物&#xff0c;是人类进行智能活动的基础。 是经过加工的信息&#xff0c;包括事实、信念和启发式规则。 分类&#xff1a; 按作用可…

第22章 NIO编程

在本章中需要掌握NIO中的缓冲区的作用&#xff0c;并理解缓冲区中的数据处理模型&#xff0c;掌握Channel的作用&#xff0c;并结合缓冲区实现数据I/O操作&#xff0c;理解文件锁的作用&#xff0c;并且掌握字符编码处理支持类的使用&#xff0c;掌握Reactor设计模型&#xff0…

深信服AD负载均衡频繁掉线故障分析

一个由114.114.114.114引起的AD异常 客户反馈深信服负载均衡链路频繁掉线&#xff0c;具体故障现象如下 可以获取到IP地址、网关 两分钟掉一次&#xff0c;持续一个多月&#xff0c;求IT的心理阴影面积&#xff01; 链路监视器只设置了一个114.114.114.114 处理流程&#xff…

Ps:子路径的上下排列以及对齐与分布

不论是一个形状图层&#xff08;或图层的矢量蒙版&#xff09;上的多个形状还是同一路径层上多个路径&#xff0c;只要对应“路径”面板的一个路径层&#xff0c;可以将这些路径称为该路径层的“子路径”&#xff0c;也称为“组件”。 当一个路径层上有两个以上的子路径时&…

『 Linux 』进程优先级

文章目录 什么是优先级Linux下的进程优先级PRI与NI使用top查看进程以及对进程的优先级的修改 进程优先级的其他概念竞争性与独立性并发与并行 什么是优先级 优先级,顾名思义,即在同一环境下不同单位对同一个资源的享有顺序; 一般优先级高的单位将优先占有该资源; 在进程当中进…

SELinux零知识学习三十七、SELinux策略语言之约束(1)

接前一篇文章:SELinux零知识学习三十六、SELinux策略语言之角色和用户(7) 四、SELinux策略语言之约束 SELinux对策略允许的访问提供了更严格的约束机制,不管策略的allow规则如何。 1. 近距离查看访问决定算法 为了理解约束的用途,先来看一下SELinux Linux安全模块(Lin…

chatgpt prompt提示词

ChatGPT 最近十分火爆&#xff0c;今天我也来让 ChatGPT 帮我阅读一下 Vue3 的源代码。 都知道 Vue3 组件有一个 setup函数。那么它内部做了什么呢&#xff0c;今天跟随 ChatGPT 来一探究竟。 实战 1.setup setup 函数在什么位置呢&#xff0c;我们不知道他的实现函数名称&…