CSS

css的四种导入方式

第一种,直接在html文件写style

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <!--规范:<style>
  语法:
    选择器{
      声明1;
      声明2;
      声明3;
      }
 -->
  <style>
    h1 {
      color: blue;
      font-size: 36px;
      text-align: center;
    }
  </style>
</head>
<body>
<h1>Hello, world!</h1>

</body>
</html>

第二种,另外建立 css文件,外部样式,通过链接link


h1 {
    color: blue;
    font-size: 36px;
    text-align: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <!--规范:<style>
  语法:
    选择器{
      声明1;
      声明2;
      声明3;
      }
 -->
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Hello, world!</h1>

</body>
</html>

Vue不容易被收录

第三种:行内

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--行内样式,在标签中写style属性-->
<!--优先级,就近原则:行内样式 > 内部样式或外部样式,看谁离得近就用谁  -->
<h1 style="color: red">导入方式</h1>
</body>
</html>

一、选择器

三大选择器(指定标签全选或指定class属性的标签,和标签类型无关)

作用:选择页面上某一个元素

1、标签选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<style>
  /* 标签选择器,会选择所有h1标签 */
    h1 {
        color: blue;
        font-size: 36px;
    }
 </style>
</head>
<body>
<h1>Hello, world!</h1>
<p>This is a paragraph.</p>

</body>
</html>

2、类选择器 class

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

    <style>
        /*类选择器的格式-.class的名称
        好处,可以多个标签归类,是同一个class*/
        .cjf{
            color:red;
        }
        .cjj{
            color:blue;
        }
        </style>
</head>
<body>
<h1 class="cjf">标题1</h1>
<h1 class="cjj">标题2</h1>
<h1 class="cjf">标题3</h1>

</body>
</html>

3、ID选择器

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

    <style>
        /* id选择器格式:#id名称 {}
        id只能保证全局唯一,不能复用
        id选择器》class选择器》标签(元素)选择器
        */
            #cjf{
                color: red;
            }
        </style>
</head>
<body>
<h1 id="cjf">标题1</h1>
<h1 >标题2</h1>
<h1>标题3</h1>
<h1>标题4</h1>
<h1>标题5</h1>
<h1>标题6</h1>

</body>
</html>

层次选择器(指定元素的后面所有指定元素或后面一层指定元素,或指定元素旁边的元素--没办法指定第几个,

1、后代选择器:在某个元素的后面
2、子选择器
3、相邻兄弟选择器
4、通用选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*p {
            background: blue;*/
        /*后代选择器*/
        body p {
                        background: red;
        }
        /*子选择器*/
        body > p {
            background: green;
        }
        /*相邻兄弟选择器,是选中后旁边的兄弟元素,只有一个,向下的*/
        .test + p {
            background: yellow;
        }
        /*通用选择器,选中元素向下的同级指定元素,兄弟元素扩展版*/
        .test~p {
            background: purple;
        }

        </style>

</head>
<body>
<p>p0</p>
<p class="test">p1</p>
<p>p2</p>
<p>p3</p>
<ul>
    <li></li>
        <p>p4</p>
    <li></li>
        <p>p5</p>
    <li></li>
        <p>p6</p>
</ul>

</body>
</html>

结构伪类选择器(指定元素后面一层第几个指定元素,或由子元素推回元素再找回子元素--可以指定第几个)

所有带:冒号就是伪类

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*ul的第一个元素*/
        ul li:first-child {
            color: red;
        }
        /*ul的最后一个元素*/
        ul li:last-child {
            color: blue;
        }
        /*选中p1:定位父元素,选择当前第一个元素,如果不是P元素就不显示--按顺序 */
        p:nth-child(1){
            background-color: green;
        }
        /*选中p1:定位父元素,选择当前第一个P元素,--按类型 */
        p:nth-of-type(1){
            background-color: yellow;
        }

        </style>

</head>
<body>
<h1>This is a title</h1>
<p class="1">>p1</p>
<p>p2</p>
<p>p3</p>
<ul>
    <li>li1</li>
    <li>li2</li>
    <li>li3</li>
</ul>

</body>
</html>

属性选择器--重要(指定标签的指定属性或属性值)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      .demo a{
          float: left;
          display: block;
          height: 30px;
          width: 30px;
          border-radius: 10px;
          background-color: #ccc;
          text-align: center;
          line-height: 30px;
          color: #fff;
          text-decoration: none;
          margin-right: 10px;
          font:bold 14px/30px Arial, sans-serif;
        }
          /*存在id属性的标签.id的值能用正值表达式
          *class中有links的元素*/
          a[id]{
              background-color: #ff8c00;
          }
          a[id="first"]
          {
              background-color: #00bfff;
          }
          /*class中含有links的元素*/
          a[class*="links"]
          {
              background-color: #008080;
          }
      /*htref中以http开关的元素*/
        a[href^="http"]
        {
            background-color: #ff0000;
        }
      </style>
</head>
<body>
<p class="demo">
    <a href="http://www.baidu.com" class="links item first" id="first">1</a>
    <a href="http://blog.kuangstudy.com" class="links item active" target="_blank" title="test">2</a>
    <a href="images/123.html" class="links item">3</a>
    <a href="images/123.png" class="links item">4</a>
    <a href="images/123.jpg" class="links item">5</a>
    <a href="abc" class="links item">6</a>
    <a href="/a.pdf" class="links item">7</a>
    <a href="/abc.pdf" class="links item">8</a>
    <a href="abc.doc" class="links item">9</a>
    <a href="abcd.doc" class="links item last">10</a>
</p>

</body>
</html>

二、美化网页元素

字体样式-font

1、要突出的字体,用span包裹

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #title {
            color: blue;
            font-size: 24px;
        }
      </style>
</head>
<body>
欢迎学习<span id="title">Java</span>

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /**
         * 字体样式:font-family
         字体大小:font-size
         粗体:font-weight
         颜色:color
         */
       body{
           font-family: 楷体;
       }
      </style>
</head>
<body>
欢迎学习

</body>
</html>

文本样式

1、颜色
2、文本对齐方式
3、首行缩进

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*
        text-align: center; /* 让文本居中 */
        text-indent: 2em; /* 首行缩进2em */
        line-height: 1.5; /* 行高1.5倍 */
        text-decoration: underline; /* 下划线 */

         */
        h1{
            color: red;
            text-align: center;
        }
        p{
            text-indent: 2em;
            line-height: 1.5;
        }
      </style>
</head>
<body>
<h1>欢迎学习</h1>
<p>这里是HTML学习的地方,欢迎大家来学习。这里是HTML学习的地方,欢迎大家来学习。这里是HTML学习的地方,欢迎大家来学习。这里是HTML学习的地方,欢迎大家来学习。
</p>
</body>
</html>

文本阴影和超链接伪类

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


         */
        a {
            color: red;
        }
        /*鼠标悬浮的颜色*/
        a:hover {
            color: blue;
        }
        /*鼠标按住未释放的颜色*/
        a:active {
            color: green;
        }
        /*阴影颜色*/
        #price{
            text-shadow: 1px 1px 1px #ccc;
        }
      </style>
</head>
<body>
<a href="#" >
    <img src="baidu1.png" alt="">
</a>
<p>
    <a href="#">图图图</a>
</p>
<p id="price">
    ¥100
</p>
</body>
</html>

列表样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /* */
        #nav {
            width: 200px;
            background: antiquewhite;
        }
        .title {
            font-size: 18px;
            font-weight: bold;
            text-indent: 1em;
            line-height: 35;
        }
        ul li {
            height: 35px;
            list-style: none;
            text-indent: 1em;
        }
        ul{
            background-color: rgba(245, 245, 245, 0.5);
        }
        a {
            text-decoration: none;
            font-size: 16px;
            color: black;
        }
        a:hover {
            color: red;
            text-decoration: antiquewhite;
        }

      </style>
</head>
<body>
<div id="nav"
    <h2 class="title">全部商品分类</h2>

    <ul>
    <li>
        <a href="#">图书</a>
        <a href="#">音像</a>
        <a href="#">数字商品</a>
    </li>
    <li>
        <a href="#">家用电器</a>
        <a href="#">手机</a>
        <a href="#">数码</a>
    </li>
    <li>
        <a href="#">电脑</a>
        <a href="#">办公</a>
    </li>
    <li>
        <a href="#">家居</a>
        <a href="#">家装</a>
        <a href="#">厨具</a>
    </li>
    <li>
        <a href="#">服饰鞋帽</a>
        <a href="#">个性化妆</a>
    </li>
    <li>
        <a href="#">礼品箱包</a>
        <a href="#">钟表</a>
        <a href="#">珠宝</a>
    </li>
    <li>
        <a href="#">食品饮料</a>
        <a href="#">保健食品</a>
    </li>
    <li>
        <a href="#">彩票</a>
        <a href="#">旅行</a>
        <a href="#">充值</a>
        <a href="#">票务</a>
    </li>
</ul>
</div>
</body>
</html>

背景图像应用及渐变

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /* */
div{
    width: 1000px;
    height: 700px;
    border: 1px solid black;
    /*颜色,图片,图片位置,平铺方式*/
    background-image: url("baidu1.png");
}

      </style>
</head>
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
</body>
</html>

盒子模型及边框使用

margin:外边距-很多元素都会默认有外边距,养成好习惯,先设置为0
padding:内边距
border:边框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /* body总会有一个默认的外边距 */
        body{
            margin: 0;
        }
        h2{
            width:300px;
            border: 1px solid #ec1c1c;
        }
        /* border:粗细,样式,颜色 */
        #box {
                width: 300px;
            border:1px solid #fa1010;
        }
        form{
            background-color: rgba(214, 255, 8, 0.26);
        }
        div:nth-of-type(1) input{
            border: 3px solid #000;
        }
        div:nth-of-type(2) input{
            border: 3px dashed #000;
        }
        div:nth-of-type(3) input{
      </style>
</head>
<body>
<div id="box">
    <h2>会员登录</h2>
    <form action="#">
        <div>
            <span>用户名:</span>
            <input type="text">
        </div>
        <div>
            <span>密&nbsp;&nbsp;&nbsp;码:</span>
            <input type="password">
        </div>
        <div>
            <span>邮箱:</span>
            <input type="text">
        </div>
    </form>
</div>
</body>
</html>

内外边距及div居中

margin+border+padding+内容宽度=盒子宽度(就是其实网页内容)

圆角边框及阴影

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /**border-radius: 数据是按左上 右上 右下 左下顺时针*/
      div{
          width: 100px;
          height: 100px;
          border:10px solid red;
          border-radius:0 50px 50px 0;
      }
      </style>
</head>
<body>

<div></div>

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /**阴影*/
      div{
          width: 100px;
          height: 100px;
          border:10px solid red;
          box-shadow: 10px 10px 100px #e6f861;
      }
      </style>
</head>
<body>

<div></div>

</body>
</html>

display和浮动

display:方向不可控制
float:浮动会脱离标准文档流,要解决父级塌陷的问题

块级元素:独占一行h1\p\div\列表
行内元素:不独占一行span img stong
行内元素可以包在块级元素

块级元素:会根据块级元素里面的内容,有一个独占一行,高根据里面内容,的边框(无形)。
行内元素:会根据块级元素里面的内容,有一个宽高根据里面内容,的边框(无形)。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
/**block块元素
inline-blokc 又是行内元素,又是块元素,可以把块元素变成行内元素,像把图片标签这种块元素变成行内元素
 */
      div{
          width: 100px;
          height: 100px;
          border:1px solid red;
          display:inline-block;
      }
      span{
          width: 100px;
          height: 100px;
          border:1px solid blue;
          display: inline-block;
      }
      </style>
</head>
<body>

<div>div块元素</div>
<span>span行内元素</span>

</body>
</html>

这是一种实现行内元素排列的方式,但更多时候用float,向左浮动或向右浮动,但由于是浮动,是不受背面div的框框影响,有时里面的div甚至超过外面的div
clear:ringt:右侧不能有浮动元素

div 标签本身不传达任何特定的语义信息,它只是一个用于布局的容器
通常只用于布局分割,或样式
span标签也是差不多,只是用于文本的部分内容

overflow及父级边框塌陷的问题

如果里面的div用浮动,有时可能会超过外面的div,这时外面的div要设置太大不好看,就用overflow切掉多余的部分
解决父级边框塌陷
1\浮动元素增加空div
2\设置父元素的高度
3\在父级元素增加一个:overflow:hidden
4\在父类添加一个伪类(推荐)

#father:afer{
  content:'';
  display:block;
  clear:both
)

定位

**相对定位 **
相对于自己

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
/**
1,相对定位:相对于自己原来的位置进行偏移
 */
div {
    margin: 10px;
    padding: 10px;
    font-size: 16px;
    line-height: 25px;
}

#father {
    border: 1px solid #000;

}
#first {
    border: 1px solid #000;
    position: relative;/*相对定位*/
    top: -10px;/*向上偏移10px*/
}
#second {
    border: 1px solid #000;
}
#third {
    border: 1px solid #000;
}
</style>
</head>
<body>
<div id="father">
       <div id="first">第一个盒子</div>
       <div id="second">第二个盒子</div>
        <div id="third">第三个盒子</div>
</div>

</body>
</html>

绝对定位
定位:基于XXX定位 ,上下左右
1、父级元素没有定位的前提下,相对于浏览器
2、假设父级元素存在定位 ,我们通常相对于父级元素进行偏移
3、在父级元素范围内移动
相对于父级或浏览器的位置,进行指定偏移,绝对定位的话,不在标准文档中,原来位置不会被保留

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
/**
1,相对定位:相对于自己原来的位置进行偏移
 */
div {
    margin: 10px;
    padding: 10px;
    font-size: 16px;
    line-height: 25px;
}

#father {
    border: 1px solid #000;
    position: relative;/*相对定位*/

}
#first {
    border: 1px solid #000;
    position: relative;/*相对定位*/
    top: -10px;/*向上偏移10px*/
}
#second {
    border: 1px solid #000;
    position: absolute;/*绝对定位*/
    right:20px;/*向右偏移30px*/
}
#third {
    border: 1px solid #000;
}
</style>
</head>
<body>
<div id="father">
       <div id="first">第一个盒子</div>
       <div id="second">第二个盒子</div>
        <div id="third">第三个盒子</div>
</div>

</body>
</html>

**固定定位 **

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            height: 1000px;

        }
        div:nth-of-type(1){
            width: 100px;
            height: 100px;
            background:red;
            position: absolute;
            right: 0;
            bottom: 0;
        }
        div:nth-of-type(2){
            width: 50px;
            height: 50px;
            background:blue;
            position: fixed;
            right: 0;
            bottom: 0;
        }
</style>
</head>
<body>
<div>div1</div>
<div>div2</div>

</body>
</html>

z-index及透明度

图层
z-index:默认是0,最高无限

动画

posted @ 2025-03-16 11:19  乘加法  阅读(13)  评论(0)    收藏  举报